diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2013-02-02 14:27:54 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2013-10-18 22:58:45 +0200 |
commit | 914c713fc11f045ea48805b9636df8bdc4c3823e (patch) | |
tree | 3a01b21b5aa7a9465b19d94403d533499994a8e6 /drivers/media/usb/uvc | |
parent | 23c4919c6fd15e76fe245ad0158f8739a3fa0747 (diff) |
uvcvideo: Disable USB autosuspend for Creative Live! Cam Optia AFuvcvideo-creative
The camera fails to start video streaming after having been autosuspend.
Add a new quirk to selectively disable autosuspend for devices that
don't support it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'drivers/media/usb/uvc')
-rw-r--r-- | drivers/media/usb/uvc/uvc_driver.c | 14 | ||||
-rw-r--r-- | drivers/media/usb/uvc/uvcvideo.h | 1 |
2 files changed, 14 insertions, 1 deletions
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index 81695d48c13e..4d23af76f45a 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -1913,8 +1913,11 @@ static int uvc_probe(struct usb_interface *intf, "supported.\n", ret); } + if (!(dev->quirks & UVC_QUIRK_DISABLE_AUTOSUSPEND)) + usb_enable_autosuspend(udev); + uvc_trace(UVC_TRACE_PROBE, "UVC device initialized.\n"); - usb_enable_autosuspend(udev); + return 0; error: @@ -2072,6 +2075,15 @@ static struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_PROBE_MINMAX }, + /* Creative Live! Cam Optia AF */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x041e, + .idProduct = 0x4058, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_DISABLE_AUTOSUSPEND }, /* Genius eFace 2025 */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 9e35982d099a..eb90a92d0781 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h @@ -137,6 +137,7 @@ #define UVC_QUIRK_FIX_BANDWIDTH 0x00000080 #define UVC_QUIRK_PROBE_DEF 0x00000100 #define UVC_QUIRK_RESTRICT_FRAME_RATE 0x00000200 +#define UVC_QUIRK_DISABLE_AUTOSUSPEND 0x00000400 /* Format flags */ #define UVC_FMT_FLAG_COMPRESSED 0x00000001 |