[PATCH] soc: imx8m: Probe the SoC driver late
Arnd Bergmann
arnd at arndb.de
Wed Sep 25 09:31:00 PDT 2024
On Wed, Sep 25, 2024, at 16:09, Marek Vasut wrote:
> On 9/25/24 6:04 PM, Arnd Bergmann wrote:
>> On Wed, Sep 25, 2024, at 16:00, Marek Vasut wrote:
>>> With driver_async_probe=* on kernel command line, the following trace is
>>> produced because on i.MX8M Plus hardware because the soc-imx8m.c driver
>>> calls of_clk_get_by_name() which returns -EPROBE_DEFER because the clock
>>> driver is not yet probed. This was not detected during regular testing
>>> without driver_async_probe.
>>>
>>> Attempt to fix it by probing the SoC driver late, but I don't think that
>>> is the correct approach here.
>>
>> I think the correct fix would be to propagate the -EPROBE_DEFER
>> and return that from imx8_soc_init(), so it gets retried again
>> after the clock driver.
> I already tried that, but if I return -EPROBE_DEFER from
> device_initcall, it doesn't get retriggered . I suspect EPROBE_DEFER
> works only for proper drivers ?
Right, of course. And unfortunately it can't just register to
the fsl,imx8mm-anatop/fsl,imx8mm-ocotp/... nodes because they
all have a driver already.
On the other hand, making it a late_initcall() defeats the
purpose of the driver because then it can't be used by other
drivers with soc_device_match(), resulting in incorrect
behavior when another driver relies on this to enable
a chip revision specific workaround.
Arnd
More information about the linux-arm-kernel
mailing list