summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <krzk@kernel.org>2017-03-13 15:07:25 -0400
committerWim Van Sebroeck <wim@iguana.be>2017-06-05 14:38:26 -0400
commita9a02c46624ad112eb07ca26b6a025c1358ed3ad (patch)
tree8db8862575a870cd72ed10df5c116d207c27ad14 /drivers/watchdog
parent58415efe96670b858eb7b5ab066881ae3f1dad25 (diff)
watchdog: s3c2410: Simplify getting driver data
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> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/s3c2410_wdt.c17
1 files 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 @@
37#include <linux/slab.h> 37#include <linux/slab.h>
38#include <linux/err.h> 38#include <linux/err.h>
39#include <linux/of.h> 39#include <linux/of.h>
40#include <linux/of_device.h>
40#include <linux/mfd/syscon.h> 41#include <linux/mfd/syscon.h>
41#include <linux/regmap.h> 42#include <linux/regmap.h>
42#include <linux/delay.h> 43#include <linux/delay.h>
@@ -510,14 +511,16 @@ static inline unsigned int s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt)
510static inline const struct s3c2410_wdt_variant * 511static inline const struct s3c2410_wdt_variant *
511s3c2410_get_wdt_drv_data(struct platform_device *pdev) 512s3c2410_get_wdt_drv_data(struct platform_device *pdev)
512{ 513{
513 if (pdev->dev.of_node) { 514 const struct s3c2410_wdt_variant *variant;
514 const struct of_device_id *match; 515
515 match = of_match_node(s3c2410_wdt_match, pdev->dev.of_node); 516 variant = of_device_get_match_data(&pdev->dev);
516 return (struct s3c2410_wdt_variant *)match->data; 517 if (!variant) {
517 } else { 518 /* Device matched by platform_device_id */
518 return (struct s3c2410_wdt_variant *) 519 variant = (struct s3c2410_wdt_variant *)
519 platform_get_device_id(pdev)->driver_data; 520 platform_get_device_id(pdev)->driver_data;
520 } 521 }
522
523 return variant;
521} 524}
522 525
523static int s3c2410wdt_probe(struct platform_device *pdev) 526static int s3c2410wdt_probe(struct platform_device *pdev)