aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2012-07-19 06:39:14 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-19 18:46:32 -0400
commite387ef5c47ddeaeaa3cbdc54424cdb7a28dae2c0 (patch)
tree126628e912abc8947c27fed55be526d84c9cb4ac /drivers/usb
parent80da2e0df5af700518611b7d1cc4fc9945bcaf95 (diff)
usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams
Most Logitech UVC webcams (both early models that don't advertise UVC compatibility and newer UVC-advertised devices) require the RESET_RESUME quirk. Instead of listing each and every model, match the devices based on the UVC interface information. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/quirks.c58
1 files changed, 16 insertions, 42 deletions
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index cbd15d1d25d3..f15501f4c585 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -43,53 +43,23 @@ static const struct usb_device_id usb_quirk_list[] = {
43 /* Creative SB Audigy 2 NX */ 43 /* Creative SB Audigy 2 NX */
44 { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, 44 { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
45 45
46 /* Logitech Webcam C200 */ 46 /* Logitech Quickcam Fusion */
47 { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME }, 47 { USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME },
48 48
49 /* Logitech Webcam C250 */ 49 /* Logitech Quickcam Orbit MP */
50 { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, 50 { USB_DEVICE(0x046d, 0x08c2), .driver_info = USB_QUIRK_RESET_RESUME },
51 51
52 /* Logitech Webcam C300 */ 52 /* Logitech Quickcam Pro for Notebook */
53 { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME }, 53 { USB_DEVICE(0x046d, 0x08c3), .driver_info = USB_QUIRK_RESET_RESUME },
54 54
55 /* Logitech Webcam B/C500 */ 55 /* Logitech Quickcam Pro 5000 */
56 { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, 56 { USB_DEVICE(0x046d, 0x08c5), .driver_info = USB_QUIRK_RESET_RESUME },
57 57
58 /* Logitech Webcam C600 */ 58 /* Logitech Quickcam OEM Dell Notebook */
59 { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, 59 { USB_DEVICE(0x046d, 0x08c6), .driver_info = USB_QUIRK_RESET_RESUME },
60 60
61 /* Logitech Webcam Pro 9000 */ 61 /* Logitech Quickcam OEM Cisco VT Camera II */
62 { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, 62 { USB_DEVICE(0x046d, 0x08c7), .driver_info = USB_QUIRK_RESET_RESUME },
63
64 /* Logitech Webcam C905 */
65 { USB_DEVICE(0x046d, 0x080a), .driver_info = USB_QUIRK_RESET_RESUME },
66
67 /* Logitech Webcam C210 */
68 { USB_DEVICE(0x046d, 0x0819), .driver_info = USB_QUIRK_RESET_RESUME },
69
70 /* Logitech Webcam C260 */
71 { USB_DEVICE(0x046d, 0x081a), .driver_info = USB_QUIRK_RESET_RESUME },
72
73 /* Logitech Webcam C310 */
74 { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
75
76 /* Logitech Webcam C910 */
77 { USB_DEVICE(0x046d, 0x0821), .driver_info = USB_QUIRK_RESET_RESUME },
78
79 /* Logitech Webcam C160 */
80 { USB_DEVICE(0x046d, 0x0824), .driver_info = USB_QUIRK_RESET_RESUME },
81
82 /* Logitech Webcam C270 */
83 { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
84
85 /* Logitech Quickcam Pro 9000 */
86 { USB_DEVICE(0x046d, 0x0990), .driver_info = USB_QUIRK_RESET_RESUME },
87
88 /* Logitech Quickcam E3500 */
89 { USB_DEVICE(0x046d, 0x09a4), .driver_info = USB_QUIRK_RESET_RESUME },
90
91 /* Logitech Quickcam Vision Pro */
92 { USB_DEVICE(0x046d, 0x09a6), .driver_info = USB_QUIRK_RESET_RESUME },
93 63
94 /* Logitech Harmony 700-series */ 64 /* Logitech Harmony 700-series */
95 { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, 65 { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
@@ -162,6 +132,10 @@ static const struct usb_device_id usb_quirk_list[] = {
162}; 132};
163 133
164static const struct usb_device_id usb_interface_quirk_list[] = { 134static const struct usb_device_id usb_interface_quirk_list[] = {
135 /* Logitech UVC Cameras */
136 { USB_VENDOR_AND_INTERFACE_INFO(0x046d, USB_CLASS_VIDEO, 1, 0),
137 .driver_info = USB_QUIRK_RESET_RESUME },
138
165 { } /* terminating entry must be last */ 139 { } /* terminating entry must be last */
166}; 140};
167 141