[PATCH] ARM: imx: drop devlinks to reset-controller node

Saravana Kannan saravanak at google.com
Tue Sep 21 09:47:43 PDT 2021


Hi Philipp,

On Tue, Sep 21, 2021 at 8:05 AM Philipp Zabel <p.zabel at pengutronix.de> wrote:
>
> Hi Saravana,
>
> On Tue, 2021-09-21 at 07:45 -0700, Saravana Kannan wrote:
> > On Tue, Sep 21, 2021 at 5:50 AM Philipp Zabel <p.zabel at pengutronix.de> wrote:
> > > Starting with commit 6b2117ad65f1 ("of: property: fw_devlink: Add
> > > support for "resets" and "pwms""), the imx-drm driver fails to load
> > > due to forever dormant devlinks to the reset-controller node. This
> > > node is never associated with a struct device.
> > >
> > > Drop those links, the reset controller is always available.
> > >
> > > Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> > > ---
> > >  arch/arm/mach-imx/src.c | 10 +++++++++-
> > >  1 file changed, 9 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
> > > index 95fd1fbb0826..6924ac19a762 100644
> > > --- a/arch/arm/mach-imx/src.c
> > > +++ b/arch/arm/mach-imx/src.c
> > > @@ -178,9 +178,17 @@ void __init imx_src_init(void)
> > >         WARN_ON(!src_base);
> > >
> > >         imx_reset_controller.of_node = np;
> > > -       if (IS_ENABLED(CONFIG_RESET_CONTROLLER))
> > > +       if (IS_ENABLED(CONFIG_RESET_CONTROLLER)) {
> > >                 reset_controller_register(&imx_reset_controller);
> > >
> > > +               /*
> > > +                * The reset-controller node is never associated with a struct
> > > +                * device, which trips up fw_devlink=on. As a workaround, drop
> > > +                * all devlinks to/from this node.
> > > +                */
> > > +               fw_devlink_purge_absent_suppliers(&np->fwnode);
> > > +       }
> > > +
> >
> > Hey Philipp,
> >
> > Can you point me to the .dts file that corresponds to this platform? I
> > want to take a closer look.
>
> Thank you, the relevant file is arch/arm/boot/dts/imx6qdl.dtsi, device
> nodes labeled as &src and &ipu1. This is for example included by
> arch/arm/boot/dts/imx6q-nitrogen6x.dts. There's a second &ipu2 added in
> arch/arm/boot/dts/imx6qd.dtsi as well.

I took a closer look at the DT. Is there really no struct device for
this node? Based on the DT, it looks like a device would automatically
get created for this node. So it looks like it's more of an issue with
the device not being probed by a real driver? Why can't you convert
the reset controller driver to a proper platform driver instead of
this patch? I think that's the right fix.

-Saravana



More information about the linux-arm-kernel mailing list