aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2015-01-29 15:05:04 -0500
committerBen Hutchings <ben@decadent.org.uk>2015-05-09 23:16:14 +0100
commit16cef17b05cb56f0088595355597be55246c668b (patch)
tree665dee5b40afa4842c569dfe7fa9fe2e6dca48ea /include
parent5b013a6d6593cd1c6a5b8e27b0bd11765b547896 (diff)
downloadkernel_samsung_smdk4412-16cef17b05cb56f0088595355597be55246c668b.zip
kernel_samsung_smdk4412-16cef17b05cb56f0088595355597be55246c668b.tar.gz
kernel_samsung_smdk4412-16cef17b05cb56f0088595355597be55246c668b.tar.bz2
USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
commit 074f9dd55f9cab1b82690ed7e44bcf38b9616ce0 upstream. Currently the USB stack assumes that all host controller drivers are capable of receiving wakeup requests from downstream devices. However, this isn't true for the isp1760-hcd driver, which means that it isn't safe to do a runtime suspend of any device attached to a root-hub port if the device requires wakeup. This patch adds a "cant_recv_wakeups" flag to the usb_hcd structure and sets the flag in isp1760-hcd. The core is modified to prevent a direct child of the root hub from being put into runtime suspend with wakeup enabled if the flag is set. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com> [bwh: Backported to 3.2: adjust context] Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'include')
-rw-r--r--include/linux/usb/hcd.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index 112bc91..4fc3e5d 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -128,6 +128,8 @@ struct usb_hcd {
unsigned wireless:1; /* Wireless USB HCD */
unsigned authorized_default:1;
unsigned has_tt:1; /* Integrated TT in root hub */
+ unsigned cant_recv_wakeups:1;
+ /* wakeup requests from downstream aren't received */
int irq; /* irq allocated */
void __iomem *regs; /* device memory/io */