OSDN Git Service

watchdog: renesas_wdt: check rate also for upper limit
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 19 Jul 2017 08:27:52 +0000 (10:27 +0200)
committerWim Van Sebroeck <wim@iguana.be>
Sat, 9 Sep 2017 18:23:08 +0000 (20:23 +0200)
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>
drivers/watchdog/renesas_wdt.c

index 22b0348..8437dd5 100644 (file)
@@ -134,14 +134,14 @@ static int rwdt_probe(struct platform_device *pdev)
 
        for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) {
                clks_per_sec = DIV_ROUND_UP(rate, clk_divs[i]);
-               if (clks_per_sec) {
+               if (clks_per_sec && clks_per_sec < 65536) {
                        priv->clks_per_sec = clks_per_sec;
                        priv->cks = i;
                        break;
                }
        }
 
-       if (!clks_per_sec) {
+       if (i < 0) {
                dev_err(&pdev->dev, "Can't find suitable clock divider\n");
                return -ERANGE;
        }