[PATCH] watchdog: mpc8xx: Revert the 8xx watchdog back to CONFIG_HW_WATCHDOG

Christophe Leroy
2020-02-26T16:22:52Z

Le 25/02/2020 ? 17:40, Tom Rini a ?crit?:
> On Thu, Feb 20, 2020 at 07:39:51AM +0000, Christophe Leroy wrote:
>
>> Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
>> cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
>> compatible with the 8xx because it starts the watchdog HW timer at
>> reset and must be serviced from the very beginning including while
>> U-boot is executed in the firmware before relocation in RAM.
>>
>> Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.
>>
>> Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
>> removing the lines put in comment in that commit, and also remove
>> again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
>> that commit and brought back by mistake by commit b3134ffbd944
>> ("watchdog: Kconfig: Sort entry alphabetically")
>>
>> Note that there was an 'imply WATCHDOG' in the original commit but
>> it disappeared in the Kconfig alphabetical sorting, so no need to
>> remove it here.
>>
>> Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
>> Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>> Cc: Stefan Roese <sr@denx.de>
>> Cc: Patrice Chotard <patrice.chotard@st.com>
>> Reviewed-by: Stefan Roese <sr@denx.de>
>
> Please note that as-is this causes a build failure:
> +(MCR3000) In file included from ../arch/powerpc/cpu/mpc8xx/cpu.c:23:0:
> +(MCR3000) ../include/watchdog.h:32:4: error: #error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used together."
> +(MCR3000) # error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used together."
> +(MCR3000) ^~~~~
> +(MCR3000) make[2]: *** [arch/powerpc/cpu/mpc8xx/cpu.o] Error 1
> +(MCR3000) make[1]: *** [arch/powerpc/cpu/mpc8xx] Error 2
> +(MCR3000) make: *** [sub-make] Error 2
>

Right.

CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG are mutually exclusive but
CONFIG_WDT implicitely selects CONFIG_WATCHDOG since commit 06985289d452
("watchdog: Implement generic watchdog_reset() version")

I've just sent a patch to fix that. Please take both together.

Christophe