[2/3] include: linux: videodev2: Add NV12MT_COL128 8/10-bit pixel formats
diff mbox series

Message ID 20260626120041.627376-3-naush@raspberrypi.com
State Superseded
Headers show
Series
  • Add NV12MT_COL128 8/10-bit pixel formats
Related show

Commit Message

Naushir Patuck June 26, 2026, 11:54 a.m. UTC
Add the V4L2_PIX_FMT_NV12MT_COL128 and V4L2_PIX_FMT_NV12MT_10_COL128
4CCs. These formats are available from the PiSP Backend hardware.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
---
 include/linux/videodev2.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

Laurent Pinchart June 26, 2026, 12:07 p.m. UTC | #1
Hi Naush,

Thank you for the patch.

On Fri, Jun 26, 2026 at 12:54:02PM +0100, Naushir Patuck wrote:
> Add the V4L2_PIX_FMT_NV12MT_COL128 and V4L2_PIX_FMT_NV12MT_10_COL128
> 4CCs. These formats are available from the PiSP Backend hardware.

What's the status of upstreaming those formats ? I see them being added
by the HEVC decoder patch series, but I don't see support for them being
added to the PiSP backend driver.

> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> ---
>  include/linux/videodev2.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> index 8bccad84ff83..0c6c4c6831d9 100644
> --- a/include/linux/videodev2.h
> +++ b/include/linux/videodev2.h
> @@ -670,6 +670,9 @@ struct v4l2_pix_format {
>  #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
>  #define V4L2_PIX_FMT_NV12M_8L128      v4l2_fourcc('N', 'A', '1', '2') /* Y/CbCr 4:2:0 8x128 tiles */
>  #define V4L2_PIX_FMT_NV12M_10BE_8L128 v4l2_fourcc_be('N', 'T', '1', '2') /* Y/CbCr 4:2:0 10-bit 8x128 tiles */
> +#define V4L2_PIX_FMT_NV12MT_COL128 v4l2_fourcc('N', 'c', '1', '2') /* 12  Y/CbCr 4:2:0 128 pixel wide column */
> +#define V4L2_PIX_FMT_NV12MT_10_COL128 v4l2_fourcc('N', 'c', '3', '0')
> +			/* Y/CbCr 4:2:0 10bpc, 3x10 packed as 4 bytes in a 128 bytes / 96 pixel wide column */
>  
>  /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
>  #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */
Naushir Patuck June 26, 2026, 12:12 p.m. UTC | #2
Adding Dave S.

On Fri, 26 Jun 2026 at 13:07, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Naush,
>
> Thank you for the patch.
>
> On Fri, Jun 26, 2026 at 12:54:02PM +0100, Naushir Patuck wrote:
> > Add the V4L2_PIX_FMT_NV12MT_COL128 and V4L2_PIX_FMT_NV12MT_10_COL128
> > 4CCs. These formats are available from the PiSP Backend hardware.
>
> What's the status of upstreaming those formats ? I see them being added
> by the HEVC decoder patch series, but I don't see support for them being
> added to the PiSP backend driver.


Oh, good point. I thought Dave might have sent the patch for that as
well, but it's only downstream right now.  We will push the pisp
driver upstream as well.

Naush



>
>
> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> > ---
> >  include/linux/videodev2.h | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> > index 8bccad84ff83..0c6c4c6831d9 100644
> > --- a/include/linux/videodev2.h
> > +++ b/include/linux/videodev2.h
> > @@ -670,6 +670,9 @@ struct v4l2_pix_format {
> >  #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
> >  #define V4L2_PIX_FMT_NV12M_8L128      v4l2_fourcc('N', 'A', '1', '2') /* Y/CbCr 4:2:0 8x128 tiles */
> >  #define V4L2_PIX_FMT_NV12M_10BE_8L128 v4l2_fourcc_be('N', 'T', '1', '2') /* Y/CbCr 4:2:0 10-bit 8x128 tiles */
> > +#define V4L2_PIX_FMT_NV12MT_COL128 v4l2_fourcc('N', 'c', '1', '2') /* 12  Y/CbCr 4:2:0 128 pixel wide column */
> > +#define V4L2_PIX_FMT_NV12MT_10_COL128 v4l2_fourcc('N', 'c', '3', '0')
> > +                     /* Y/CbCr 4:2:0 10bpc, 3x10 packed as 4 bytes in a 128 bytes / 96 pixel wide column */
> >
> >  /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
> >  #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */
>
> --
> Regards,
>
> Laurent Pinchart
Dave Stevenson June 29, 2026, 5:07 p.m. UTC | #3
On Fri, 26 Jun 2026 at 13:12, Naushir Patuck <naush@raspberrypi.com> wrote:
>
> Adding Dave S.
>
> On Fri, 26 Jun 2026 at 13:07, Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
> >
> > Hi Naush,
> >
> > Thank you for the patch.
> >
> > On Fri, Jun 26, 2026 at 12:54:02PM +0100, Naushir Patuck wrote:
> > > Add the V4L2_PIX_FMT_NV12MT_COL128 and V4L2_PIX_FMT_NV12MT_10_COL128
> > > 4CCs. These formats are available from the PiSP Backend hardware.
> >
> > What's the status of upstreaming those formats ? I see them being added
> > by the HEVC decoder patch series, but I don't see support for them being
> > added to the PiSP backend driver.
>
>
> Oh, good point. I thought Dave might have sent the patch for that as
> well, but it's only downstream right now.  We will push the pisp
> driver upstream as well.

I'm chasing a number of different threads at the moment, and the next
version of the HEVC decoder is a good few weeks away.

Adding a patch to ISPBE to that series feels a little odd as it's
partly unrelated, but the ISPBE patch will have a hard dependency on
the HEVC decoder series that add the format.
I'll add it to the series with a comment that (a) you've requested it,
and (b) that it's there to avoid weird dependency quirks.

The other option would be to submit the format definition and ISPBE
patches as a new series that should be mergeable fairly rapidly, and
then the HEVC decoder gains that as a dependency.

  Dave

> Naush
>
>
>
> >
> >
> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> > > ---
> > >  include/linux/videodev2.h | 3 +++
> > >  1 file changed, 3 insertions(+)
> > >
> > > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> > > index 8bccad84ff83..0c6c4c6831d9 100644
> > > --- a/include/linux/videodev2.h
> > > +++ b/include/linux/videodev2.h
> > > @@ -670,6 +670,9 @@ struct v4l2_pix_format {
> > >  #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
> > >  #define V4L2_PIX_FMT_NV12M_8L128      v4l2_fourcc('N', 'A', '1', '2') /* Y/CbCr 4:2:0 8x128 tiles */
> > >  #define V4L2_PIX_FMT_NV12M_10BE_8L128 v4l2_fourcc_be('N', 'T', '1', '2') /* Y/CbCr 4:2:0 10-bit 8x128 tiles */
> > > +#define V4L2_PIX_FMT_NV12MT_COL128 v4l2_fourcc('N', 'c', '1', '2') /* 12  Y/CbCr 4:2:0 128 pixel wide column */
> > > +#define V4L2_PIX_FMT_NV12MT_10_COL128 v4l2_fourcc('N', 'c', '3', '0')
> > > +                     /* Y/CbCr 4:2:0 10bpc, 3x10 packed as 4 bytes in a 128 bytes / 96 pixel wide column */
> > >
> > >  /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
> > >  #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */
> >
> > --
> > Regards,
> >
> > Laurent Pinchart
Laurent Pinchart June 29, 2026, 5:49 p.m. UTC | #4
On Mon, Jun 29, 2026 at 06:07:42PM +0100, Dave Stevenson wrote:
> On Fri, 26 Jun 2026 at 13:12, Naushir Patuck wrote:
> > On Fri, 26 Jun 2026 at 13:07, Laurent Pinchart wrote:
> > > On Fri, Jun 26, 2026 at 12:54:02PM +0100, Naushir Patuck wrote:
> > > > Add the V4L2_PIX_FMT_NV12MT_COL128 and V4L2_PIX_FMT_NV12MT_10_COL128
> > > > 4CCs. These formats are available from the PiSP Backend hardware.
> > >
> > > What's the status of upstreaming those formats ? I see them being added
> > > by the HEVC decoder patch series, but I don't see support for them being
> > > added to the PiSP backend driver.
> >
> >
> > Oh, good point. I thought Dave might have sent the patch for that as
> > well, but it's only downstream right now.  We will push the pisp
> > driver upstream as well.
> 
> I'm chasing a number of different threads at the moment, and the next
> version of the HEVC decoder is a good few weeks away.
> 
> Adding a patch to ISPBE to that series feels a little odd as it's
> partly unrelated, but the ISPBE patch will have a hard dependency on
> the HEVC decoder series that add the format.
> I'll add it to the series with a comment that (a) you've requested it,
> and (b) that it's there to avoid weird dependency quirks.
> 
> The other option would be to submit the format definition and ISPBE
> patches as a new series that should be mergeable fairly rapidly, and
> then the HEVC decoder gains that as a dependency.

I think you can keep the format addition in the HEVC series, maybe with
a small change in the commit message to mention the format is using by
the ISPBE (right now the commit message mentiones the HEVC decoder
only). In the ISPBE series that adds support for the format, you can
simply mention the dependency in the cover letter. The first series that
will be ready for merging can then include the format.

> > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> > > > ---
> > > >  include/linux/videodev2.h | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > >
> > > > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> > > > index 8bccad84ff83..0c6c4c6831d9 100644
> > > > --- a/include/linux/videodev2.h
> > > > +++ b/include/linux/videodev2.h
> > > > @@ -670,6 +670,9 @@ struct v4l2_pix_format {
> > > >  #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
> > > >  #define V4L2_PIX_FMT_NV12M_8L128      v4l2_fourcc('N', 'A', '1', '2') /* Y/CbCr 4:2:0 8x128 tiles */
> > > >  #define V4L2_PIX_FMT_NV12M_10BE_8L128 v4l2_fourcc_be('N', 'T', '1', '2') /* Y/CbCr 4:2:0 10-bit 8x128 tiles */
> > > > +#define V4L2_PIX_FMT_NV12MT_COL128 v4l2_fourcc('N', 'c', '1', '2') /* 12  Y/CbCr 4:2:0 128 pixel wide column */
> > > > +#define V4L2_PIX_FMT_NV12MT_10_COL128 v4l2_fourcc('N', 'c', '3', '0')
> > > > +                     /* Y/CbCr 4:2:0 10bpc, 3x10 packed as 4 bytes in a 128 bytes / 96 pixel wide column */
> > > >
> > > >  /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
> > > >  #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */

Patch
diff mbox series

diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 8bccad84ff83..0c6c4c6831d9 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -670,6 +670,9 @@  struct v4l2_pix_format {
 #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
 #define V4L2_PIX_FMT_NV12M_8L128      v4l2_fourcc('N', 'A', '1', '2') /* Y/CbCr 4:2:0 8x128 tiles */
 #define V4L2_PIX_FMT_NV12M_10BE_8L128 v4l2_fourcc_be('N', 'T', '1', '2') /* Y/CbCr 4:2:0 10-bit 8x128 tiles */
+#define V4L2_PIX_FMT_NV12MT_COL128 v4l2_fourcc('N', 'c', '1', '2') /* 12  Y/CbCr 4:2:0 128 pixel wide column */
+#define V4L2_PIX_FMT_NV12MT_10_COL128 v4l2_fourcc('N', 'c', '3', '0')
+			/* Y/CbCr 4:2:0 10bpc, 3x10 packed as 4 bytes in a 128 bytes / 96 pixel wide column */
 
 /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
 #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */