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