Hi Saravana, Am Freitag, 1. Juli 2022, 02:37:14 CEST schrieb Saravana Kannan: > On Thu, Jun 23, 2022 at 5:08 AM Alexander Stein > > <alexander.stein@xxxxxxxxxxxxxxx> wrote: > > Hi, > > > > Am Dienstag, 21. Juni 2022, 09:28:43 CEST schrieb Tony Lindgren: > > > Hi, > > > > > > * Saravana Kannan <saravanak@xxxxxxxxxx> [700101 02:00]: > > > > Now that fw_devlink=on by default and fw_devlink supports > > > > "power-domains" property, the execution will never get to the point > > > > where driver_deferred_probe_check_state() is called before the > > > > supplier > > > > has probed successfully or before deferred probe timeout has expired. > > > > > > > > So, delete the call and replace it with -ENODEV. > > > > > > Looks like this causes omaps to not boot in Linux next. With this > > > simple-pm-bus fails to probe initially as the power-domain is not > > > yet available. On platform_probe() genpd_get_from_provider() returns > > > -ENOENT. > > > > > > Seems like other stuff is potentially broken too, any ideas on > > > how to fix this? > > > > I think I'm hit by this as well, although I do not get a lockup. > > In my case I'm using > > arch/arm64/boot/dts/freescale/imx8mq-tqma8mq-mba8mx.dts and probing of > > 38320000.blk-ctrl fails as the power-domain is not (yet) registed. > > Ok, took a look. > > The problem is that there are two drivers for the same device and they > both initialize this device. > > gpc: gpc@303a0000 { > compatible = "fsl,imx8mq-gpc"; > } > > $ git grep -l "fsl,imx7d-gpc" -- drivers/ > drivers/irqchip/irq-imx-gpcv2.c > drivers/soc/imx/gpcv2.c > > IMHO, this is a bad/broken design. > > So what's happening is that fw_devlink will block the probe of > 38320000.blk-ctrl until 303a0000.gpc is initialized. And it stops > blocking the probe of 38320000.blk-ctrl as soon as the first driver > initializes the device. In this case, it's the irqchip driver. > > I'd recommend combining these drivers into one. Something like the > patch I'm attaching (sorry for the attachment, copy-paste is mangling > the tabs). Can you give it a shot please? I tried this patch and it delayed the driver initialization (those of UART as well BTW). Unfortunately the driver fails the same way: > [ 1.125253] imx8m-blk-ctrl 38320000.blk-ctrl: error -ENODEV: failed to attach power domain "bus" More than that it even introduced some more errors: > [ 0.008160] irq: no irq domain found for gpc@303a0000 ! > [ 0.013251] Failed to map interrupt for > /soc@0/bus@30400000/timer@306a0000 > [ 0.020152] Failed to initialize '/soc@0/bus@30400000/timer@306a0000': > -22 I kept the timestamps to show that these errors happen very early. So now the usage of the "global" interrupt parent, set at line 18, > interrupt-parent = <&gpc>; is not possible at this point of boot time. Best regards, Alexander