aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2016-02-26 20:32:49 -0500
committerWim Van Sebroeck <wim@iguana.be>2016-03-01 09:36:35 -0500
commit4d8b229d5ea610affe672e919021e9d02cd877da (patch)
treea5f42d4a023b28deae9d5944058cd862423be30e
parent0ce72f354482cfa40fb0a6619511ab94d6daa5e9 (diff)
watchdog: Add 'action' and 'data' parameters to restart handler callback
The 'action' (or restart mode) and data parameters may be used by restart handlers, so they should be passed to the restart callback functions. Cc: Sylvain Lemieux <slemieux@tycoint.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
-rw-r--r--drivers/watchdog/bcm47xx_wdt.c3
-rw-r--r--drivers/watchdog/da9063_wdt.c3
-rw-r--r--drivers/watchdog/digicolor_wdt.c3
-rw-r--r--drivers/watchdog/imgpdc_wdt.c3
-rw-r--r--drivers/watchdog/imx2_wdt.c3
-rw-r--r--drivers/watchdog/lpc18xx_wdt.c3
-rw-r--r--drivers/watchdog/meson_wdt.c3
-rw-r--r--drivers/watchdog/moxart_wdt.c3
-rw-r--r--drivers/watchdog/mtk_wdt.c3
-rw-r--r--drivers/watchdog/qcom-wdt.c3
-rw-r--r--drivers/watchdog/s3c2410_wdt.c3
-rw-r--r--drivers/watchdog/sunxi_wdt.c3
-rw-r--r--drivers/watchdog/watchdog_core.c2
-rw-r--r--include/linux/watchdog.h2
14 files changed, 26 insertions, 14 deletions
diff --git a/drivers/watchdog/bcm47xx_wdt.c b/drivers/watchdog/bcm47xx_wdt.c
index df1c2a4b0165..a1900b9ab6c4 100644
--- a/drivers/watchdog/bcm47xx_wdt.c
+++ b/drivers/watchdog/bcm47xx_wdt.c
@@ -87,7 +87,8 @@ static int bcm47xx_wdt_hard_set_timeout(struct watchdog_device *wdd,
87 return 0; 87 return 0;
88} 88}
89 89
90static int bcm47xx_wdt_restart(struct watchdog_device *wdd) 90static int bcm47xx_wdt_restart(struct watchdog_device *wdd,
91 unsigned long action, void *data)
91{ 92{
92 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); 93 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd);
93 94
diff --git a/drivers/watchdog/da9063_wdt.c b/drivers/watchdog/da9063_wdt.c
index 11e887572649..a100f648880d 100644
--- a/drivers/watchdog/da9063_wdt.c
+++ b/drivers/watchdog/da9063_wdt.c
@@ -119,7 +119,8 @@ static int da9063_wdt_set_timeout(struct watchdog_device *wdd,
119 return ret; 119 return ret;
120} 120}
121 121
122static int da9063_wdt_restart(struct watchdog_device *wdd) 122static int da9063_wdt_restart(struct watchdog_device *wdd, unsigned long action,
123 void *data)
123{ 124{
124 struct da9063_watchdog *wdt = watchdog_get_drvdata(wdd); 125 struct da9063_watchdog *wdt = watchdog_get_drvdata(wdd);
125 int ret; 126 int ret;
diff --git a/drivers/watchdog/digicolor_wdt.c b/drivers/watchdog/digicolor_wdt.c
index 1ccb0b239348..77df772406b0 100644
--- a/drivers/watchdog/digicolor_wdt.c
+++ b/drivers/watchdog/digicolor_wdt.c
@@ -48,7 +48,8 @@ static void dc_wdt_set(struct dc_wdt *wdt, u32 ticks)
48 spin_unlock_irqrestore(&wdt->lock, flags); 48 spin_unlock_irqrestore(&wdt->lock, flags);
49} 49}
50 50
51static int dc_wdt_restart(struct watchdog_device *wdog) 51static int dc_wdt_restart(struct watchdog_device *wdog, unsigned long action,
52 void *data)
52{ 53{
53 struct dc_wdt *wdt = watchdog_get_drvdata(wdog); 54 struct dc_wdt *wdt = watchdog_get_drvdata(wdog);
54 55
diff --git a/drivers/watchdog/imgpdc_wdt.c b/drivers/watchdog/imgpdc_wdt.c
index 3679f2e1922f..516fbef00856 100644
--- a/drivers/watchdog/imgpdc_wdt.c
+++ b/drivers/watchdog/imgpdc_wdt.c
@@ -150,7 +150,8 @@ static int pdc_wdt_start(struct watchdog_device *wdt_dev)
150 return 0; 150 return 0;
151} 151}
152 152
153static int pdc_wdt_restart(struct watchdog_device *wdt_dev) 153static int pdc_wdt_restart(struct watchdog_device *wdt_dev,
154 unsigned long action, void *data)
154{ 155{
155 struct pdc_wdt_dev *wdt = watchdog_get_drvdata(wdt_dev); 156 struct pdc_wdt_dev *wdt = watchdog_get_drvdata(wdt_dev);
156 157
diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c
index e47966aa2db0..4cb59a23aab0 100644
--- a/drivers/watchdog/imx2_wdt.c
+++ b/drivers/watchdog/imx2_wdt.c
@@ -80,7 +80,8 @@ static const struct watchdog_info imx2_wdt_info = {
80 .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE, 80 .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE,
81}; 81};
82 82
83static int imx2_wdt_restart(struct watchdog_device *wdog) 83static int imx2_wdt_restart(struct watchdog_device *wdog, unsigned long action,
84 void *data)
84{ 85{
85 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); 86 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
86 unsigned int wcr_enable = IMX2_WDT_WCR_WDE; 87 unsigned int wcr_enable = IMX2_WDT_WCR_WDE;
diff --git a/drivers/watchdog/lpc18xx_wdt.c b/drivers/watchdog/lpc18xx_wdt.c
index 6914c83aa6d9..fd171e6caa16 100644
--- a/drivers/watchdog/lpc18xx_wdt.c
+++ b/drivers/watchdog/lpc18xx_wdt.c
@@ -153,7 +153,8 @@ static int lpc18xx_wdt_start(struct watchdog_device *wdt_dev)
153 return 0; 153 return 0;
154} 154}
155 155
156static int lpc18xx_wdt_restart(struct watchdog_device *wdt_dev) 156static int lpc18xx_wdt_restart(struct watchdog_device *wdt_dev,
157 unsigned long action, void *data)
157{ 158{
158 struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); 159 struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev);
159 unsigned long flags; 160 unsigned long flags;
diff --git a/drivers/watchdog/meson_wdt.c b/drivers/watchdog/meson_wdt.c
index aea5d2f44ad7..56ea1caf71c3 100644
--- a/drivers/watchdog/meson_wdt.c
+++ b/drivers/watchdog/meson_wdt.c
@@ -62,7 +62,8 @@ struct meson_wdt_dev {
62 const struct meson_wdt_data *data; 62 const struct meson_wdt_data *data;
63}; 63};
64 64
65static int meson_wdt_restart(struct watchdog_device *wdt_dev) 65static int meson_wdt_restart(struct watchdog_device *wdt_dev,
66 unsigned long action, void *data)
66{ 67{
67 struct meson_wdt_dev *meson_wdt = watchdog_get_drvdata(wdt_dev); 68 struct meson_wdt_dev *meson_wdt = watchdog_get_drvdata(wdt_dev);
68 u32 tc_reboot = MESON_WDT_DC_RESET; 69 u32 tc_reboot = MESON_WDT_DC_RESET;
diff --git a/drivers/watchdog/moxart_wdt.c b/drivers/watchdog/moxart_wdt.c
index 885c81bc4210..2c4a73d1e214 100644
--- a/drivers/watchdog/moxart_wdt.c
+++ b/drivers/watchdog/moxart_wdt.c
@@ -31,7 +31,8 @@ struct moxart_wdt_dev {
31 31
32static int heartbeat; 32static int heartbeat;
33 33
34static int moxart_wdt_restart(struct watchdog_device *wdt_dev) 34static int moxart_wdt_restart(struct watchdog_device *wdt_dev,
35 unsigned long action, void *data)
35{ 36{
36 struct moxart_wdt_dev *moxart_wdt = watchdog_get_drvdata(wdt_dev); 37 struct moxart_wdt_dev *moxart_wdt = watchdog_get_drvdata(wdt_dev);
37 38
diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
index b78776c05554..7ed417a765c7 100644
--- a/drivers/watchdog/mtk_wdt.c
+++ b/drivers/watchdog/mtk_wdt.c
@@ -64,7 +64,8 @@ struct mtk_wdt_dev {
64 void __iomem *wdt_base; 64 void __iomem *wdt_base;
65}; 65};
66 66
67static int mtk_wdt_restart(struct watchdog_device *wdt_dev) 67static int mtk_wdt_restart(struct watchdog_device *wdt_dev,
68 unsigned long action, void *data)
68{ 69{
69 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); 70 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev);
70 void __iomem *wdt_base; 71 void __iomem *wdt_base;
diff --git a/drivers/watchdog/qcom-wdt.c b/drivers/watchdog/qcom-wdt.c
index 424f9a952fee..20563ccb7be0 100644
--- a/drivers/watchdog/qcom-wdt.c
+++ b/drivers/watchdog/qcom-wdt.c
@@ -70,7 +70,8 @@ static int qcom_wdt_set_timeout(struct watchdog_device *wdd,
70 return qcom_wdt_start(wdd); 70 return qcom_wdt_start(wdd);
71} 71}
72 72
73static int qcom_wdt_restart(struct watchdog_device *wdd) 73static int qcom_wdt_restart(struct watchdog_device *wdd, unsigned long action,
74 void *data)
74{ 75{
75 struct qcom_wdt *wdt = to_qcom_wdt(wdd); 76 struct qcom_wdt *wdt = to_qcom_wdt(wdd);
76 u32 timeout; 77 u32 timeout;
diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
index 0093450441fe..d57f19b5077f 100644
--- a/drivers/watchdog/s3c2410_wdt.c
+++ b/drivers/watchdog/s3c2410_wdt.c
@@ -349,7 +349,8 @@ static int s3c2410wdt_set_heartbeat(struct watchdog_device *wdd, unsigned timeou
349 return 0; 349 return 0;
350} 350}
351 351
352static int s3c2410wdt_restart(struct watchdog_device *wdd) 352static int s3c2410wdt_restart(struct watchdog_device *wdd, unsigned long action,
353 void *data)
353{ 354{
354 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); 355 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd);
355 void __iomem *wdt_base = wdt->reg_base; 356 void __iomem *wdt_base = wdt->reg_base;
diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c
index e027deb54740..953bb7b7446f 100644
--- a/drivers/watchdog/sunxi_wdt.c
+++ b/drivers/watchdog/sunxi_wdt.c
@@ -83,7 +83,8 @@ static const int wdt_timeout_map[] = {
83}; 83};
84 84
85 85
86static int sunxi_wdt_restart(struct watchdog_device *wdt_dev) 86static int sunxi_wdt_restart(struct watchdog_device *wdt_dev,
87 unsigned long action, void *data)
87{ 88{
88 struct sunxi_wdt_dev *sunxi_wdt = watchdog_get_drvdata(wdt_dev); 89 struct sunxi_wdt_dev *sunxi_wdt = watchdog_get_drvdata(wdt_dev);
89 void __iomem *wdt_base = sunxi_wdt->wdt_base; 90 void __iomem *wdt_base = sunxi_wdt->wdt_base;
diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c
index e600fd93b7de..d9b3c9c023c4 100644
--- a/drivers/watchdog/watchdog_core.c
+++ b/drivers/watchdog/watchdog_core.c
@@ -164,7 +164,7 @@ static int watchdog_restart_notifier(struct notifier_block *nb,
164 164
165 int ret; 165 int ret;
166 166
167 ret = wdd->ops->restart(wdd); 167 ret = wdd->ops->restart(wdd, action, data);
168 if (ret) 168 if (ret)
169 return NOTIFY_BAD; 169 return NOTIFY_BAD;
170 170
diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h
index b585fa2507ee..0b565f2ad242 100644
--- a/include/linux/watchdog.h
+++ b/include/linux/watchdog.h
@@ -46,7 +46,7 @@ struct watchdog_ops {
46 unsigned int (*status)(struct watchdog_device *); 46 unsigned int (*status)(struct watchdog_device *);
47 int (*set_timeout)(struct watchdog_device *, unsigned int); 47 int (*set_timeout)(struct watchdog_device *, unsigned int);
48 unsigned int (*get_timeleft)(struct watchdog_device *); 48 unsigned int (*get_timeleft)(struct watchdog_device *);
49 int (*restart)(struct watchdog_device *); 49 int (*restart)(struct watchdog_device *, unsigned long, void *);
50 long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); 50 long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long);
51}; 51};
52 52