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. Add an entry to the uAPI header defining that format.
Unified · Split
| @@ -48,6 +48,17 @@ are often referred to as greyscale formats. · 47 unmodified lines | ||
| 48 | 48 | - ... |
| 49 | 49 | - ... |
| 50 | 50 | |
| 51 | + * .. _V4L2-PIX-FMT-IPU3-Y10: | |
| 52 | + | |
| 53 | + - ``V4L2_PIX_FMT_IPU3_Y10`` | |
| 54 | + - 'ip3y' | |
| 55 | + | |
| 56 | + - Y'\ :sub:`0`\ [7:0] | |
| 57 | + - Y'\ :sub:`1`\ [5:0] Y'\ :sub:`0`\ [9:8] | |
| 58 | + - Y'\ :sub:`2`\ [3:0] Y'\ :sub:`1`\ [9:6] | |
| 59 | + - Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [9:4] | |
| 60 | + - Y'\ :sub:`3`\ [9:2] | |
| 61 | + | |
| 51 | 62 | * .. _V4L2-PIX-FMT-Y10: |
| 52 | 63 | |
| 53 | 64 | - ``V4L2_PIX_FMT_Y10`` |
| @@ -133,4 +144,5 @@ are often referred to as greyscale formats. · 79 unmodified lines | ||
| 133 | 144 | |
| 134 | 145 | For the Y16 and Y16_BE formats, the actual sampling precision may be lower |
| 135 | 146 | than 16 bits. For example, 10 bits per pixel uses values in the range 0 to |
| 136 | − 1023. | |
| 147 | + 1023. For the IPU3_Y10 format 25 pixels are packed into 32 bytes, which | |
| 148 | + leaves the 6 most significant bits of the last byte padded with 0. | |
| @@ -1269,6 +1269,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) · 1268 unmodified lines | ||
| 1269 | 1269 | case V4L2_PIX_FMT_Y16_BE: descr = "16-bit Greyscale BE"; break; |
| 1270 | 1270 | case V4L2_PIX_FMT_Y10BPACK: descr = "10-bit Greyscale (Packed)"; break; |
| 1271 | 1271 | case V4L2_PIX_FMT_Y10P: descr = "10-bit Greyscale (MIPI Packed)"; break; |
| 1272 | + case V4L2_PIX_FMT_IPU3_Y10: descr = "10-bit greyscale (IPU3 Packed)"; break; | |
| 1272 | 1273 | case V4L2_PIX_FMT_Y8I: descr = "Interleaved 8-bit Greyscale"; break; |
| 1273 | 1274 | case V4L2_PIX_FMT_Y12I: descr = "Interleaved 12-bit Greyscale"; break; |
| 1274 | 1275 | case V4L2_PIX_FMT_Z16: descr = "16-bit Depth"; break; |
| @@ -569,6 +569,7 @@ struct v4l2_pix_format { · 568 unmodified lines | ||
| 569 | 569 | /* Grey bit-packed formats */ |
| 570 | 570 | #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ |
| 571 | 571 | #define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */ |
| 572 | +#define V4L2_PIX_FMT_IPU3_Y10 v4l2_fourcc('i', 'p', '3', 'y') /* IPU3 packed 10-bit greyscale */ | |
| 572 | 573 | |
| 573 | 574 | /* Palette formats */ |
| 574 | 575 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
| @@ -749,7 +750,7 @@ struct v4l2_pix_format { · 174 unmodified lines | ||
| 749 | 750 | #define V4L2_PIX_FMT_QC08C v4l2_fourcc('Q', '0', '8', 'C') /* Qualcomm 8-bit compressed */ |
| 750 | 751 | #define V4L2_PIX_FMT_QC10C v4l2_fourcc('Q', '1', '0', 'C') /* Qualcomm 10-bit compressed */ |
| 751 | 752 | |
| 752 | −/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ | |
| 753 | +/* 10bit raw packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ | |
| 753 | 754 | #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ |
| 754 | 755 | #define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 packed 10-bit GBRG bayer */ |
| 755 | 756 | #define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */ |