Re: imx8mm board crash in drivers/usb/chipidea/ci_hdrc_imx.c

From: Fabio Estevam
Date: Mon Sep 20 2021 - 21:43:42 EST


Hi Frieder,

On Mon, Sep 20, 2021 at 11:26 AM Frieder Schrempf
<frieder.schrempf@xxxxxxxxxx> wrote:

> Commit ed5a419bb019 ("usb: chipidea: imx: "fsl,usbphy" phandle is not
> mandatory now") explains, that the core driver already covers reading
> the "phys" property (see ci_hdrc_probe()):
>
> Since the chipidea common code support get the USB PHY phandle from
> "phys", the glue layer is not mandatory to get the "fsl,usbphy"
> phandle any more.
>
> This seems to be the reason why ci_hdrc_imx_probe() doesn't return any
> error in case "fsl,usbphy" is not set. It expects that the core will
> handle data->phy = NULL and already checks for a "phys" property.

chipidea core populates ci->usb_phy when phys is used.

The charger detection function only checks data->usb_phy, so they
don't see ci->usb_phy that was populated by the chipidea core.

We could change the signature of all charger detection functions to
receive struct ci_hdrc *ci, but that will be a huge patch that will
probably not meet
the stable requirements, so I think to minimally fix stable we should
go with the proposed fix I suggested.



>
> Therefore I'm not sure Fabio's fix is the right way to go. Could it be
> that the ci_hdrc_imx driver expects that it will be probed before the
> ci_hdrc core and this isn't true in Heiko's case?