On Tue, May 26, 2015 at 10:19:57AM +0800, Zhang, Yanmin wrote:Sorry. I didn't send patches for a long time. I would resend the patchset again.
Some usb driver has a specific requirement. Their critical functionsYour emails are obviously corrupted and can't be applied.. Please fix
might be called under both atomic environment and non-atomic environment.
If it's under atomic environment, the driver can wake up the device
by calling pm_runtime_get_sync directly.
If it's under non-atomic environment, the function's caller need wake
up the device before the function accesses the device.
The patch adds usb_autopm_get_interface_upgrade, a new function to
support above capability.
Signed-off-by: Zhang Yanmin <yanmin.zhang@xxxxxxxxx>
---
drivers/usb/core/driver.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++
include/linux/usb.h | 3 +++
2 files changed, 56 insertions(+)
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 818369a..d07fd8d 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -1684,6 +1684,59 @@ int usb_autopm_get_interface(struct usb_interface *intf)
EXPORT_SYMBOL_GPL(usb_autopm_get_interface);
/**
+ * usb_autopm_get_interface_retry - increment a USB interface's PM-usage counter
+ * @intf: the usb_interface whose counter should be incremented
up and resend all of them.