Hi Dan On Tue, Mar 05, 2024 at 04:48:28PM +0000, Daniel Scally wrote: > The Mali-C55 ISP by ARM requires 20-bits per colour channel input on > the bus. Add a new media bus format code to represent it. > > Acked-by: Nayden Kanchev <nayden.kanchev@xxxxxxx> > Signed-off-by: Daniel Scally <dan.scally@xxxxxxxxxxxxxxxx> Reviewed-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx> Thanks j > --- > Changes in v3: > > - None > > Changes in v2: > > - none > > .../media/v4l/subdev-formats.rst | 168 ++++++++++++++++++ > include/uapi/linux/media-bus-format.h | 3 +- > 2 files changed, 170 insertions(+), 1 deletion(-) > > diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst > index eb3cd20b0cf2..269b61926855 100644 > --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst > +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst > @@ -2223,6 +2223,174 @@ The following table list existing packed 48bit wide RGB formats. > > \endgroup > > +The following table list existing packed 60bit wide RGB formats. > + > +.. tabularcolumns:: |p{4.0cm}|p{0.7cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}| > + > +.. _v4l2-mbus-pixelcode-rgb-60: > + > +.. raw:: latex > + > + \begingroup > + \tiny > + \setlength{\tabcolsep}{2pt} > + > +.. flat-table:: 60bit RGB formats > + :header-rows: 3 > + :stub-columns: 0 > + :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 > + > + * - Identifier > + - Code > + - > + - :cspan:`31` Data organization > + * - > + - > + - Bit > + - > + - > + - > + - > + - 59 > + - 58 > + - 57 > + - 56 > + - 55 > + - 54 > + - 53 > + - 52 > + - 51 > + - 50 > + - 49 > + - 48 > + - 47 > + - 46 > + - 45 > + - 44 > + - 43 > + - 42 > + - 41 > + - 40 > + - 39 > + - 38 > + - 37 > + - 36 > + - 35 > + - 34 > + - 33 > + - 32 > + * - > + - > + - > + - 31 > + - 30 > + - 29 > + - 28 > + - 27 > + - 26 > + - 25 > + - 24 > + - 23 > + - 22 > + - 21 > + - 20 > + - 19 > + - 18 > + - 17 > + - 16 > + - 15 > + - 14 > + - 13 > + - 12 > + - 11 > + - 10 > + - 9 > + - 8 > + - 7 > + - 6 > + - 5 > + - 4 > + - 3 > + - 2 > + - 1 > + - 0 > + * .. _MEDIA-BUS-FMT-RGB202020-1X60: > + > + - MEDIA_BUS_FMT_RGB202020_1X60 > + - 0x1026 > + - > + - > + - > + - > + - > + - r\ :sub:`19` > + - r\ :sub:`18` > + - r\ :sub:`17` > + - r\ :sub:`16` > + - r\ :sub:`15` > + - r\ :sub:`14` > + - r\ :sub:`13` > + - r\ :sub:`12` > + - r\ :sub:`11` > + - r\ :sub:`10` > + - r\ :sub:`8` > + - r\ :sub:`8` > + - r\ :sub:`7` > + - r\ :sub:`6` > + - r\ :sub:`5` > + - r\ :sub:`4` > + - r\ :sub:`3` > + - r\ :sub:`2` > + - r\ :sub:`1` > + - r\ :sub:`0` > + - g\ :sub:`19` > + - g\ :sub:`18` > + - g\ :sub:`17` > + - g\ :sub:`16` > + - g\ :sub:`15` > + - g\ :sub:`14` > + - g\ :sub:`13` > + - g\ :sub:`12` > + * - > + - > + - > + - g\ :sub:`11` > + - g\ :sub:`10` > + - g\ :sub:`9` > + - g\ :sub:`8` > + - g\ :sub:`7` > + - g\ :sub:`6` > + - g\ :sub:`5` > + - g\ :sub:`4` > + - g\ :sub:`3` > + - g\ :sub:`2` > + - g\ :sub:`1` > + - g\ :sub:`0` > + - b\ :sub:`19` > + - b\ :sub:`18` > + - b\ :sub:`17` > + - b\ :sub:`16` > + - b\ :sub:`15` > + - b\ :sub:`14` > + - b\ :sub:`13` > + - b\ :sub:`12` > + - b\ :sub:`11` > + - b\ :sub:`10` > + - b\ :sub:`9` > + - b\ :sub:`8` > + - b\ :sub:`7` > + - b\ :sub:`6` > + - b\ :sub:`5` > + - b\ :sub:`4` > + - b\ :sub:`3` > + - b\ :sub:`2` > + - b\ :sub:`1` > + - b\ :sub:`0` > + > +.. raw:: latex > + > + \endgroup > + > On LVDS buses, usually each sample is transferred serialized in seven > time slots per pixel clock, on three (18-bit) or four (24-bit) > differential data pairs at the same time. The remaining bits are used > diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h > index f05f747e444d..8633818cc33c 100644 > --- a/include/uapi/linux/media-bus-format.h > +++ b/include/uapi/linux/media-bus-format.h > @@ -34,7 +34,7 @@ > > #define MEDIA_BUS_FMT_FIXED 0x0001 > > -/* RGB - next is 0x1026 */ > +/* RGB - next is 0x1027 */ > #define MEDIA_BUS_FMT_RGB444_1X12 0x1016 > #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 > #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 > @@ -72,6 +72,7 @@ > #define MEDIA_BUS_FMT_RGB888_1X36_CPADLO 0x1021 > #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 > #define MEDIA_BUS_FMT_RGB161616_1X48 0x101a > +#define MEDIA_BUS_FMT_RGB202020_1X60 0x1026 > > /* YUV (including grey) - next is 0x202f */ > #define MEDIA_BUS_FMT_Y8_1X8 0x2001 > -- > 2.34.1 >