diff options
| author | Pawan Kumar <pavaku@codeaurora.org> | 2013-10-07 11:36:07 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:22:22 -0700 |
| commit | 591619fc4e63ee075ce83b62ab732c5b541c6bfc (patch) | |
| tree | 97eaf3e1686da75a5064da304f87c4b501d60871 | |
| parent | e390cf64f8d6881b77f34144e9c5e0104cd7f051 (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.c | 4 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_overlay.c | 2 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_rotator.h | 12 |
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: |
