On 14.04.2016 01:42, Matthew Giassa wrote:
Mathias provided me with some usb device calls I could use to resolve
this in software (pm_runtime_get_xxx(), pm_runtime_put()), but I'm not
familiar with the API, so I'd need some help figure out how to get the
`struct device*' handle for my current device and issuing those calls
within my application. I have the bus/dev pair and a
libusb_device_handle to it. This would at least allow me to patch my
software in the meantime.
Before fixing on your side could you try if removing the LPM
enable/disable calls from port suspend/resume has any impact?
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 38cc4ba..d6a0272 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -3208,12 +3208,6 @@ int usb_port_suspend(struct usb_device *udev, pm_message_t msg)
if (PMSG_IS_AUTO(msg))
goto err_ltm;
}
- if (usb_unlocked_disable_lpm(udev)) {
- dev_err(&udev->dev, "Failed to disable LPM before suspend\n.");
- status = -ENOMEM;
- if (PMSG_IS_AUTO(msg))
- goto err_lpm3;
- }
/* see 7.1.7.6 */
if (hub_is_superspeed(hub->hdev))
@@ -3528,7 +3522,6 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg)
/* Try to enable USB3 LTM and LPM */
usb_enable_ltm(udev);
- usb_unlocked_enable_lpm(udev);
}
usb_unlock_port(port_dev);
-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html