[PATCH v2 2/3] usb: chipidea: imx: support disabling runtime-pm

Philippe Schenker philippe.schenker at toradex.com
Wed Jul 15 06:23:45 EDT 2020


On Wed, 2020-07-15 at 00:51 +0000, Peter Chen wrote:
>  
> > The Toradex Colibri iMX6ULL board has a special USB hardware design.
> > With runtime-pm enabled USB reset itself continuously. Furthermore
> > the OTG port
> > is also not enumerating devices if the Chipidea IP is in runtime
> > sleep mode and a
> > device or host gets plugged in.
> > 
> 
> Hi Philippe,
> 
> You may describe the detail what's the special USB hardware design for
> your board,

If I only knew the root-cause of that problem - unfortunately I don't.
That's also why I have such a hard time to describe it.

> and why it causes the problem, and why disable runtime pm could fix
> this issue, then,

I cannot provide the 'why' part yet. I'll try something more and hope I
can provide you guys with the exact description.

> the other users could know if it could apply to their platforms or not
> in future.

I only found out about it because you were pointing me in that
direction. I debugged for hours now and didn't came to the root-cause of
the issue. I think to really understand it I would need to know much
more about the Chipidea IP.

I'll get back to you guys with a proposal for a new description.

Philippe

> 
> Peter
> 
> > This patch adds the opportunity to disable Runtime Power Management
> > from
> > devicetree
> > 
> > Signed-off-by: Philippe Schenker <philippe.schenker at toradex.com>
> > 
> > ---
> > 
> > Changes in v2:
> > - Change commit message to tell the use case for Colibri iMX6ULL
> > 
> >  drivers/usb/chipidea/ci_hdrc_imx.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c
> > b/drivers/usb/chipidea/ci_hdrc_imx.c
> > index 5ae16368a0c7..5078d0695eb7 100644
> > --- a/drivers/usb/chipidea/ci_hdrc_imx.c
> > +++ b/drivers/usb/chipidea/ci_hdrc_imx.c
> > @@ -434,6 +434,9 @@ static int ci_hdrc_imx_probe(struct
> > platform_device *pdev)
> >  		usb_phy_init(pdata.usb_phy);
> >  	}
> > 
> > +	if (of_property_read_bool(np, "disable-runtime-pm"))
> > +		pdata.flags &= ~CI_HDRC_SUPPORTS_RUNTIME_PM;
> > +
> >  	if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM)
> >  		data->supports_runtime_pm = true;
> > 
> > --
> > 2.27.0


More information about the linux-arm-kernel mailing list