diff mbox

[media] uvcvideo: add support for Oculus Rift Sensor

Message ID 20161107201547.7537-1-philipp.zabel@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Philipp Zabel Nov. 7, 2016, 8:15 p.m. UTC
The Rift CV1 Sensor has bInterfaceClass set to vendor specific, so we
need an entry in uvc_ids to probe it. Just as the Rift DK2 IR tracker,
it misreports the pixel format as YUYV instead of Y8.

The sensor is configured with a low exposure time and high black level
by default, so that only bright IR sources can be seen.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
---
 drivers/media/usb/uvc/uvc_driver.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Laurent Pinchart Nov. 11, 2016, 2:06 a.m. UTC | #1
Hi Philipp,

Thank you for the patch.

On Monday 07 Nov 2016 21:15:47 Philipp Zabel wrote:
> The Rift CV1 Sensor has bInterfaceClass set to vendor specific, so we
> need an entry in uvc_ids to probe it. Just as the Rift DK2 IR tracker,
> it misreports the pixel format as YUYV instead of Y8.
> 
> The sensor is configured with a low exposure time and high black level
> by default, so that only bright IR sources can be seen.
> 
> Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

and applied to my tree, after fixing the conflict (see below).

> ---
>  drivers/media/usb/uvc/uvc_driver.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/media/usb/uvc/uvc_driver.c
> b/drivers/media/usb/uvc/uvc_driver.c index 0eaa9a9..b64bfe4 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2583,6 +2583,15 @@ static struct usb_device_id uvc_ids[] = {
>  	  .bInterfaceSubClass	= 1,
>  	  .bInterfaceProtocol	= 0,
>  	  .driver_info		= UVC_QUIRK_FORCE_Y8 },
> +	/* Oculus VR Rift Sensor */
> +	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
> +				| USB_DEVICE_ID_MATCH_INT_INFO,
> +	  .idVendor		= 0x2833,
> +	  .idProduct		= 0x0211,
> +	  .bInterfaceClass	= USB_CLASS_VENDOR_SPEC,
> +	  .bInterfaceSubClass	= 1,
> +	  .bInterfaceProtocol	= 0,
> +	  .driver_info		= UVC_QUIRK_FORCE_Y8 },
>  	/* Leap Motion Controller LM-010 */

That's not in mainline, where does it come from ?

>  	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
> 
>  				| USB_DEVICE_ID_MATCH_INT_INFO,
Philipp Zabel Nov. 11, 2016, 10:07 p.m. UTC | #2
Hi Laurent,

On Fri, Nov 11, 2016 at 3:06 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hi Philipp,
>
> Thank you for the patch.
[...]
> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> and applied to my tree, after fixing the conflict (see below).

Thank you, sorry for the inconvenience.
I got excited to share this patch with Thibaut and forgot to properly rebase it.

>>       /* Leap Motion Controller LM-010 */
>
> That's not in mainline, where does it come from ?

That is also from my local branch of quirky USB cameras.

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

Patch

diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 0eaa9a9..b64bfe4 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2583,6 +2583,15 @@  static struct usb_device_id uvc_ids[] = {
 	  .bInterfaceSubClass	= 1,
 	  .bInterfaceProtocol	= 0,
 	  .driver_info		= UVC_QUIRK_FORCE_Y8 },
+	/* Oculus VR Rift Sensor */
+	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
+				| USB_DEVICE_ID_MATCH_INT_INFO,
+	  .idVendor		= 0x2833,
+	  .idProduct		= 0x0211,
+	  .bInterfaceClass	= USB_CLASS_VENDOR_SPEC,
+	  .bInterfaceSubClass	= 1,
+	  .bInterfaceProtocol	= 0,
+	  .driver_info		= UVC_QUIRK_FORCE_Y8 },
 	/* Leap Motion Controller LM-010 */
 	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
 				| USB_DEVICE_ID_MATCH_INT_INFO,