summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorWolfram Sang <wsa+renesas@sang-engineering.com>2017-07-19 04:27:52 -0400
committerWim Van Sebroeck <wim@iguana.be>2017-09-09 14:23:08 -0400
commitb51247c8029660a9c49ad48bf38f364479c96215 (patch)
treeb6c6025459a2eb99400df22036aae62f4dfa7eda /drivers/watchdog
parentf6159dd4b085ad839ab02c1ba230535c53ef60d4 (diff)
watchdog: renesas_wdt: check rate also for upper limit
When checking the clock rate, ensure also that counting all 16 bits takes at least one second to match the granularity of the framework. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> 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/renesas_wdt.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c
index 22b0348826de..8437dd521532 100644
--- a/drivers/watchdog/renesas_wdt.c
+++ b/drivers/watchdog/renesas_wdt.c
@@ -134,14 +134,14 @@ static int rwdt_probe(struct platform_device *pdev)
134 134
135 for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) { 135 for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) {
136 clks_per_sec = DIV_ROUND_UP(rate, clk_divs[i]); 136 clks_per_sec = DIV_ROUND_UP(rate, clk_divs[i]);
137 if (clks_per_sec) { 137 if (clks_per_sec && clks_per_sec < 65536) {
138 priv->clks_per_sec = clks_per_sec; 138 priv->clks_per_sec = clks_per_sec;
139 priv->cks = i; 139 priv->cks = i;
140 break; 140 break;
141 } 141 }
142 } 142 }
143 143
144 if (!clks_per_sec) { 144 if (i < 0) {
145 dev_err(&pdev->dev, "Can't find suitable clock divider\n"); 145 dev_err(&pdev->dev, "Can't find suitable clock divider\n");
146 return -ERANGE; 146 return -ERANGE;
147 } 147 }