summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Chan <bkchan@codeaurora.org>2016-06-22 14:54:08 -0400
committerKyle Yan <kyan@codeaurora.org>2016-07-11 18:56:32 -0700
commit9f7a8de9ee315043fb3cc3aefff8cc307e441f40 (patch)
treefb06db3ac32ae8383423a91465a5b28736e34b53
parent8d87a45f664232a503a9302c8405dd1b0b5935af (diff)
msm: sde: Updating linear format definition for v4l2 rotator
Providing additonal linear format support for v4l2 rotator in mdss 3.x hardware. CRs-Fixed: 1032294 Change-Id: Ie8a19341831d4ffaea36898a80c71ab25f5daf3c Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c56
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c30
-rw-r--r--include/uapi/media/msm_sde_rotator.h14
3 files changed, 100 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
index a7ac094f6c1e..140d33582c87 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
@@ -90,10 +90,42 @@ static const struct v4l2_fmtdesc fmtdesc[] = {
.pixelformat = SDE_PIX_FMT_BGRX_8888,
},
{
+ .description = "SDE/XBGR_8888",
+ .pixelformat = SDE_PIX_FMT_XBGR_8888,
+ },
+ {
.description = "RGBA_5551",
.pixelformat = SDE_PIX_FMT_RGBA_5551,
},
{
+ .description = "ARGB_1555",
+ .pixelformat = SDE_PIX_FMT_ARGB_1555,
+ },
+ {
+ .description = "ABGR_1555",
+ .pixelformat = SDE_PIX_FMT_ABGR_1555,
+ },
+ {
+ .description = "BGRA_5551",
+ .pixelformat = SDE_PIX_FMT_BGRA_5551,
+ },
+ {
+ .description = "BGRX_5551",
+ .pixelformat = SDE_PIX_FMT_BGRX_5551,
+ },
+ {
+ .description = "RGBX_5551",
+ .pixelformat = SDE_PIX_FMT_RGBX_5551,
+ },
+ {
+ .description = "XBGR_1555",
+ .pixelformat = SDE_PIX_FMT_XBGR_1555,
+ },
+ {
+ .description = "XRGB_1555",
+ .pixelformat = SDE_PIX_FMT_XRGB_1555,
+ },
+ {
.description = "ARGB_4444",
.pixelformat = SDE_PIX_FMT_ARGB_4444,
},
@@ -102,6 +134,30 @@ static const struct v4l2_fmtdesc fmtdesc[] = {
.pixelformat = SDE_PIX_FMT_RGBA_4444,
},
{
+ .description = "BGRA_4444",
+ .pixelformat = SDE_PIX_FMT_BGRA_4444,
+ },
+ {
+ .description = "ABGR_4444",
+ .pixelformat = SDE_PIX_FMT_ABGR_4444,
+ },
+ {
+ .description = "RGBX_4444",
+ .pixelformat = SDE_PIX_FMT_RGBX_4444,
+ },
+ {
+ .description = "XRGB_4444",
+ .pixelformat = SDE_PIX_FMT_XRGB_4444,
+ },
+ {
+ .description = "BGRX_4444",
+ .pixelformat = SDE_PIX_FMT_BGRX_4444,
+ },
+ {
+ .description = "XBGR_4444",
+ .pixelformat = SDE_PIX_FMT_XBGR_4444,
+ },
+ {
.description = "RGB_888",
.pixelformat = SDE_PIX_FMT_RGB_888,
},
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c
index 8e5793362875..5318c9da1277 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c
@@ -318,6 +318,10 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = {
SDE_PIX_FMT_BGRX_8888, SDE_MDP_FMT_LINEAR,
VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
+ FMT_RGB_8888(
+ SDE_PIX_FMT_XBGR_8888, SDE_MDP_FMT_LINEAR,
+ VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
+ 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V1, SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_H2V1, SDE_MDP_PIXEL_NORMAL,
@@ -401,10 +405,36 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = {
},
FMT_RGB_1555(SDE_PIX_FMT_RGBA_5551, 1, VALID_ROT_WB_ALL,
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
+ FMT_RGB_1555(SDE_PIX_FMT_ARGB_1555, 1, VALID_ROT_WB_ALL,
+ C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
+ FMT_RGB_1555(SDE_PIX_FMT_ABGR_1555, 1, VALID_ROT_WB_ALL,
+ C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
+ FMT_RGB_1555(SDE_PIX_FMT_BGRA_5551, 1, VALID_ROT_WB_ALL,
+ C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
+ FMT_RGB_1555(SDE_PIX_FMT_BGRX_5551, 0, VALID_ROT_WB_ALL,
+ C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
+ FMT_RGB_1555(SDE_PIX_FMT_RGBX_5551, 0, VALID_ROT_WB_ALL,
+ C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
+ FMT_RGB_1555(SDE_PIX_FMT_XBGR_1555, 0, VALID_ROT_WB_ALL,
+ C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
+ FMT_RGB_1555(SDE_PIX_FMT_XRGB_1555, 0, VALID_ROT_WB_ALL,
+ C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
FMT_RGB_4444(SDE_PIX_FMT_RGBA_4444, 1, VALID_ROT_WB_ALL,
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
FMT_RGB_4444(SDE_PIX_FMT_ARGB_4444, 1, VALID_ROT_WB_ALL,
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
+ FMT_RGB_4444(SDE_PIX_FMT_BGRA_4444, 1, VALID_ROT_WB_ALL,
+ C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
+ FMT_RGB_4444(SDE_PIX_FMT_ABGR_4444, 1, VALID_ROT_WB_ALL,
+ C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
+ FMT_RGB_4444(SDE_PIX_FMT_RGBX_4444, 0, VALID_ROT_WB_ALL,
+ C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
+ FMT_RGB_4444(SDE_PIX_FMT_XRGB_4444, 0, VALID_ROT_WB_ALL,
+ C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
+ FMT_RGB_4444(SDE_PIX_FMT_BGRX_4444, 0, VALID_ROT_WB_ALL,
+ C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
+ FMT_RGB_4444(SDE_PIX_FMT_XBGR_4444, 0, VALID_ROT_WB_ALL,
+ C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102, SDE_MDP_FMT_LINEAR,
VALID_ROT_R3_WB_FORMAT | VALID_MDP_WB_INTF_FORMAT,
1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
diff --git a/include/uapi/media/msm_sde_rotator.h b/include/uapi/media/msm_sde_rotator.h
index d771959f2e03..461a171a42c1 100644
--- a/include/uapi/media/msm_sde_rotator.h
+++ b/include/uapi/media/msm_sde_rotator.h
@@ -13,9 +13,23 @@
#define SDE_PIX_FMT_BGRA_8888 V4L2_PIX_FMT_ARGB32
#define SDE_PIX_FMT_RGBX_8888 v4l2_fourcc('X', 'B', '2', '4')
#define SDE_PIX_FMT_BGRX_8888 V4L2_PIX_FMT_XRGB32
+#define SDE_PIX_FMT_XBGR_8888 v4l2_fourcc('R', 'X', '2', '4')
#define SDE_PIX_FMT_RGBA_5551 v4l2_fourcc('R', 'A', '1', '5')
+#define SDE_PIX_FMT_ARGB_1555 V4L2_PIX_FMT_ARGB555
+#define SDE_PIX_FMT_ABGR_1555 v4l2_fourcc('A', 'B', '1', '5')
+#define SDE_PIX_FMT_BGRA_5551 v4l2_fourcc('B', 'A', '1', '5')
+#define SDE_PIX_FMT_BGRX_5551 v4l2_fourcc('B', 'X', '1', '5')
+#define SDE_PIX_FMT_RGBX_5551 v4l2_fourcc('R', 'X', '1', '5')
+#define SDE_PIX_FMT_XBGR_1555 v4l2_fourcc('X', 'B', '1', '5')
+#define SDE_PIX_FMT_XRGB_1555 V4L2_PIX_FMT_XRGB555
#define SDE_PIX_FMT_ARGB_4444 V4L2_PIX_FMT_ARGB444
#define SDE_PIX_FMT_RGBA_4444 v4l2_fourcc('R', 'A', '1', '2')
+#define SDE_PIX_FMT_BGRA_4444 v4l2_fourcc('B', 'A', '1', '2')
+#define SDE_PIX_FMT_ABGR_4444 v4l2_fourcc('A', 'B', '1', '2')
+#define SDE_PIX_FMT_RGBX_4444 v4l2_fourcc('R', 'X', '1', '2')
+#define SDE_PIX_FMT_XRGB_4444 V4L2_PIX_FMT_XRGB444
+#define SDE_PIX_FMT_BGRX_4444 v4l2_fourcc('B', 'X', '1', '2')
+#define SDE_PIX_FMT_XBGR_4444 v4l2_fourcc('X', 'B', '1', '2')
#define SDE_PIX_FMT_RGB_888 V4L2_PIX_FMT_RGB24
#define SDE_PIX_FMT_BGR_888 V4L2_PIX_FMT_BGR24
#define SDE_PIX_FMT_RGB_565 V4L2_PIX_FMT_RGB565