summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-10 17:27:58 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-10 17:27:58 -0800
commit3191a6f783255856e6b6fed56d875dd123e6281a (patch)
tree1fa449a09ddea2bb0ba35b189715665b0a060533 /include/linux
parent40fcd88b8d49fd911518190c985112097d3a8a17 (diff)
parent6f8ffc0b43c1043481306ffb8a4b8f53fa1f5ead (diff)
Merge tag 'for-usb-next-2013-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next
Sarah Writes: usb: Enumeration change under xHCI for 3.14. Hi Greg, Here's two patches for 3.14. There are buggy USB devices that don't enumerate under xHCI because they expect a 64-byte Get Descriptor request before the Set Address control transfer. David Moore has a USB 2.0 webcam that exhibits this behavior: http://marc.info/?l=linux-usb&m=135879694716380&w=2 These patches change the way USB 2.0 devices are enumerated under xHCI, to try the Windows enumeration scheme first. The USB 3.0 device enumeration scheme is unchanged. This should allow these buggy USB 2.0 devices to enumerate under xHCI. I've tested this code with USB 3.0 hubs and mass storage devices, and many different USB 2.0 devices (webcam, headset, ethernet, serial, mouse, keyboard, etc). They all work, so these patches are ready for wider testing. Sarah Sharp
Diffstat (limited to 'include/linux')
-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 758ce80d085f..efe8d8a7c7ad 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -353,6 +353,8 @@ struct hc_driver {
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
/* Returns the hardware-chosen device address */
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
+ /* prepares the hardware to send commands to the device */
+ int (*enable_device)(struct usb_hcd *, struct usb_device *udev);
/* Notifies the HCD after a hub descriptor is fetched.
* Will block.
*/