[v3,2/9] media: uapi: Add MIPI packed 14bit luma
Commit Message
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Add the Y14P format to describe monochrome 14 bit image format
packed according to the RAW14 format as defined by the MIPI
CSI-2 specification.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
.../media/v4l/pixfmt-yuv-luma.rst | 37 +++++++++++++++++++
drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
include/uapi/linux/videodev2.h | 1 +
3 files changed, 39 insertions(+)
Comments
Hi Jacopo,
On Tue, 5 Mar 2024 at 16:09, Jacopo Mondi <jacopo.mondi@ideasonboard.com> wrote:
>
> From: Dave Stevenson <dave.stevenson@raspberrypi.com>
>
> Add the Y14P format to describe monochrome 14 bit image format
> packed according to the RAW14 format as defined by the MIPI
> CSI-2 specification.
>
> Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
> ---
> .../media/v4l/pixfmt-yuv-luma.rst | 37 +++++++++++++++++++
> drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
> include/uapi/linux/videodev2.h | 1 +
> 3 files changed, 39 insertions(+)
>
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst
> index 585d736f36e5..3af6e3cb70c4 100644
> --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst
> +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst
> @@ -36,6 +36,8 @@ are often referred to as greyscale formats.
> - Byte 2
> - Byte 3
> - Byte 4
> + - Byte 5
> + - Byte 6
>
> * .. _V4L2-PIX-FMT-GREY:
>
> @@ -47,6 +49,8 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-IPU3-Y10:
>
> @@ -58,6 +62,8 @@ are often referred to as greyscale formats.
> - Y'\ :sub:`2`\ [3:0] Y'\ :sub:`1`\ [9:6]
> - Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [9:4]
> - Y'\ :sub:`3`\ [9:2]
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y10:
>
> @@ -69,6 +75,8 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y10BPACK:
>
> @@ -80,6 +88,8 @@ are often referred to as greyscale formats.
> - Y'\ :sub:`1`\ [3:0] Y'\ :sub:`2`\ [9:6]
> - Y'\ :sub:`2`\ [5:0] Y'\ :sub:`3`\ [9:8]
> - Y'\ :sub:`3`\ [7:0]
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y10P:
>
> @@ -91,6 +101,8 @@ are often referred to as greyscale formats.
> - Y'\ :sub:`2`\ [9:2]
> - Y'\ :sub:`3`\ [9:2]
> - Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [1:0] Y'\ :sub:`1`\ [1:0] Y'\ :sub:`0`\ [1:0]
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y12:
>
> @@ -102,6 +114,8 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y012:
>
> @@ -113,6 +127,8 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y12P:
>
> @@ -124,6 +140,8 @@ are often referred to as greyscale formats.
> - Y'\ :sub:`1`\ [3:0] Y'\ :sub:`0`\ [3:0]
> - ...
> - ...
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y14:
>
> @@ -135,6 +153,21 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
> +
> + * .. _V4L2-PIX-FMT-Y14P:
> +
> + - ``V4L2_PIX_FMT_Y14P``
> + - 'Y14P'
> +
> + - Y'\ :sub:`0`\ [13:6]
> + - Y'\ :sub:`1`\ [13:6]
> + - Y'\ :sub:`2`\ [13:6]
> + - Y'\ :sub:`3`\ [13:6]
> + - Y'\ :sub:`1`\ [1:0] Y'\ :sub:`0`\ [5:0]
> + - Y'\ :sub:`2`\ [3:0] Y'\ :sub:`1`\ [5:2]
> + - Y'\ :sub:`3`\ [5:0] Y'\ :sub:`2`\ [5:4]
>
> * .. _V4L2-PIX-FMT-Y16:
>
> @@ -146,6 +179,8 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
>
> * .. _V4L2-PIX-FMT-Y16-BE:
>
> @@ -157,6 +192,8 @@ are often referred to as greyscale formats.
> - ...
> - ...
> - ...
> + - ...
> + - ...
>
> .. raw:: latex
>
> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
> index 9cb09334161b..d0724240a446 100644
> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> @@ -1312,6 +1312,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
> case V4L2_PIX_FMT_Y10BPACK: descr = "10-bit Greyscale (Packed)"; break;
> case V4L2_PIX_FMT_Y10P: descr = "10-bit Greyscale (MIPI Packed)"; break;
> case V4L2_PIX_FMT_Y12P: descr = "12-bit Greyscale (MIPI Packed)"; break;
> + case V4L2_PIX_FMT_Y14P: descr = "14-bit Greyscale (MIPI Packed)"; break;
> 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;
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 11ebf9b22ccb..911f00ed28fd 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -599,6 +599,7 @@ struct v4l2_pix_format {
> #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
> #define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
> #define V4L2_PIX_FMT_Y12P v4l2_fourcc('Y', '1', '2', 'P') /* 12 Greyscale, MIPI RAW12 packed */
> +#define V4L2_PIX_FMT_Y14P v4l2_fourcc('Y', '1', '4', 'P') /* 14 Greyscale, MIPI RAW14 packed */
> #define V4L2_PIX_FMT_IPU3_Y10 v4l2_fourcc('i', 'p', '3', 'y') /* IPU3 packed 10-bit greyscale */
>
> /* Palette formats */
> --
> 2.43.2
>
@@ -36,6 +36,8 @@ are often referred to as greyscale formats.
- Byte 2
- Byte 3
- Byte 4
+ - Byte 5
+ - Byte 6
* .. _V4L2-PIX-FMT-GREY:
@@ -47,6 +49,8 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-IPU3-Y10:
@@ -58,6 +62,8 @@ are often referred to as greyscale formats.
- Y'\ :sub:`2`\ [3:0] Y'\ :sub:`1`\ [9:6]
- Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [9:4]
- Y'\ :sub:`3`\ [9:2]
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y10:
@@ -69,6 +75,8 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y10BPACK:
@@ -80,6 +88,8 @@ are often referred to as greyscale formats.
- Y'\ :sub:`1`\ [3:0] Y'\ :sub:`2`\ [9:6]
- Y'\ :sub:`2`\ [5:0] Y'\ :sub:`3`\ [9:8]
- Y'\ :sub:`3`\ [7:0]
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y10P:
@@ -91,6 +101,8 @@ are often referred to as greyscale formats.
- Y'\ :sub:`2`\ [9:2]
- Y'\ :sub:`3`\ [9:2]
- Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [1:0] Y'\ :sub:`1`\ [1:0] Y'\ :sub:`0`\ [1:0]
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y12:
@@ -102,6 +114,8 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y012:
@@ -113,6 +127,8 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y12P:
@@ -124,6 +140,8 @@ are often referred to as greyscale formats.
- Y'\ :sub:`1`\ [3:0] Y'\ :sub:`0`\ [3:0]
- ...
- ...
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y14:
@@ -135,6 +153,21 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
+
+ * .. _V4L2-PIX-FMT-Y14P:
+
+ - ``V4L2_PIX_FMT_Y14P``
+ - 'Y14P'
+
+ - Y'\ :sub:`0`\ [13:6]
+ - Y'\ :sub:`1`\ [13:6]
+ - Y'\ :sub:`2`\ [13:6]
+ - Y'\ :sub:`3`\ [13:6]
+ - Y'\ :sub:`1`\ [1:0] Y'\ :sub:`0`\ [5:0]
+ - Y'\ :sub:`2`\ [3:0] Y'\ :sub:`1`\ [5:2]
+ - Y'\ :sub:`3`\ [5:0] Y'\ :sub:`2`\ [5:4]
* .. _V4L2-PIX-FMT-Y16:
@@ -146,6 +179,8 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
* .. _V4L2-PIX-FMT-Y16-BE:
@@ -157,6 +192,8 @@ are often referred to as greyscale formats.
- ...
- ...
- ...
+ - ...
+ - ...
.. raw:: latex
@@ -1312,6 +1312,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
case V4L2_PIX_FMT_Y10BPACK: descr = "10-bit Greyscale (Packed)"; break;
case V4L2_PIX_FMT_Y10P: descr = "10-bit Greyscale (MIPI Packed)"; break;
case V4L2_PIX_FMT_Y12P: descr = "12-bit Greyscale (MIPI Packed)"; break;
+ case V4L2_PIX_FMT_Y14P: descr = "14-bit Greyscale (MIPI Packed)"; break;
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;
@@ -599,6 +599,7 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
#define V4L2_PIX_FMT_Y12P v4l2_fourcc('Y', '1', '2', 'P') /* 12 Greyscale, MIPI RAW12 packed */
+#define V4L2_PIX_FMT_Y14P v4l2_fourcc('Y', '1', '4', 'P') /* 14 Greyscale, MIPI RAW14 packed */
#define V4L2_PIX_FMT_IPU3_Y10 v4l2_fourcc('i', 'p', '3', 'y') /* IPU3 packed 10-bit greyscale */
/* Palette formats */