diff options
Diffstat (limited to 'drivers/usb/core')
| -rw-r--r-- | drivers/usb/core/hub.c | 6 | ||||
| -rw-r--r-- | drivers/usb/core/quirks.c | 27 |
2 files changed, 33 insertions, 0 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 96f05b29c9ad..79781461eec9 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
| @@ -813,6 +813,12 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) | |||
| 813 | USB_PORT_FEAT_C_PORT_LINK_STATE); | 813 | USB_PORT_FEAT_C_PORT_LINK_STATE); |
| 814 | } | 814 | } |
| 815 | 815 | ||
| 816 | if ((portchange & USB_PORT_STAT_C_BH_RESET) && | ||
| 817 | hub_is_superspeed(hub->hdev)) { | ||
| 818 | need_debounce_delay = true; | ||
| 819 | clear_port_feature(hub->hdev, port1, | ||
| 820 | USB_PORT_FEAT_C_BH_PORT_RESET); | ||
| 821 | } | ||
| 816 | /* We can forget about a "removed" device when there's a | 822 | /* We can forget about a "removed" device when there's a |
| 817 | * physical disconnect or the connect status changes. | 823 | * physical disconnect or the connect status changes. |
| 818 | */ | 824 | */ |
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index d6a8d8269bfb..ecf12e15a7ef 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c | |||
| @@ -50,15 +50,42 @@ static const struct usb_device_id usb_quirk_list[] = { | |||
| 50 | /* Logitech Webcam B/C500 */ | 50 | /* Logitech Webcam B/C500 */ |
| 51 | { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, | 51 | { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, |
| 52 | 52 | ||
| 53 | /* Logitech Webcam C600 */ | ||
| 54 | { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 55 | |||
| 53 | /* Logitech Webcam Pro 9000 */ | 56 | /* Logitech Webcam Pro 9000 */ |
| 54 | { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, | 57 | { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, |
| 55 | 58 | ||
| 59 | /* Logitech Webcam C905 */ | ||
| 60 | { USB_DEVICE(0x046d, 0x080a), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 61 | |||
| 62 | /* Logitech Webcam C210 */ | ||
| 63 | { USB_DEVICE(0x046d, 0x0819), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 64 | |||
| 65 | /* Logitech Webcam C260 */ | ||
| 66 | { USB_DEVICE(0x046d, 0x081a), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 67 | |||
| 56 | /* Logitech Webcam C310 */ | 68 | /* Logitech Webcam C310 */ |
| 57 | { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, | 69 | { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, |
| 58 | 70 | ||
| 71 | /* Logitech Webcam C910 */ | ||
| 72 | { USB_DEVICE(0x046d, 0x0821), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 73 | |||
| 74 | /* Logitech Webcam C160 */ | ||
| 75 | { USB_DEVICE(0x046d, 0x0824), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 76 | |||
| 59 | /* Logitech Webcam C270 */ | 77 | /* Logitech Webcam C270 */ |
| 60 | { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, | 78 | { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, |
| 61 | 79 | ||
| 80 | /* Logitech Quickcam Pro 9000 */ | ||
| 81 | { USB_DEVICE(0x046d, 0x0990), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 82 | |||
| 83 | /* Logitech Quickcam E3500 */ | ||
| 84 | { USB_DEVICE(0x046d, 0x09a4), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 85 | |||
| 86 | /* Logitech Quickcam Vision Pro */ | ||
| 87 | { USB_DEVICE(0x046d, 0x09a6), .driver_info = USB_QUIRK_RESET_RESUME }, | ||
| 88 | |||
| 62 | /* Logitech Harmony 700-series */ | 89 | /* Logitech Harmony 700-series */ |
| 63 | { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, | 90 | { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, |
| 64 | 91 | ||
