Re: [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2

From: Leonardo Costa

Date: Wed Aug 19 2026 - 07:57:08 EST


On Tue, Aug 18, 2026 at 01:53:27PM -0500, Frank Li wrote:
> On Tue, Aug 18, 2026 at 03:08:33PM -0300, Leonardo Costa wrote:
> > It seems that the drivers are being deferred at boot start by the
> > device_links_check_suppliers() function. It runs through the drivers before
> > they're initialized and defers them if their suppliers are not available. The
> > GPIO and PWM drivers are able to follow the gpio-map and pwm-map properties
> > (through the of_parse_phandle_with_args_map() function), but from what I see,
> > device_links_check_suppliers() has no such mechanism. It follows the phandle to
> > the nexus connector node only, and since there's no compatible driver for it,
> > the function defers the consumer drivers used in the overlay.
> >
> > I think this is what is happening mainly because setting the
> > fw_devlink=permissive kernel parameter (which sets the DL_FLAG_SYNC_STATE_ONLY
> > flag) solved the issue, though I could be misunderstanding something.
> >
> > int device_links_check_suppliers(struct device *dev)
> > {
> > ...
> > list_for_each_entry(link, &dev->links.suppliers, c_node) {
> > ...
> >
> > if (link->status != DL_STATE_AVAILABLE &&
> > !device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
> >
> > ...
> > device_links_missing_supplier(dev);
> > ret = dev_err_probe(dev, -EPROBE_DEFER,
> > "supplier %s not ready\n", dev_name(link->supplier));
> > break;
> > }
> > WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
> > }
> > ...
> > }
> >
> > Has this behavior been observed before? Do you know of any work being done that
> > addresses this?
>
> Does a dummy container driver (for debug) to proof your analyer? Let
> me to find time to debug it.
>
> Frank

I made a dummy driver matching that compatible string, and yes, it did
solve the issue.

Leonardo