]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
include/linux: Add new packed v4l2 pixel format
authorBhanu Murthy V <bmurthyv@nvidia.com>
Mon, 30 Jan 2017 22:25:08 +0000 (14:25 -0800)
committermobile promotions <svcmobile_promotions@nvidia.com>
Mon, 13 Feb 2017 03:15:09 +0000 (19:15 -0800)
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>
drivers/media/v4l2-core/v4l2-ioctl.c
include/uapi/linux/media-bus-format.h
include/uapi/linux/videodev2.h

index a4f8258a97e787d5ee745b5df8a59380674e50e0..724cb9046360ff28d211a56983644952257c4fb5 100644 (file)
@@ -1207,6 +1207,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
        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;
index a1199e8255b8ef113cba00a29c60a16422afc364..e8d7994b9fbfd3fa52171da40c6c758e6882c466 100644 (file)
@@ -98,7 +98,7 @@
 #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
index cecb1ea6d755e094d8979b8b3aa7d88150c5a311..38b030035eddffae2cd720da62f7c1033c0aa062 100644 (file)
@@ -556,6 +556,11 @@ struct v4l2_pix_format {
 #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')