Merge tag 'usb-3.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB fixes from Greg KH:
"Here are 4 USB fixes for your current tree.

Two of them are reverts to hopefully resolve the nasty XHCI
regressions we have been having on some types of devices. The other
two are quirks for some Logitech video devices"

* tag 'usb-3.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma"
Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather."
usb: Make DELAY_INIT quirk wait 100ms between Get Configuration requests
usb: Add device quirk for Logitech HD Pro Webcams C920 and C930e

Changed files
+11 -19
drivers
net
usb
-8
drivers/net/usb/ax88179_178a.c
··· 1029 1029 dev->mii.phy_id = 0x03; 1030 1030 dev->mii.supports_gmii = 1; 1031 1031 1032 - if (usb_device_no_sg_constraint(dev->udev)) 1033 - dev->can_dma_sg = 1; 1034 - 1035 1032 dev->net->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | 1036 1033 NETIF_F_RXCSUM; 1037 1034 1038 1035 dev->net->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | 1039 1036 NETIF_F_RXCSUM; 1040 - 1041 - if (dev->can_dma_sg) { 1042 - dev->net->features |= NETIF_F_SG | NETIF_F_TSO; 1043 - dev->net->hw_features |= NETIF_F_SG | NETIF_F_TSO; 1044 - } 1045 1037 1046 1038 /* Enable checksum offload */ 1047 1039 *tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP |
+4
drivers/usb/core/config.c
··· 717 717 result = -ENOMEM; 718 718 goto err; 719 719 } 720 + 721 + if (dev->quirks & USB_QUIRK_DELAY_INIT) 722 + msleep(100); 723 + 720 724 result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, 721 725 bigbuffer, length); 722 726 if (result < 0) {
+4
drivers/usb/core/quirks.c
··· 47 47 /* Microsoft LifeCam-VX700 v2.0 */ 48 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 54 /* Logitech Quickcam Fusion */ 51 55 { USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME }, 52 56
+3 -11
drivers/usb/host/xhci.c
··· 4733 4733 /* Accept arbitrarily long scatter-gather lists */ 4734 4734 hcd->self.sg_tablesize = ~0; 4735 4735 4736 + /* support to build packet from discontinuous buffers */ 4737 + hcd->self.no_sg_constraint = 1; 4738 + 4736 4739 /* XHCI controllers don't stop the ep queue on short packets :| */ 4737 4740 hcd->self.no_stop_on_short = 1; 4738 4741 ··· 4760 4757 /* xHCI private pointer was set in xhci_pci_probe for the second 4761 4758 * registered roothub. 4762 4759 */ 4763 - xhci = hcd_to_xhci(hcd); 4764 - /* 4765 - * Support arbitrarily aligned sg-list entries on hosts without 4766 - * TD fragment rules (which are currently unsupported). 4767 - */ 4768 - if (xhci->hci_version < 0x100) 4769 - hcd->self.no_sg_constraint = 1; 4770 - 4771 4760 return 0; 4772 4761 } 4773 4762 ··· 4787 4792 */ 4788 4793 if (xhci->hci_version > 0x96) 4789 4794 xhci->quirks |= XHCI_SPURIOUS_SUCCESS; 4790 - 4791 - if (xhci->hci_version < 0x100) 4792 - hcd->self.no_sg_constraint = 1; 4793 4795 4794 4796 /* Make sure the HC is halted. */ 4795 4797 retval = xhci_halt(xhci);