usb/uvc: add new format support 97/189697/1
authorInki Dae <inki.dae@samsung.com>
Tue, 24 Jul 2018 04:47:14 +0000 (13:47 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Thu, 20 Sep 2018 02:49:49 +0000 (11:49 +0900)
Back-ported by Inki from : https://github.com/IntelRealSense/librealsense/tree/master/scripts
Signed-off-by: Inki Dae <inki.dae@samsung.com>
[sw0312.kim: fix conflict with previously applied depth camera support patch]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I9bb8cd18da77804171c0e2c753792b10c4c78618

drivers/media/usb/uvc/Makefile
drivers/media/usb/uvc/uvc_driver.c
drivers/media/usb/uvc/uvcvideo.h
include/uapi/linux/videodev2.h

index c26d12f..d86cf22 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_MODULE_SIG=n
 uvcvideo-objs  := uvc_driver.o uvc_queue.o uvc_v4l2.o uvc_video.o uvc_ctrl.o \
                  uvc_status.o uvc_isight.o uvc_debugfs.o
 ifeq ($(CONFIG_MEDIA_CONTROLLER),y)
index 9e3eaab..c9c8ebe 100644 (file)
@@ -148,6 +148,36 @@ static struct uvc_format_desc uvc_fmts[] = {
                .fcc            = V4L2_PIX_FMT_H264,
        },
        {
+               .name           = "Greyscale 8 L/R (Y8I)",
+               .guid           = UVC_GUID_FORMAT_Y8I,
+               .fcc            = V4L2_PIX_FMT_Y8I,
+       },
+       {
+               .name           = "Greyscale 12 L/R (Y12I)",
+               .guid           = UVC_GUID_FORMAT_Y12I,
+               .fcc            = V4L2_PIX_FMT_Y12I,
+       },
+       {
+               .name           = "Depth data 16-bit (Z16)",
+               .guid           = UVC_GUID_FORMAT_Z16,
+               .fcc            = V4L2_PIX_FMT_Z16,
+       },
+       {
+               .name           = "Bayer 10-bit (SRGGB10P)",
+               .guid           = UVC_GUID_FORMAT_RW10,
+               .fcc            = V4L2_PIX_FMT_SRGGB10P,
+       },
+       {
+               .name           = "Raw data 8-bit (RAW8)",
+               .guid           = UVC_GUID_FORMAT_RAW8,
+               .fcc            = V4L2_PIX_FMT_RAW8,
+       },
+       {
+               .name           = "Raw data 16-bit (RW16)",
+               .guid           = UVC_GUID_FORMAT_RW16,
+               .fcc            = V4L2_PIX_FMT_RW16,
+       },
+       {
                .name           = "Depth 16-bit (INVZ)",
                .guid           = UVC_GUID_FORMAT_INVZ,
                .fcc            = V4L2_PIX_FMT_INVZ,
@@ -177,6 +207,21 @@ static struct uvc_format_desc uvc_fmts[] = {
                .guid           = UVC_GUID_FORMAT_RELI,
                .fcc            = V4L2_PIX_FMT_RELI,
        },
+       {
+               .name           = "Luminosity data 8-bit (L8)",
+               .guid           = UVC_GUID_FORMAT_L8,
+               .fcc            = V4L2_PIX_FMT_Y8,
+       },
+       {
+               .name           = "Luminosity data 16-bit (L16)",
+               .guid           = UVC_GUID_FORMAT_L16,
+               .fcc            = V4L2_PIX_FMT_Y16,
+       },
+       {
+               .name           = "Depth data 16-bit (D16)",
+               .guid           = UVC_GUID_FORMAT_D16,
+               .fcc            = V4L2_PIX_FMT_Z16,
+       },
 };
 
 /* ------------------------------------------------------------------------
index f61641a..333280f 100644 (file)
 #define UVC_GUID_FORMAT_H264 \
        { 'H',  '2',  '6',  '4', 0x00, 0x00, 0x10, 0x00, \
         0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y8I \
+       { 'Y',  '8',  'I',  ' ', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y12I \
+       { 'Y',  '1',  '2',  'I', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Z16 \
+       { 'Z',  '1',  '6',  ' ', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_RW10 \
+       { 'R',  'W',  '1',  '0', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_RAW8 \
+       { 'R',  'A',  'W',  '8', 0x66, 0x1a, 0x42, 0xa2, \
+        0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a}
+#define UVC_GUID_FORMAT_RW16 \
+       { 'R',  'W',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
 #define UVC_GUID_FORMAT_INVZ \
        { 'I',  'N',  'V',  'Z', 0x90, 0x2d, 0x58, 0x4a, \
         0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b}
 #define UVC_GUID_FORMAT_RELI \
        { 'R',  'E',  'L',  'I', 0x14, 0x13, 0x43, 0xf9, \
         0xa7, 0x5a, 0xee, 0x6b, 0xbf, 0x01, 0x2e, 0x23}
+#define UVC_GUID_FORMAT_L8 \
+       { '2', 0x00,  0x00,  0x00, 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_L16 \
+       { 'Q', 0x00,  0x00,  0x00, 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_D16 \
+       { 'P', 0x00,  0x00,  0x00, 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
 
 /* ------------------------------------------------------------------------
  * Driver specific constants.
index 1df0e6e..ae3cfc1 100644 (file)
@@ -529,6 +529,15 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_JPGL      v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */
 #define V4L2_PIX_FMT_SE401      v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */
 #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */
+#define V4L2_PIX_FMT_Y8I      v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */
+#define V4L2_PIX_FMT_Y12I     v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
+#define V4L2_PIX_FMT_Z16      v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
+#define V4L2_PIX_FMT_Y8       v4l2_fourcc('Y', '8', ' ', ' ') /* Greyscale 8-bit */
+#define V4L2_PIX_FMT_Y10      v4l2_fourcc('Y', '1', '0', ' ') /* Greyscale 10-bit */
+#define V4L2_PIX_FMT_Y12      v4l2_fourcc('Y', '1', '2', ' ') /* Greyscale 12-bit */
+#define V4L2_PIX_FMT_Y16      v4l2_fourcc('Y', '1', '6', ' ') /* Greyscale 16-bit */
+#define V4L2_PIX_FMT_RAW8     v4l2_fourcc('R', 'A', 'W', '8') /* Raw data 8-bit */
+#define V4L2_PIX_FMT_RW16     v4l2_fourcc('R', 'W', '1', '6') /* Raw data 16-bit */
 #define V4L2_PIX_FMT_INVZ v4l2_fourcc('I',  'N',  'V',  'Z') /* 16 Depth */
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I',  'N',  'Z',  'I') /* 24 Depth/IR 16:8 */
 #define V4L2_PIX_FMT_INVR v4l2_fourcc('I',  'N',  'V',  'R') /* 16 Depth */