Re: [PATCH v5 0/4] watchdog: at91sam9_wdt: handle already configuredwdt

From: boris brezillon
Date: Tue Oct 29 2013 - 09:01:12 EST

Hi Wim,

I'm sorry for the inconvenience, but I found some bugs in my patch series:

1) the secs_to_ticks returns an erronous value when 0 is passed as an argument
2) the calculated heartbeat is too small for some use cases
(i.e. kexecing a new kernel might trigger a watchdog reset before the new kernel
is able to load the watchdog driver)
3) when initializing the watchdog driver, the timer should be configured with the min_heartbeat value
instead of the standard heartbeat value, because we don't for how long the timer has been running.

I'll send a new patch fixing those issues.
I hope it won't bother you :-(.

Best Regards,


On 29/10/2013 08:50, Wim Van Sebroeck wrote:
Hi Boris,


This patch series is a porposal to enhance the sam9 watchdog timer support.

The at91sam9 watchdog timer can only be configured once, and the current
implementation tries to configure it in a static way:
- 2 seconds timeout
- wdt restart every 500ms

If the timer has already been configured with different values, it returns an
error and do not create any watchdog device.

This is not critical if the watchdog is disabled, but if it has been enabled
with different timeout values it will lead to a SoC reset.

This patch series tries to address this issue by adapting the heartbeat value
according the WDT timer config:
- it first tries to configure the timer as requested.
- if it fails it fallbacks to the current config, adapting its heartbeat timer
to the needs

This patch series also move to a dynamically allocated at91wdt device instead
of the static instance. I'm not sure this is the best solution, so please tell
me if you prefer to keep static instance of watchdog.

It adds a new at91 wdt type: software. This new type make use of the at91 wdt
interrupt to trigger a software reboot.

Finally it adds several properties to the device tree bindings.

Best Regards,

Changes since v4:
- fix coding style issues
- remove unneeded watchdog_active test

Changes since v3:
- fix a bug in heartbeat time computation
- fix a bug in at91_wdt_set_timeout when new timeout is bigger than the old
- rename at91_wdt_ping into at91_wdt_start
- remove unneeded ping callback assignment

Changes since v2:
- fix documentation
- rework the heartbeat computation to get a more flexible behaviour
- fix xx_to_yy macros
- modify warning and error messages
- remove unneeded parenthesis in arithmetic operations
- use devm functions to map io memory
- remove unneeded devm_kfree calls

Change since v1:
- fix typo in documentaion
- fix irq dt definition for sama5d3 SoC

Boris BREZILLON (4):
watchdog: at91sam9_wdt: better watchdog support
watchdog: at91sam9_wdt: update device tree doc
ARM: at91/dt: add sam9 watchdog default options to SoCs
ARM: at91/dt: add watchdog properties to kizbox board

.../devicetree/bindings/watchdog/atmel-wdt.txt | 30 +-
arch/arm/boot/dts/at91sam9260.dtsi | 5 +
arch/arm/boot/dts/at91sam9263.dtsi | 5 +
arch/arm/boot/dts/at91sam9g45.dtsi | 5 +
arch/arm/boot/dts/at91sam9n12.dtsi | 5 +
arch/arm/boot/dts/at91sam9x5.dtsi | 5 +
arch/arm/boot/dts/kizbox.dts | 6 +
arch/arm/boot/dts/sama5d3.dtsi | 5 +
drivers/watchdog/at91sam9_wdt.c | 309 ++++++++++++++------
9 files changed, 287 insertions(+), 88 deletions(-)
These 4 patches have been added to linux-watchdog-next.

Kind regards,

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at