diff mbox series

[v3,2/9] media: uapi: Add MIPI packed 14bit luma

Message ID 20240305160855.147483-3-jacopo.mondi@ideasonboard.com (mailing list archive)
State New, archived
Headers show
Series media: raspberrypi: Add support for PiSP Back End | expand

Commit Message

Jacopo Mondi March 5, 2024, 4:08 p.m. UTC
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

Naushir Patuck March 6, 2024, 10 a.m. UTC | #1
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
>
diff mbox series

Patch

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 */