summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawan Kumar <pavaku@codeaurora.org>2013-10-07 11:36:07 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:22:22 -0700
commit591619fc4e63ee075ce83b62ab732c5b541c6bfc (patch)
tree97eaf3e1686da75a5064da304f87c4b501d60871
parente390cf64f8d6881b77f34144e9c5e0104cd7f051 (diff)
msm: mdss: Set rotator output format as pseudo planar 420
Set rotator output format for planar 420 as pseudo planar 420. Configure BWC output format as MDP_Y_CRCB_H2V2 when input color format is MDP_Y_CBCR_H2V2. CRs-Fixed: 549326 Change-Id: I9c39ab3d8a867909853ffd6ecc2120ab160914d1 Signed-off-by: Pawan Kumar <pavaku@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c4
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_overlay.c2
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_rotator.h12
3 files changed, 13 insertions, 5 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c
index 371569494de0..ec7f70280904 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c
@@ -290,9 +290,9 @@ static int mdss_mdp_writeback_prepare_rot(struct mdss_mdp_ctl *ctl, void *arg)
if (ctx->bwc_mode || (ctx->rot90 &&
(mdata->mdp_rev < MDSS_MDP_HW_REV_102)))
- 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/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
index 1265a31d5554..742e6b598c2b 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
@@ -417,7 +417,7 @@ static int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd,
if ((req->flags & MDP_BWC_EN) || ((req->flags & MDP_SOURCE_ROTATED_90)
&& (mdata->mdp_rev < MDSS_MDP_HW_REV_102)))
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/fbdev/msm/mdss_mdp_rotator.h b/drivers/video/fbdev/msm/mdss_mdp_rotator.h
index 43e77cc4a341..ab7cce1ee1c8 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_rotator.h
+++ b/drivers/video/fbdev/msm/mdss_mdp_rotator.h
@@ -51,13 +51,21 @@ struct mdss_mdp_rotator_session {
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: