msm: mdss: rotator: deinterlace layer prior to rotation
Make use of the MDP_ROTATION_DEINTERLACE flag. By using the deinterlaced flag we are able to properly read in the source layer for rotation. Change-Id: Ia4198f228188975cfc6b57acecedb153c7234aa4 Signed-off-by: Terence Hampson <thampson@codeaurora.org>
This commit is contained in:
parent
cc7c1fe8ec
commit
26ef443158
1 changed files with 21 additions and 1 deletions
|
@ -1360,6 +1360,20 @@ static int mdss_rotator_validate_img_roi(struct mdp_rotation_item *item)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int mdss_rotator_validate_fmt_and_item_flags(
|
||||||
|
struct mdp_rotation_config *config, struct mdp_rotation_item *item)
|
||||||
|
{
|
||||||
|
struct mdss_mdp_format_params *fmt;
|
||||||
|
|
||||||
|
fmt = mdss_mdp_get_format_params(item->input.format);
|
||||||
|
if ((item->flags & MDP_ROTATION_DEINTERLACE) &&
|
||||||
|
mdss_mdp_is_ubwc_format(fmt)) {
|
||||||
|
pr_err("cannot perform mdp deinterlace on tiled formats\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int mdss_rotator_validate_entry(struct mdss_rot_mgr *mgr,
|
static int mdss_rotator_validate_entry(struct mdss_rot_mgr *mgr,
|
||||||
struct mdss_rot_file_private *private,
|
struct mdss_rot_file_private *private,
|
||||||
struct mdss_rot_entry *entry)
|
struct mdss_rot_entry *entry)
|
||||||
|
@ -1400,6 +1414,10 @@ static int mdss_rotator_validate_entry(struct mdss_rot_mgr *mgr,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = mdss_rotator_validate_fmt_and_item_flags(&perf->config, item);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
ret = mdss_rotator_config_dnsc_factor(mgr, entry);
|
ret = mdss_rotator_config_dnsc_factor(mgr, entry);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pr_err("fail to configure downscale factor\n");
|
pr_err("fail to configure downscale factor\n");
|
||||||
|
@ -1625,7 +1643,7 @@ static void mdss_rotator_translate_rect(struct mdss_rect *dst,
|
||||||
|
|
||||||
static u32 mdss_rotator_translate_flags(u32 input)
|
static u32 mdss_rotator_translate_flags(u32 input)
|
||||||
{
|
{
|
||||||
u32 output;
|
u32 output = 0;
|
||||||
|
|
||||||
if (input & MDP_ROTATION_NOP)
|
if (input & MDP_ROTATION_NOP)
|
||||||
output |= MDP_ROT_NOP;
|
output |= MDP_ROT_NOP;
|
||||||
|
@ -1635,6 +1653,8 @@ static u32 mdss_rotator_translate_flags(u32 input)
|
||||||
output |= MDP_FLIP_UD;
|
output |= MDP_FLIP_UD;
|
||||||
if (input & MDP_ROTATION_90)
|
if (input & MDP_ROTATION_90)
|
||||||
output |= MDP_ROT_90;
|
output |= MDP_ROT_90;
|
||||||
|
if (input & MDP_ROTATION_DEINTERLACE)
|
||||||
|
output |= MDP_DEINTERLACE;
|
||||||
if (input & MDP_ROTATION_SECURE)
|
if (input & MDP_ROTATION_SECURE)
|
||||||
output |= MDP_SECURE_OVERLAY_SESSION;
|
output |= MDP_SECURE_OVERLAY_SESSION;
|
||||||
if (input & MDP_ROTATION_BWC_EN)
|
if (input & MDP_ROTATION_BWC_EN)
|
||||||
|
|
Loading…
Add table
Reference in a new issue