Add pacekd 10-bit formats to v4l2 pixel formats list.
X(Bayer)10 packs 3 pixels to 4 bytes with two MSB bits
set to zero. All four corresponding phases are added.
Snapshot of packing different bayer formats below:
BGGR10 - X2B10G10B10 X2G10B10G10.. X2G10R10G10 X2R10G10R10..
RGGB10 - X2R10G10R10 X2G10R10G10.. X2G10B10G10 X2B10G10B10..
GRGB10 - X2G10R10G10 X2R10G10R10.. X2G10B10G10 X2B10G10B10..
GBGR10 - X2G10B10G10 X2B10G10B10.. X2G10R10G10 X2R10G10R10..
In general if the pixels are L0L1L2L3L4L5.., the packed
32-bit integers would be X2L2L1L0 X2L5L4L3..
Add corresponding MBUS formats to represent packed 10bit.
Jira: CHWI-800
Change-Id: I5f1f9d98699b5e2b40c909184c6505593ad96380
Reviewed-on: http://git-master/r/
1296189
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
case V4L2_PIX_FMT_SGBRG10P: descr = "10-bit Bayer GBGB/RGRG Packed"; break;
case V4L2_PIX_FMT_SGRBG10P: descr = "10-bit Bayer GRGR/BGBG Packed"; break;
case V4L2_PIX_FMT_SRGGB10P: descr = "10-bit Bayer RGRG/GBGB Packed"; break;
+ case V4L2_PIX_FMT_XBGGR10P: descr = "10-bit Bayer BGGR(10-10-10-2)"; break;
+ case V4L2_PIX_FMT_XGBRG10P: descr = "10-bit Bayer GBRG(10-10-10-2)"; break;
+ case V4L2_PIX_FMT_XGRBG10P: descr = "10-bit Bayer GRBG(10-10-10-2)"; break;
+ case V4L2_PIX_FMT_XRGGB10P: descr = "10-bit Bayer RGGB(10-10-10-2)"; break;
case V4L2_PIX_FMT_SBGGR10ALAW8: descr = "8-bit Bayer BGBG/GRGR (A-law)"; break;
case V4L2_PIX_FMT_SGBRG10ALAW8: descr = "8-bit Bayer GBGB/RGRG (A-law)"; break;
case V4L2_PIX_FMT_SGRBG10ALAW8: descr = "8-bit Bayer GRGR/BGBG (A-law)"; break;
#define MEDIA_BUS_FMT_YUV10_1X30 0x2016
#define MEDIA_BUS_FMT_AYUV8_1X32 0x2017
-/* Bayer - next is 0x3019 */
+/* Bayer - next is 0x3023 */
#define MEDIA_BUS_FMT_SBGGR8_1X8 0x3001
#define MEDIA_BUS_FMT_SGBRG8_1X8 0x3013
#define MEDIA_BUS_FMT_SGRBG8_1X8 0x3002
#define MEDIA_BUS_FMT_SGBRG12_1X12 0x3010
#define MEDIA_BUS_FMT_SGRBG12_1X12 0x3011
#define MEDIA_BUS_FMT_SRGGB12_1X12 0x3012
+#define MEDIA_BUS_FMT_XBGGR10P_3X10 0x3019
+#define MEDIA_BUS_FMT_XGBRG10P_3X10 0x3020
+#define MEDIA_BUS_FMT_XGRBG10P_3X10 0x3021
+#define MEDIA_BUS_FMT_XRGGB10P_3X10 0x3022
/* JPEG compressed formats - next is 0x4002 */
#define MEDIA_BUS_FMT_JPEG_1X8 0x4001
#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */
#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */
#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */
+ /*10bit raw bayer packed, 4 bytes for every 3 pixels */
+#define V4L2_PIX_FMT_XBGGR10P v4l2_fourcc('X', 'B', 'G', 'P') /* 32 BGGR Packed 10-10-10-2 */
+#define V4L2_PIX_FMT_XGBRG10P v4l2_fourcc('X', 'G', 'B', 'P') /* 32 GBRG Packed 10-10-10-2 */
+#define V4L2_PIX_FMT_XGRBG10P v4l2_fourcc('X', 'G', 'R', 'P') /* 32 GRBG Packed 10-10-10-2 */
+#define V4L2_PIX_FMT_XRGGB10P v4l2_fourcc('X', 'R', 'G', 'P') /* 32 RGGB Packed 10-10-10-2 */
/* 10bit raw bayer packed, 5 bytes for every 4 pixels */
#define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A')
#define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A')