aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-12 14:40:15 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-12 14:40:15 -0400
commit192c028b6ac972df25fd624f94a94d038fbdb66c (patch)
tree4dd9d13ffd239e4d7c61401f892989742c671fa8 /drivers/usb
parentea1990c3796e7550e6f240983f2d1b8e5ecf3891 (diff)
parentfa389e220254c69ffae0d403eac4146171062d08 (diff)
Merge 3.14-rc6 into usb-next
We want the USB fixes in here as well.
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/config.c4
-rw-r--r--drivers/usb/core/quirks.c4
-rw-r--r--drivers/usb/host/xhci.c14
3 files changed, 11 insertions, 11 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 14ba398d6def..1ab4df1de2da 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -716,6 +716,10 @@ int usb_get_configuration(struct usb_device *dev)
716 result = -ENOMEM; 716 result = -ENOMEM;
717 goto err; 717 goto err;
718 } 718 }
719
720 if (dev->quirks & USB_QUIRK_DELAY_INIT)
721 msleep(100);
722
719 result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, 723 result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno,
720 bigbuffer, length); 724 bigbuffer, length);
721 if (result < 0) { 725 if (result < 0) {
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 8f37063c0a49..739ee8e8bdfd 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -47,6 +47,10 @@ static const struct usb_device_id usb_quirk_list[] = {
47 /* Microsoft LifeCam-VX700 v2.0 */ 47 /* Microsoft LifeCam-VX700 v2.0 */
48 { USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME }, 48 { USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME },
49 49
50 /* Logitech HD Pro Webcams C920 and C930e */
51 { USB_DEVICE(0x046d, 0x082d), .driver_info = USB_QUIRK_DELAY_INIT },
52 { USB_DEVICE(0x046d, 0x0843), .driver_info = USB_QUIRK_DELAY_INIT },
53
50 /* Logitech Quickcam Fusion */ 54 /* Logitech Quickcam Fusion */
51 { USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME }, 55 { USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME },
52 56
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 652be2138b4b..8fe4e124ddd4 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4762,6 +4762,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
4762 /* Accept arbitrarily long scatter-gather lists */ 4762 /* Accept arbitrarily long scatter-gather lists */
4763 hcd->self.sg_tablesize = ~0; 4763 hcd->self.sg_tablesize = ~0;
4764 4764
4765 /* support to build packet from discontinuous buffers */
4766 hcd->self.no_sg_constraint = 1;
4767
4765 /* XHCI controllers don't stop the ep queue on short packets :| */ 4768 /* XHCI controllers don't stop the ep queue on short packets :| */
4766 hcd->self.no_stop_on_short = 1; 4769 hcd->self.no_stop_on_short = 1;
4767 4770
@@ -4786,14 +4789,6 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
4786 /* xHCI private pointer was set in xhci_pci_probe for the second 4789 /* xHCI private pointer was set in xhci_pci_probe for the second
4787 * registered roothub. 4790 * registered roothub.
4788 */ 4791 */
4789 xhci = hcd_to_xhci(hcd);
4790 /*
4791 * Support arbitrarily aligned sg-list entries on hosts without
4792 * TD fragment rules (which are currently unsupported).
4793 */
4794 if (xhci->hci_version < 0x100)
4795 hcd->self.no_sg_constraint = 1;
4796
4797 return 0; 4792 return 0;
4798 } 4793 }
4799 4794
@@ -4822,9 +4817,6 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
4822 if (xhci->hci_version > 0x96) 4817 if (xhci->hci_version > 0x96)
4823 xhci->quirks |= XHCI_SPURIOUS_SUCCESS; 4818 xhci->quirks |= XHCI_SPURIOUS_SUCCESS;
4824 4819
4825 if (xhci->hci_version < 0x100)
4826 hcd->self.no_sg_constraint = 1;
4827
4828 /* Make sure the HC is halted. */ 4820 /* Make sure the HC is halted. */
4829 retval = xhci_halt(xhci); 4821 retval = xhci_halt(xhci);
4830 if (retval) 4822 if (retval)