Hi Wolfram, On Mon, Apr 15, 2019 at 12:52 PM Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> wrote: > Support an already running watchdog by checking its enable bit and set > up the status accordingly before registering the device. > > Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> > --- > > This patch was tested using a Renesas Salvator XS board (R-Car M3N). It works. > However, there is a small window where the watchdog clock is disabled, namely > after the MSSR clock driver initializes it until RuntimePM of the watchdog > driver takes over. If the system hangs in this window, bad luck. So, I'd think > it makes sense to have this clock either always-on or to keep the state which > came from the firmware. Geert, what do you think? The MSSR clock driver does not disable the clock. The clock's core clk_disable_unused() does, which is a late initcall. So if the handover code calls rwdt_start() before that (i.e. no deferred probing happens), the clock would never be disabled. Note that pm_runtime_put() in rwdt_probe() queues a power down request, but as it is not the _sync variant, it is delayed by some time, so probably it would never happen if rwdt_start() is called by the handover code in probe. Now, if we would mark the clock always-on (CLK_IS_CRITICAL), we can never disable it, even if the wdt is not used or the driver is not compiled-in. I don't think there's a way to mark a clock as "keep the state which came from the firmware", CLK_IS_CRITICAL enables the clock in __clk_core_init(). Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds