Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1599700 > unrolled thread

[PATCH v3 0/3] watchdog: s3c2410: Minor cleanups

Started byKrzysztof Kozlowski <krzk@kernel.org>
First post2017-03-13 20:10 +0100
Last post2017-03-14 14:50 +0100
Articles 6 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/3] watchdog: s3c2410: Minor cleanups Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-13 20:10 +0100
    [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-13 20:10 +0100
      Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> - 2017-03-14 14:30 +0100
        Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-14 14:30 +0100
          Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data Guenter Roeck <linux@roeck-us.net> - 2017-03-14 14:50 +0100
      Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data Guenter Roeck <linux@roeck-us.net> - 2017-03-14 14:50 +0100

#1599700 — [PATCH v3 0/3] watchdog: s3c2410: Minor cleanups

FromKrzysztof Kozlowski <krzk@kernel.org>
Date2017-03-13 20:10 +0100
Subject[PATCH v3 0/3] watchdog: s3c2410: Minor cleanups
Message-ID<tkDvX-501-13@gated-at.bofh.it>
Hi,

Continuation of cleanup of s3c2410-wdt driver.

Changes since v2:
=================
1. Address Guenter's comments about unneeded cast to const.

Best regards,
Krzysztof


Krzysztof Kozlowski (3):
  watchdog: s3c2410: Constify local structures
  watchdog: s3c2410: Simplify getting driver data
  watchdog: s3c2410: Minor code cleanup

 drivers/watchdog/s3c2410_wdt.c | 58 +++++++++++++++++++-----------------------
 1 file changed, 26 insertions(+), 32 deletions(-)

-- 
2.9.3

[toc] | [next] | [standalone]


#1599705 — [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data

FromKrzysztof Kozlowski <krzk@kernel.org>
Date2017-03-13 20:10 +0100
Subject[PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data
Message-ID<tkDvY-501-35@gated-at.bofh.it>
In reply to#1599700
Simplify the flow in helper function for getting the driver data by
using of_device_get_match_data() and only one if() branch.

The code should be equivalent.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 drivers/watchdog/s3c2410_wdt.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
index 52b66bcdd1ef..0532dc93e600 100644
--- a/drivers/watchdog/s3c2410_wdt.c
+++ b/drivers/watchdog/s3c2410_wdt.c
@@ -37,6 +37,7 @@
 #include <linux/slab.h>
 #include <linux/err.h>
 #include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/mfd/syscon.h>
 #include <linux/regmap.h>
 #include <linux/delay.h>
@@ -510,14 +511,16 @@ static inline unsigned int s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt)
 static inline const struct s3c2410_wdt_variant *
 s3c2410_get_wdt_drv_data(struct platform_device *pdev)
 {
-	if (pdev->dev.of_node) {
-		const struct of_device_id *match;
-		match = of_match_node(s3c2410_wdt_match, pdev->dev.of_node);
-		return (struct s3c2410_wdt_variant *)match->data;
-	} else {
-		return (struct s3c2410_wdt_variant *)
-			platform_get_device_id(pdev)->driver_data;
+	const struct s3c2410_wdt_variant *variant;
+
+	variant = of_device_get_match_data(&pdev->dev);
+	if (!variant) {
+		/* Device matched by platform_device_id */
+		variant = (struct s3c2410_wdt_variant *)
+			   platform_get_device_id(pdev)->driver_data;
 	}
+
+	return variant;
 }
 
 static int s3c2410wdt_probe(struct platform_device *pdev)
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1600359 — Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data

FromBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Date2017-03-14 14:30 +0100
SubjectRe: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data
Message-ID<tkUGv-Hf-45@gated-at.bofh.it>
In reply to#1599705
Hi,

On Monday, March 13, 2017 09:07:25 PM Krzysztof Kozlowski wrote:
> Simplify the flow in helper function for getting the driver data by
> using of_device_get_match_data() and only one if() branch.
> 
> The code should be equivalent.

While you are at it could you remove s3c2410_get_wdt_drv_data()
helper?  It is used only once during probe and is marked inline
anyway..

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

[toc] | [prev] | [next] | [standalone]


#1600371 — Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data

FromKrzysztof Kozlowski <krzk@kernel.org>
Date2017-03-14 14:30 +0100
SubjectRe: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data
Message-ID<tkUGw-Hf-75@gated-at.bofh.it>
In reply to#1600359
On Tue, Mar 14, 2017 at 3:17 PM, Bartlomiej Zolnierkiewicz
<b.zolnierkie@samsung.com> wrote:
>
> Hi,
>
> On Monday, March 13, 2017 09:07:25 PM Krzysztof Kozlowski wrote:
>> Simplify the flow in helper function for getting the driver data by
>> using of_device_get_match_data() and only one if() branch.
>>
>> The code should be equivalent.
>
> While you are at it could you remove s3c2410_get_wdt_drv_data()
> helper?  It is used only once during probe and is marked inline
> anyway..

Thanks for feedback!
The existence of this helper is purely from code readability (thus
inline does not matter). The probe is big so splitting some small
self-contained part helps. Not much but a little...

Best regards,
Krzysztof

[toc] | [prev] | [next] | [standalone]


#1600422 — Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data

FromGuenter Roeck <linux@roeck-us.net>
Date2017-03-14 14:50 +0100
SubjectRe: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data
Message-ID<tkUZR-Q3-45@gated-at.bofh.it>
In reply to#1600371
On 03/14/2017 06:20 AM, Krzysztof Kozlowski wrote:
> On Tue, Mar 14, 2017 at 3:17 PM, Bartlomiej Zolnierkiewicz
> <b.zolnierkie@samsung.com> wrote:
>>
>> Hi,
>>
>> On Monday, March 13, 2017 09:07:25 PM Krzysztof Kozlowski wrote:
>>> Simplify the flow in helper function for getting the driver data by
>>> using of_device_get_match_data() and only one if() branch.
>>>
>>> The code should be equivalent.
>>
>> While you are at it could you remove s3c2410_get_wdt_drv_data()
>> helper?  It is used only once during probe and is marked inline
>> anyway..
>
> Thanks for feedback!
> The existence of this helper is purely from code readability (thus
> inline does not matter). The probe is big so splitting some small
> self-contained part helps. Not much but a little...
>

Agreed. I don't see value in removing this helper.

Guenter

[toc] | [prev] | [next] | [standalone]


#1600405 — Re: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data

FromGuenter Roeck <linux@roeck-us.net>
Date2017-03-14 14:50 +0100
SubjectRe: [PATCH v3 2/3] watchdog: s3c2410: Simplify getting driver data
Message-ID<tkUZP-Q3-1@gated-at.bofh.it>
In reply to#1599705
On 03/13/2017 12:07 PM, Krzysztof Kozlowski wrote:
> Simplify the flow in helper function for getting the driver data by
> using of_device_get_match_data() and only one if() branch.
>
> The code should be equivalent.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  drivers/watchdog/s3c2410_wdt.c | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
> index 52b66bcdd1ef..0532dc93e600 100644
> --- a/drivers/watchdog/s3c2410_wdt.c
> +++ b/drivers/watchdog/s3c2410_wdt.c
> @@ -37,6 +37,7 @@
>  #include <linux/slab.h>
>  #include <linux/err.h>
>  #include <linux/of.h>
> +#include <linux/of_device.h>
>  #include <linux/mfd/syscon.h>
>  #include <linux/regmap.h>
>  #include <linux/delay.h>
> @@ -510,14 +511,16 @@ static inline unsigned int s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt)
>  static inline const struct s3c2410_wdt_variant *
>  s3c2410_get_wdt_drv_data(struct platform_device *pdev)
>  {
> -	if (pdev->dev.of_node) {
> -		const struct of_device_id *match;
> -		match = of_match_node(s3c2410_wdt_match, pdev->dev.of_node);
> -		return (struct s3c2410_wdt_variant *)match->data;
> -	} else {
> -		return (struct s3c2410_wdt_variant *)
> -			platform_get_device_id(pdev)->driver_data;
> +	const struct s3c2410_wdt_variant *variant;
> +
> +	variant = of_device_get_match_data(&pdev->dev);
> +	if (!variant) {
> +		/* Device matched by platform_device_id */
> +		variant = (struct s3c2410_wdt_variant *)
> +			   platform_get_device_id(pdev)->driver_data;
>  	}
> +
> +	return variant;
>  }
>
>  static int s3c2410wdt_probe(struct platform_device *pdev)
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web