On Mon, Jun 27, 2022 at 1:22 AM Peng Fan (OSS) <peng.fan@xxxxxxxxxxx> wrote: > > Hi Saravana, > > 在 2022/6/25 15:15, Saravana Kannan 写道: > > On Wed, Jun 22, 2022 at 12:24 AM Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > >> +Cc Saravana Kannan <saravanak@xxxxxxxxxx>, the author of 71066545b48e4 > >> > >> On Wed, Jun 22, 2022 at 02:20:27PM +0800, Peng Fan (OSS) wrote: > >>> From: Peng Fan <peng.fan@xxxxxxx> > >>> > >>> Commit 71066545b48e4("driver core: Set fw_devlink.strict=1 by default") > >>> default set fw_devlink to true. This has a side effect to i.MX uart > >>> console. The sdma will make the i.MX8MP uart driver defer probe for some > >>> time (~10s with i.MX8MP-EVK board) until sdma ready, because sdma is a > >>> supplier with property dmas set in device tree node. > >> I just tested this on an i.MX6 board and observed the same behaviour. > >> The same will happen on any other i.MX board as well. This will also > >> likely happen on any other SoC on which the UART driver uses dmaengine. > >> > >>> Since this uart is for console, we need log printed out as soon as > >>> possible, so remove the dmas property for the uart console node. > >> Fixing this at board level is not really an option because that means > >> fixing each and every, at least i.MX board in the tree. Furthermore > >> this would mean to bring the deleted property back in and to remove > >> another dmas property should a user want to switch to another console > >> port. > >> > >> For what it's worth: NACK for 71066545b48e4. > > Hi Peng/Sascha/Fabio, > > > > I was looking at a fix for this (even when stdout-path isn't set in > > DT) and looking at the older code (say, 5.18), and it looks like > > before my recent changes the console would still only get probed > > during late_initcall(). Does that match your experience? > > I could not get you. In driver, it is module init: > module_init(imx_uart_init), not late_initcall. > Correct, the driver does use module_init(). However, because of how driver_deferred_probe_check_state() is implemented in 5.18, the console would get deferred probe until late_initcall(). In my earlier email, I'm trying to get you to confirm my analysis is what you were seeing in 5.18 (or 5.19-rcX without my series that deletes driver_deferred_probe_check_state()). -Saravana