From 87d040ed68321c09a16fad27d2b4314190a2d2b0 Mon Sep 17 00:00:00 2001 From: awawa-dev <69086569+awawa-dev@users.noreply.github.com> Date: Sat, 2 Nov 2024 16:02:20 +0100 Subject: [PATCH] Support for P010 (HDR) video format for UVC devices --- drivers/media/common/uvc.c | 4 ++++ drivers/media/usb/uvc/uvc_v4l2.c | 3 +++ include/linux/usb/uvc.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/drivers/media/common/uvc.c b/drivers/media/common/uvc.c index 9c0ba7a6c185b1..c6a0c6a80bcf65 100644 --- a/drivers/media/common/uvc.c +++ b/drivers/media/common/uvc.c @@ -40,6 +40,10 @@ static const struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_M420, .fcc = V4L2_PIX_FMT_M420, }, + { + .guid = UVC_GUID_FORMAT_P010, + .fcc = V4L2_PIX_FMT_P010, + }, { .guid = UVC_GUID_FORMAT_UYVY, .fcc = V4L2_PIX_FMT_UYVY, diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c index f4988f03640aec..8998bc2079e0c7 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -203,6 +203,9 @@ static u32 uvc_v4l2_get_bytesperline(const struct uvc_format *format, case V4L2_PIX_FMT_M420: return frame->wWidth; + case V4L2_PIX_FMT_P010: + return frame->wWidth * 2; + default: return format->bpp * frame->wWidth / 8; } diff --git a/include/linux/usb/uvc.h b/include/linux/usb/uvc.h index 88d96095bcb163..431ae4ce9c8779 100644 --- a/include/linux/usb/uvc.h +++ b/include/linux/usb/uvc.h @@ -105,6 +105,9 @@ #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_P010 \ + { 'P', '0', '1', '0', 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, \