Messages in this thread | | | Date | Tue, 22 Nov 2022 08:49:50 +0100 | Subject | Re: [PATCH] clk: imx8mp: register driver at arch_initcall time | From | Rasmus Villemoes <> |
| |
On 21/11/2022 16.43, Abel Vesa wrote: > On 22-09-28 14:41:08, Rasmus Villemoes wrote: >> We have an imx8mp-based board with an external gpio-triggered >> watchdog. Currently, we don't get to handle that in time before it >> resets the board. >> >> The probe of the watchdog device gets deferred because the SOC's GPIO >> controller is not yet ready, and the probe of that in turn gets deferred >> because its clock provider (namely, this driver) is not yet >> ready. Altogether, the watchdog does not get handled until the late >> initcall deferred_probe_initcall has made sure all leftover devices >> have been probed, and that's way too late. >> >> Aside from being necessary for our board, this also reduces total boot >> time because fewer device probes get deferred. >> > > I'm gonna be honest here. I can't say I'm happy with this. > I would suggest finding a solution to disable the external watchdog > before booting the kernel, up until the driver probes, would be preferable > to me.
That's not an option (it would violate the very purpose of having an external always-running watchdog), and also simply not possible on the given hardware.
I don't understand why this simple patch can't just be applied. It hurts nothing, it makes all imx8mp boards boot very slightly faster, there's no maintenance burden associated with the boilerplate code, it allows hardware that already exists to actually work with a mainline kernel out-of-the-box. And in an alternate universe where the init function had been arch_initcall in the initial commit (such as those in drivers/clk/mediatek/), nobody would have asked any questions.
Rasmus
| |