Hello Markus, On 05.06.2015 15:41, Markus Rinne wrote: > WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT returned the initial timeout and > not the one that was last set. Fix this by updating struct > watchdog_device member 'timeout'. This is how it's supposed to be done > according to Documentation/watchdog/watchdog-kernel-api.txt. > > This is the test case I used: > > #include <fcntl.h> > #include <linux/watchdog.h> > #include <sys/stat.h> > #include <sys/types.h> > > #include <assert.h> > #include <stdlib.h> > > static const int TIMEOUT = 127; > > int main(void) > { > int fd = open("/dev/watchdog", O_WRONLY); > if (fd == -1) > return EXIT_FAILURE; > > int timeout = TIMEOUT; > ioctl(fd, WDIOC_SETTIMEOUT, &timeout); > assert(timeout == TIMEOUT); > > close(fd); > > return EXIT_SUCCESS; > } > > Signed-off-by: Markus Rinne <markus.rinne@xxxxxxxxx> > --- > drivers/watchdog/imx2_wdt.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c > index 5e6d808..b636799 100644 > --- a/drivers/watchdog/imx2_wdt.c > +++ b/drivers/watchdog/imx2_wdt.c > @@ -168,6 +168,7 @@ static int imx2_wdt_set_timeout(struct watchdog_device *wdog, > > regmap_update_bits(wdev->regmap, IMX2_WDT_WCR, IMX2_WDT_WCR_WT, > WDOG_SEC_TO_COUNT(new_timeout)); > + wdog->timeout = new_timeout; > return 0; > } > > this change repeats the change sent by Michael Grzeschik one month ago -- http://www.spinics.net/lists/linux-watchdog/msg06296.html -- With best wishes, Vladimir -- To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html