[PATCH] usb: host: xhci-plat: add XHCI_MISSING_CAS quirk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Li Jun <jun.li@xxxxxxx>

i.MX8MQ USB3 host needs XHCI_MISSING_CAS quirk to warm reset the port to
enum the USB3 device plugged in while system sleep, as the port state is
stuck in polling mode after resume.

Signed-off-by: Li Jun <jun.li@xxxxxxx>
Acked-by: Peter Chen <peter.chen@xxxxxxx>
---

Hi,

Because resume from S3 suspend is broken for me on imx8mq, I stumbled
upon this patch in NXP's linux tree. (Please note that I'm not the
author and I've not yet put my SoB tag under it). This is just a
question:

This patch (and the docs) clearly is missing in mainline Linux because
the imx8mq devicetree description includes it (which does nothing now).

I've tested this and this particular addition doesn't fix my problem:

[   84.257538] imx8mq-usb-phy 381f0040.usb-phy: bus resume
[   84.263195] imx8mq-usb-phy 382f0040.usb-phy: bus resume
[   84.268898] dwc3 38100000.usb: driver resume

during resume from S3 suspend, here it still hangs.

What else could be missing here? I'm using mainline Linux only of course.

thanks,

                            martin



 drivers/usb/host/xhci-plat.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index d90cd5ec09cf..4655016eaf45 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -291,6 +291,10 @@ static int xhci_plat_probe(struct platform_device *pdev)
 
 		device_property_read_u32(tmpdev, "imod-interval-ns",
 					 &xhci->imod_interval);
+
+		if (device_property_read_bool(tmpdev,
+					      "usb3-resume-missing-cas"))
+			xhci->quirks |= XHCI_MISSING_CAS;
 	}
 
 	hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, "usb-phy", 0);
-- 
2.20.1




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux