diff options
| author | Oliver Collyer <ovcollyer@mac.com> | 2025-12-26 09:57:18 +0300 |
|---|---|---|
| committer | Hans Verkuil <hverkuil+cisco@kernel.org> | 2026-03-25 11:40:28 +0300 |
| commit | 2c8fe1f14240d75f2002e16b2b69c5c2d27ed41c (patch) | |
| tree | 4b0bb2d850bb7580e039d81d5ac5c3488c816770 /drivers | |
| parent | 45507b100929cac15d4466a3feb29b8a910ffbb3 (diff) | |
| download | linux-2c8fe1f14240d75f2002e16b2b69c5c2d27ed41c.tar.xz | |
media: uvcvideo: Add support for P010 pixel format
Add support for the P010 (10-bit Y/UV 4:2:0) pixel format to the
uvcvideo driver. This format is exposed by USB capture devices such as
the Magewell USB Capture HDMI 4K Pro when capturing HDR10 content.
P010 stores 10-bit Y and interleaved UV samples in 16-bit little-endian
words, with data in the upper 10 bits and zeros in the lower 6 bits.
This requires 2 bytes per sample, so bytesperline is wWidth * 2.
V4L2_PIX_FMT_P010 was added to the V4L2 core in commit 5374d8fb75f3
("media: Add P010 video format").
Based on the community DKMS patch from awawa-dev/P010_for_V4L2.
Link: https://github.com/awawa-dev/P010_for_V4L2
Signed-off-by: Oliver Collyer <ovcollyer@mac.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patch.msgid.link/20251226065718.95504-1-ovcollyer@mac.com
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/media/common/uvc.c | 4 | ||||
| -rw-r--r-- | drivers/media/usb/uvc/uvc_v4l2.c | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/media/common/uvc.c b/drivers/media/common/uvc.c index 1ad4604474ac..0107cedd031e 100644 --- a/drivers/media/common/uvc.c +++ b/drivers/media/common/uvc.c @@ -41,6 +41,10 @@ static const struct uvc_format_desc uvc_fmts[] = { .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 d5860661c115..cda1697204ea 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -230,6 +230,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; } |
