diff options
| author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-07-19 06:39:14 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-19 18:46:32 -0400 |
| commit | e387ef5c47ddeaeaa3cbdc54424cdb7a28dae2c0 (patch) | |
| tree | 126628e912abc8947c27fed55be526d84c9cb4ac | |
| parent | 80da2e0df5af700518611b7d1cc4fc9945bcaf95 (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>
| -rw-r--r-- | drivers/usb/core/quirks.c | 58 |
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 | ||
| 164 | static const struct usb_device_id usb_interface_quirk_list[] = { | 134 | static 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 | ||
