Thread (36 messages) 36 messages, 7 authors, 2023-07-21

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

From: Philippe Schenker <hidden>
Date: 2020-07-15 10:23:53
Also in: linux-arm-kernel, linux-usb, lkml

On Wed, 2020-07-15 at 00:51 +0000, Peter Chen wrote:
 
quoted
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
quoted
This patch adds the opportunity to disable Runtime Power Management
from
devicetree

Signed-off-by: Philippe Schenker <redacted>

---

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help