Merge "msm: mdss: Set rotator output format as pseudo planar 420"
diff --git a/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c b/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c
index 2b07428..7f872b4 100644
--- a/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c
+++ b/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c
@@ -283,9 +283,9 @@
ctx->rot90 = !!(rot->flags & MDP_ROT_90);
if (ctx->bwc_mode || ctx->rot90)
- format = mdss_mdp_get_rotator_dst_format(rot->format);
+ format = mdss_mdp_get_rotator_dst_format(rot->format, 1);
else
- format = rot->format;
+ format = mdss_mdp_get_rotator_dst_format(rot->format, 0);
if (ctx->rot90) {
ctx->opmode |= BIT(5); /* ROT 90 */
diff --git a/drivers/video/msm/mdss/mdss_mdp_overlay.c b/drivers/video/msm/mdss/mdss_mdp_overlay.c
index c2d9965..1584925 100644
--- a/drivers/video/msm/mdss/mdss_mdp_overlay.c
+++ b/drivers/video/msm/mdss/mdss_mdp_overlay.c
@@ -415,7 +415,7 @@
if (req->flags & (MDP_SOURCE_ROTATED_90 | MDP_BWC_EN))
req->src.format =
- mdss_mdp_get_rotator_dst_format(req->src.format);
+ mdss_mdp_get_rotator_dst_format(req->src.format, 1);
fmt = mdss_mdp_get_format_params(req->src.format);
if (!fmt) {
diff --git a/drivers/video/msm/mdss/mdss_mdp_rotator.h b/drivers/video/msm/mdss/mdss_mdp_rotator.h
index 43e77cc..ab7cce1 100644
--- a/drivers/video/msm/mdss/mdss_mdp_rotator.h
+++ b/drivers/video/msm/mdss/mdss_mdp_rotator.h
@@ -51,13 +51,21 @@
struct work_struct commit_work;
};
-static inline u32 mdss_mdp_get_rotator_dst_format(u32 in_format)
+static inline u32 mdss_mdp_get_rotator_dst_format(u32 in_format, u8 in_rot90)
{
switch (in_format) {
case MDP_RGB_565:
case MDP_BGR_565:
- return MDP_RGB_888;
+ if (in_rot90)
+ return MDP_RGB_888;
+ else
+ return in_format;
case MDP_Y_CBCR_H2V2_VENUS:
+ case MDP_Y_CBCR_H2V2:
+ if (in_rot90)
+ return MDP_Y_CRCB_H2V2;
+ else
+ return in_format;
case MDP_Y_CB_CR_H2V2:
case MDP_Y_CR_CB_GH2V2:
case MDP_Y_CR_CB_H2V2: