[PATCH v3 07/10] watchdog: wdt-uclass.c: handle all DM watchdogs in watchdog_reset()
Stefan Roese
sr at denx.de
Thu Jul 15 10:15:08 CEST 2021
Hi Rasmus,
On 05.07.21 17:30, Simon Glass wrote:
> Hi Rasmus,
>
> On Fri, 2 Jul 2021 at 06:45, Rasmus Villemoes
> <rasmus.villemoes at prevas.dk> wrote:
>>
>> A board can have and make use of more than one watchdog device, say
>> one built into the SOC and an external gpio-petted one. Having
>> wdt-uclass only handle the first is both a little arbitrary and
>> unexpected.
>>
>> So change initr_watchdog() so we visit (probe) all DM watchdog
>> devices. This essentially boils down to making the init_watchdog_dev
>> function into a .post_probe method.
>>
>> Similarly let watchdog_reset() loop over the whole uclass - each
>> having their own ratelimiting metadata, and a separate "is this device
>> running" flag.
>>
>> This gets rid of the watchdog_dev member of struct global_data. We
>> do, however, still need the GD_FLG_WDT_READY set in
>> initr_watchdog(). This is because watchdog_reset() can get called
>> before DM is ready, and I don't think we can call uclass_get() that
>> early.
>>
>> The current code just returns 0 if "getting" the first device fails -
>> that can of course happen because there are no devices, but it could
>> also happen if its ->probe call failed. In keeping with that, continue
>> with the handling of the remaining devices even if one fails to
>> probe. This is also why we cannot use uclass_probe_all().
>>
>> If desired, it's possible to later add a per-device "u-boot,autostart"
>> boolean property, so that one can do CONFIG_WATCHDOG_AUTOSTART
>> per-device.
>>
>> Reviewed-by: Stefan Roese <sr at denx.de>
>> Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
>> ---
>> drivers/watchdog/wdt-uclass.c | 96 ++++++++++++++++++-------------
>> include/asm-generic/global_data.h | 6 --
>> 2 files changed, 56 insertions(+), 46 deletions(-)
>>
>
> Please see my belated reply on the previous version of this patch.
Rasmus, do you plan to send an updated patchset version, addressing
Simons's comments?
Thanks,
Stefan
More information about the U-Boot
mailing list