Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull USB fixes from Greg KH:
"Here are two USB patches that resolve some reported issues, one with
an odd HUB, and one in the chipidea driver"

* tag 'usb-3.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
usb: Check if port status is equal to RxDetect
usb: chipidea: udc: Disable auto ZLP generation on ep0

+21 -2
+2 -2
drivers/usb/chipidea/udc.c
··· 1169 1169 1170 1170 if (hwep->type == USB_ENDPOINT_XFER_CONTROL) 1171 1171 cap |= QH_IOS; 1172 - if (hwep->num) 1173 - cap |= QH_ZLT; 1172 + 1173 + cap |= QH_ZLT; 1174 1174 cap |= (hwep->ep.maxpacket << __ffs(QH_MAX_PKT)) & QH_MAX_PKT; 1175 1175 /* 1176 1176 * For ISO-TX, we set mult at QH as the largest value, and use
+19
drivers/usb/core/hub.c
··· 889 889 if (!hub_is_superspeed(hub->hdev)) 890 890 return -EINVAL; 891 891 892 + ret = hub_port_status(hub, port1, &portstatus, &portchange); 893 + if (ret < 0) 894 + return ret; 895 + 896 + /* 897 + * USB controller Advanced Micro Devices, Inc. [AMD] FCH USB XHCI 898 + * Controller [1022:7814] will have spurious result making the following 899 + * usb 3.0 device hotplugging route to the 2.0 root hub and recognized 900 + * as high-speed device if we set the usb 3.0 port link state to 901 + * Disabled. Since it's already in USB_SS_PORT_LS_RX_DETECT state, we 902 + * check the state here to avoid the bug. 903 + */ 904 + if ((portstatus & USB_PORT_STAT_LINK_STATE) == 905 + USB_SS_PORT_LS_RX_DETECT) { 906 + dev_dbg(&hub->ports[port1 - 1]->dev, 907 + "Not disabling port; link state is RxDetect\n"); 908 + return ret; 909 + } 910 + 892 911 ret = hub_set_port_link_state(hub, port1, USB_SS_PORT_LS_SS_DISABLED); 893 912 if (ret) 894 913 return ret;