Re: [PATCH 01/10] media: uapi: Add IPU3 packed Y10 format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Nicolas

On 16/02/2022 13:28, Nicolas Dufresne wrote:
> Le mardi 15 février 2022 à 23:07 +0000, Daniel Scally a écrit :
>> Some platforms with an Intel IPU3 have an IR sensor producing 10 bit
>> greyscale format data that is transmitted over a CSI-2 bus to a CIO2
>> device - this packs the data into 32 bytes per 25 pixels. Detail that
>> format.
>>
>> Signed-off-by: Daniel Scally <djrscally@xxxxxxxxx>
>> ---
>>  .../userspace-api/media/v4l/pixfmt-yuv-luma.rst    | 14 +++++++++++++-
>>  drivers/media/v4l2-core/v4l2-ioctl.c               |  1 +
>>  include/uapi/linux/videodev2.h                     |  1 +
>>  3 files changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst
>> index 8ebd58c3588f..5465ce3bb533 100644
>> --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst
>> +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst
>> @@ -48,6 +48,17 @@ are often referred to as greyscale formats.
>>        - ...
>>        - ...
>>  
>> +    * .. _V4L2-PIX-FMT-IPU3-Y10:
>> +
>> +      - ``V4L2_PIX_FMT_IPU3_Y10``
>> +      - 'ip3y'
>> +
>> +      - Y'\ :sub:`0`\ [7:0]
>> +      - Y'\ :sub:`1`\ [5:0] Y'\ :sub:`0`\ [9:8]
>> +      - 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:
>>  
>>        - ``V4L2_PIX_FMT_Y10``
>> @@ -133,4 +144,5 @@ are often referred to as greyscale formats.
>>  
>>      For the Y16 and Y16_BE formats, the actual sampling precision may be lower
>>      than 16 bits. For example, 10 bits per pixel uses values in the range 0 to
>> -    1023.
>> +    1023. For the ip3y format 25 pixels are packed into 32 bytes, which leaves
> nit: ip3y-> IPU3_Y10, to be consistent with previous paragraph not using fourcc.


Ack

>
> I don't have very strong preference, but this could have been sorted into vendor
> formats, as its specific to a HW design, unlike MIPI which is a HW standard.


Yeah I vacillated between putting it in here and with the other IPU3
formats [1], but because those are in the "bayer formats" section it
sorta stuck out so I eventually settled on sticking it with
greyscale...but maybe there needs to be another section for "Hardware
Specific Formats" or something instead of either option.


[1]
https://linuxtv.org/downloads/v4l-dvb-apis/userspace-api/v4l/pixfmt-srggb10-ipu3.html

>
> In any case, with the nit fixed, you can add my:
>
> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx>


Thank you


Dan

>
> cheers,
> Nicolas
>
>> +    the 6 most significant bits of the last byte padded with 0.
>> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
>> index 642cb90f457c..89691bbb372d 100644
>> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
>> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
>> @@ -1265,6 +1265,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
>>  	case V4L2_PIX_FMT_Y16_BE:	descr = "16-bit Greyscale BE"; break;
>>  	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_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;
>>  	case V4L2_PIX_FMT_Z16:		descr = "16-bit Depth"; break;
>> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
>> index df8b9c486ba1..b378c7e37eac 100644
>> --- a/include/uapi/linux/videodev2.h
>> +++ b/include/uapi/linux/videodev2.h
>> @@ -569,6 +569,7 @@ struct v4l2_pix_format {
>>  /* Grey bit-packed formats */
>>  #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_IPU3_Y10		v4l2_fourcc('i', 'p', '3', 'y') /* IPU3 packed 10-bit greyscale */
>>  
>>  /* Palette formats */
>>  #define V4L2_PIX_FMT_PAL8    v4l2_fourcc('P', 'A', 'L', '8') /*  8  8-bit palette */



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux