forked from IntelRealSense/librealsense
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
93ab3b8
commit 5221cc6
Showing
3 changed files
with
186 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
From 77a530efa9334bab58155c688245859f231be397 Mon Sep 17 00:00:00 2001 | ||
From: Arun-Prasad-V <[email protected]> | ||
Date: Mon, 5 Aug 2024 15:02:34 +0530 | ||
Subject: [PATCH] Realsense camera formats support for kernel 6.8 | ||
|
||
--- | ||
drivers/media/common/uvc.c | 20 ++++++++++++++++++++ | ||
drivers/media/v4l2-core/v4l2-ioctl.c | 3 +++ | ||
include/linux/usb/uvc.h | 15 +++++++++++++++ | ||
include/uapi/linux/videodev2.h | 3 +++ | ||
4 files changed, 41 insertions(+) | ||
|
||
diff --git a/drivers/media/common/uvc.c b/drivers/media/common/uvc.c | ||
index 9c0ba7a6c..a00b743cc 100644 | ||
--- a/drivers/media/common/uvc.c | ||
+++ b/drivers/media/common/uvc.c | ||
@@ -120,6 +120,10 @@ static const struct uvc_format_desc uvc_fmts[] = { | ||
.guid = UVC_GUID_FORMAT_Y12I, | ||
.fcc = V4L2_PIX_FMT_Y12I, | ||
}, | ||
+ { | ||
+ .guid = UVC_GUID_FORMAT_Y16I, | ||
+ .fcc = V4L2_PIX_FMT_Y16I, | ||
+ }, | ||
{ | ||
.guid = UVC_GUID_FORMAT_Z16, | ||
.fcc = V4L2_PIX_FMT_Z16, | ||
@@ -164,6 +168,22 @@ static const struct uvc_format_desc uvc_fmts[] = { | ||
.guid = UVC_GUID_FORMAT_HEVC, | ||
.fcc = V4L2_PIX_FMT_HEVC, | ||
}, | ||
+ { | ||
+ .guid = UVC_GUID_FORMAT_RAW8, | ||
+ .fcc = V4L2_PIX_FMT_GREY, | ||
+ }, | ||
+ { | ||
+ .guid = UVC_GUID_FORMAT_RW16, | ||
+ .fcc = V4L2_PIX_FMT_RW16, | ||
+ }, | ||
+ { | ||
+ .guid = UVC_GUID_FORMAT_D16, | ||
+ .fcc = V4L2_PIX_FMT_Z16, | ||
+ }, | ||
+ { | ||
+ .guid = UVC_GUID_FORMAT_W10, | ||
+ .fcc = V4L2_PIX_FMT_W10, | ||
+ }, | ||
}; | ||
|
||
const struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16]) | ||
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c | ||
index 33076af4d..a04fef879 100644 | ||
--- a/drivers/media/v4l2-core/v4l2-ioctl.c | ||
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c | ||
@@ -1314,6 +1314,9 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) | ||
case V4L2_PIX_FMT_IPU3_Y10: descr = "10-bit greyscale (IPU3 Packed)"; break; | ||
case V4L2_PIX_FMT_Y8I: descr = "Interleaved 8-bit Greyscale"; break; | ||
case V4L2_PIX_FMT_Y12I: descr = "Interleaved 12-bit Greyscale"; break; | ||
+ case V4L2_PIX_FMT_Y16I: descr = "Interleaved 16-bit Greyscale"; break; | ||
+ case V4L2_PIX_FMT_RW16: descr = "16-bit Raw data"; break; | ||
+ case V4L2_PIX_FMT_W10: descr = "10-bit packed 8888[2222]"; break; | ||
case V4L2_PIX_FMT_Z16: descr = "16-bit Depth"; break; | ||
case V4L2_PIX_FMT_INZI: descr = "Planar 10:16 Greyscale Depth"; break; | ||
case V4L2_PIX_FMT_CNF4: descr = "4-bit Depth Confidence (Packed)"; break; | ||
diff --git a/include/linux/usb/uvc.h b/include/linux/usb/uvc.h | ||
index 88d96095b..11456a014 100644 | ||
--- a/include/linux/usb/uvc.h | ||
+++ b/include/linux/usb/uvc.h | ||
@@ -118,6 +118,21 @@ | ||
#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_Y16I \ | ||
+ { 'Y', '1', '6', 'I', 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', 0x66, 0x1a, 0x42, 0xa2, \ | ||
+ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} | ||
+#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_W10 \ | ||
+ { 'W', '1', '0', ' ', 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} | ||
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h | ||
index 68e7ac178..c156981ab 100644 | ||
--- a/include/uapi/linux/videodev2.h | ||
+++ b/include/uapi/linux/videodev2.h | ||
@@ -793,6 +793,9 @@ struct v4l2_pix_format { | ||
#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_Y16I v4l2_fourcc('Y', '1', '6', 'I') /* Greyscale 16-bit L/R interleaved */ | ||
+#define V4L2_PIX_FMT_RW16 v4l2_fourcc('R', 'W', '1', '6') /* Raw data 16-bit */ | ||
+#define V4L2_PIX_FMT_W10 v4l2_fourcc('W', '1', '0', ' ') /* Packed raw data 10-bit */ | ||
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ | ||
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ | ||
#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */ | ||
-- | ||
2.43.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
From 25a687e89e8f365caccef1b9bbb11406e53cc1be Mon Sep 17 00:00:00 2001 | ||
From: Arun-Prasad-V <[email protected]> | ||
Date: Mon, 5 Aug 2024 15:02:57 +0530 | ||
Subject: [PATCH] Realsense camera metadata support for kernel 6.8 | ||
|
||
--- | ||
drivers/media/usb/uvc/uvc_driver.c | 36 ++++++++++++++++++++++++++++++ | ||
1 file changed, 36 insertions(+) | ||
|
||
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c | ||
index bbd90123a..1cd98a8cc 100644 | ||
--- a/drivers/media/usb/uvc/uvc_driver.c | ||
+++ b/drivers/media/usb/uvc/uvc_driver.c | ||
@@ -3102,6 +3102,15 @@ static const struct usb_device_id uvc_ids[] = { | ||
.bInterfaceSubClass = 1, | ||
.bInterfaceProtocol = 0, | ||
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, | ||
+ /* Intel D555 Depth Camera */ | ||
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | ||
+ | USB_DEVICE_ID_MATCH_INT_INFO, | ||
+ .idVendor = 0x8086, | ||
+ .idProduct = 0x0b56, | ||
+ .bInterfaceClass = USB_CLASS_VIDEO, | ||
+ .bInterfaceSubClass = 1, | ||
+ .bInterfaceProtocol = UVC_PC_PROTOCOL_15, | ||
+ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, | ||
/* Intel D405 Depth Camera */ | ||
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE | ||
| USB_DEVICE_ID_MATCH_INT_INFO, | ||
@@ -3120,6 +3129,33 @@ static const struct usb_device_id uvc_ids[] = { | ||
.bInterfaceSubClass = 1, | ||
.bInterfaceProtocol = 0, | ||
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, | ||
+ /* Intel D585 Depth Camera */ | ||
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | ||
+ | USB_DEVICE_ID_MATCH_INT_INFO, | ||
+ .idVendor = 0x8086, | ||
+ .idProduct = 0x0b6a, | ||
+ .bInterfaceClass = USB_CLASS_VIDEO, | ||
+ .bInterfaceSubClass = 1, | ||
+ .bInterfaceProtocol = UVC_PC_PROTOCOL_15, | ||
+ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, | ||
+ /* Intel 585 Camera */ | ||
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | ||
+ | USB_DEVICE_ID_MATCH_INT_INFO, | ||
+ .idVendor = 0x8086, | ||
+ .idProduct = 0x0b6b, | ||
+ .bInterfaceClass = USB_CLASS_VIDEO, | ||
+ .bInterfaceSubClass = 1, | ||
+ .bInterfaceProtocol = UVC_PC_PROTOCOL_15, | ||
+ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, | ||
+ /* Intel D421 Depth Module */ | ||
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | ||
+ | USB_DEVICE_ID_MATCH_INT_INFO, | ||
+ .idVendor = 0x8086, | ||
+ .idProduct = 0x1155, | ||
+ .bInterfaceClass = USB_CLASS_VIDEO, | ||
+ .bInterfaceSubClass = 1, | ||
+ .bInterfaceProtocol = 0, | ||
+ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, | ||
/* Generic USB Video Class */ | ||
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_UNDEFINED) }, | ||
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) }, | ||
-- | ||
2.43.0 | ||
|