From ceb29b08b480a2a6a5e9dccf396a284378268037 Mon Sep 17 00:00:00 2001 From: aangerma From: Evgeni Raikhel From: icarpis Date: Thu, 30 Aug 2018 16:07:01 +0300 Subject: [PATCH] [PATCH] RS400 ,SR300, RS500 pixel formats Signed-off-by: Evgeni Raikhel From 97de562e970f505b0af8a44619e9eeed66859cf8 Mon Sep 17 00:00:00 2001 From: Evgeni Raikhel Date: Fri, 12 Feb 2021 18:17:22 +0200 Subject: [PATCH] JetPack 4.4.1 (32.4.4) --- drivers/media/usb/uvc/Makefile | 1 + drivers/media/usb/uvc/uvc_driver.c | 102 +++++++++++++++++++++++++++ drivers/media/usb/uvc/uvcvideo.h | 54 ++++++++++++++ drivers/media/v4l2-core/v4l2-ioctl.c | 1 + include/uapi/linux/videodev2.h | 2 + 5 files changed, 160 insertions(+) diff --git a/drivers/media/usb/uvc/Makefile b/drivers/media/usb/uvc/Makefile index c26d12fdb8f4..d86cf22155d1 100644 --- a/drivers/media/usb/uvc/Makefile +++ b/drivers/media/usb/uvc/Makefile @@ -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) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index ef5c2679d1d1..01a20d8a8164 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -254,6 +254,108 @@ static struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_PAIR, .fcc = V4L2_PIX_FMT_PAIR, }, + { + .name = "Raw data 8-bit (RAW8)", + .guid = UVC_GUID_FORMAT_RAW8, + .fcc = V4L2_PIX_FMT_GREY, + }, + { + .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_Z16, + }, + { + .name = "Depth:IR 16:8 24-bit (INZI)", + .guid = UVC_GUID_FORMAT_INZI, + .fcc = V4L2_PIX_FMT_INZI, + }, + { + .name = "Depth 16-bit (INVR)", + .guid = UVC_GUID_FORMAT_INVR, + .fcc = V4L2_PIX_FMT_INVR, + }, + { + .name = "Depth:IR 16:8 24-bit (INRI)", + .guid = UVC_GUID_FORMAT_INRI, + .fcc = V4L2_PIX_FMT_INRI, + }, + { + .name = "Infrared 8-bit (INVI)", + .guid = UVC_GUID_FORMAT_INVI, + .fcc = V4L2_PIX_FMT_GREY, + }, + { + .name = "FlickerIR 8-bit (RELI)", + .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_GREY, + }, + { + .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, + }, + { + .name = "16-bit Bayer BGBG/GRGR", + .guid = UVC_GUID_FORMAT_BAYER16, + .fcc = V4L2_PIX_FMT_SBGGR16, + }, + { + .name = "Packed raw data 10-bit", + .guid = UVC_GUID_FORMAT_W10, + .fcc = V4L2_PIX_FMT_W10, + }, + { + .name = "Confidence data (C )", + .guid = UVC_GUID_FORMAT_CONFIDENCE_MAP, + .fcc = V4L2_PIX_FMT_CONFIDENCE_MAP, + }, + /* FishEye 8-bit monochrome */ + { + .name = "Raw data 8-bit (RAW8)", + .guid = UVC_GUID_FORMAT_RAW8, + .fcc = V4L2_PIX_FMT_GREY, + }, + /* Legacy/Development formats for backward-compatibility*/ + { + .name = "Raw data 16-bit (RW16)", + .guid = UVC_GUID_FORMAT_RW16, + .fcc = V4L2_PIX_FMT_RW16, + }, + { + .name = "Frame Grabber (FG )", + .guid = UVC_GUID_FORMAT_FG, + .fcc = V4L2_PIX_FMT_FG, + }, + { + .name = "SR300 Depth/Confidence (INZC)", + .guid = UVC_GUID_FORMAT_INZC, + .fcc = V4L2_PIX_FMT_INZC, + }, + { + .name = "Relative IR (PAIR)", + .guid = UVC_GUID_FORMAT_PAIR, + .fcc = V4L2_PIX_FMT_PAIR, + }, + { + .name = "Z16 Huffman Compression", + .guid = UVC_GUID_FORMAT_Z16H, + .fcc = V4L2_PIX_FMT_Z16H, + }, }; /* ------------------------------------------------------------------------ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 2ab3a330256e..16aac6f7c724 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h @@ -122,6 +122,60 @@ #define UVC_GUID_FORMAT_M420 \ { 'M', '4', '2', '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_INZI \ + { 'I', 'N', 'Z', 'I', 0x66, 0x1a, 0x42, 0xa2, \ + 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} +#define UVC_GUID_FORMAT_INVR \ + { 'I', 'N', 'V', 'R', 0x90, 0x2d, 0x58, 0x4a, \ + 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b} +#define UVC_GUID_FORMAT_INRI \ + { 'I', 'N', 'R', 'I', 0x90, 0x2d, 0x58, 0x4a, \ + 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b} +#define UVC_GUID_FORMAT_INVI \ + { 'I', 'N', 'V', 'I', 0xdb, 0x57, 0x49, 0x5e, \ + 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f} +#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} +#define UVC_GUID_FORMAT_BAYER16 \ + { 'R', 'W', '1', '6', 0x66, 0x1a, 0x42, 0xa2, \ + 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} +#define UVC_GUID_FORMAT_W10 \ + { 'W', '1', '0', ' ', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} +#define UVC_GUID_FORMAT_CONFIDENCE_MAP \ + { 'C', ' ', ' ', ' ', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} +#define UVC_GUID_FORMAT_FG \ + { 'F', 'G', ' ', ' ', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} +#define UVC_GUID_FORMAT_INZC \ + { 'I', 'N', 'Z', 'C', 0x02, 0xb6, 0x0f, 0x48, \ + 0x97, 0x8c, 0xe4, 0xe8, 0x8a, 0xe8, 0x9b, 0x89} +#define UVC_GUID_FORMAT_PAIR \ + { 'P', 'A', 'I', 'R', 0x36, 0x85, 0x41, 0x48, \ + 0xb6, 0xbf, 0x8f, 0xc6, 0xff, 0xb0, 0x83, 0xa8} +#define UVC_GUID_FORMAT_Z16H \ + { 'Z', '1', '6', 'H', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} #define UVC_GUID_FORMAT_H264 \ { 'H', '2', '6', '4', 0x00, 0x00, 0x10, 0x00, \ diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c index 1d76a92493aa..7b018fe4e73a 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1279,6 +1279,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) descr = "Planar Depth/Confidence (INZC)"; break; case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; + case V4L2_PIX_FMT_Z16H: descr = "Z16 Huffman Compression"; break; default: /* Compressed formats */ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index ae04e9e06600..907891bfb23d 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -663,6 +663,8 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Relative IR */ #define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') +#define V4L2_PIX_FMT_Z16H v4l2_fourcc('Z', '1', '6', 'H') /* Depth Z16 custom Huffman Code compression*/ + /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ -- 2.17.1