[PATCH] add interface protocol 1 for Surface Pro 3 cameras

2015-08-24 Thread Zvi Effron
The cameras on the Surface Pro 3 report interface protocol of 1.
The generic USB video class doesn't work for them.
This adds entries for the front and rear camera.

Signed-off-by: Zvi Effron 
---
 drivers/media/usb/uvc/uvc_driver.c | 16 
 1 file changed, 16 insertions(+)

diff --git a/drivers/media/usb/uvc/uvc_driver.c 
b/drivers/media/usb/uvc/uvc_driver.c
index 4b5b3e8..d2fdbc1 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2142,6 +2142,22 @@ static struct usb_device_id uvc_ids[] = {
  .bInterfaceSubClass   = 1,
  .bInterfaceProtocol   = 0,
  .driver_info  = UVC_QUIRK_PROBE_MINMAX },
+   /* Microsoft Surface Pro 3 LifeCam Front */
+   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
+   | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x045e,
+ .idProduct= 0x07be,
+ .bInterfaceClass  = USB_CLASS_VIDEO,
+ .bInterfaceSubClass   = 1,
+ .bInterfaceProtocol   = 1 },
+   /* Microsoft Surface Pro 3 LifeCam Rear */
+   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
+   | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x045e,
+ .idProduct= 0x07bf,
+ .bInterfaceClass  = USB_CLASS_VIDEO,
+ .bInterfaceSubClass   = 1,
+ .bInterfaceProtocol   = 1 },
/* Logitech Quickcam Fusion */
{ .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] add interface protocol 1 for Surface Pro 3 cameras

2015-11-09 Thread Laurent Pinchart
Hi Zvi,

Thank you for the patch.

On Monday 24 August 2015 15:57:42 Zvi Effron wrote:
> The cameras on the Surface Pro 3 report interface protocol of 1.
> The generic USB video class doesn't work for them.
> This adds entries for the front and rear camera.

This doesn't need to be restricted to the Surface Pro 3 cameras as 
bInterfaceProtocol 1 is (or at least should be) used by all UVC 1.5 devices.

I've just posted "[PATCH] uvcvideo: Enable UVC 1.5 device detection" to the 
linux-media mailing list. Could you check whether it fixes your problem ?

> Signed-off-by: Zvi Effron 
> ---
>  drivers/media/usb/uvc/uvc_driver.c | 16 
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/media/usb/uvc/uvc_driver.c
> b/drivers/media/usb/uvc/uvc_driver.c index 4b5b3e8..d2fdbc1 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2142,6 +2142,22 @@ static struct usb_device_id uvc_ids[] = {
> .bInterfaceSubClass   = 1,
> .bInterfaceProtocol   = 0,
> .driver_info  = UVC_QUIRK_PROBE_MINMAX },
> + /* Microsoft Surface Pro 3 LifeCam Front */
> + { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> +   .idVendor = 0x045e,
> +   .idProduct= 0x07be,
> +   .bInterfaceClass  = USB_CLASS_VIDEO,
> +   .bInterfaceSubClass   = 1,
> +   .bInterfaceProtocol   = 1 },
> + /* Microsoft Surface Pro 3 LifeCam Rear */
> + { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> +   .idVendor = 0x045e,
> +   .idProduct= 0x07bf,
> +   .bInterfaceClass  = USB_CLASS_VIDEO,
> +   .bInterfaceSubClass   = 1,
> +   .bInterfaceProtocol   = 1 },
>   /* Logitech Quickcam Fusion */
>   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
> 
>   | USB_DEVICE_ID_MATCH_INT_INFO,

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html