summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenet Clark <benetc@codeaurora.org>2014-03-17 13:14:22 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:28:08 -0700
commit476a2e4892bf9242f5b41d6495babef89befaddd (patch)
tree82b63f8d56f91c1af0370aa7a8bf296d4915f0fa
parent36e1ed5c26104734eabcab9fcce40ae40975c384 (diff)
msm: mdss: Prevent AD on WFD configuration
Assertive display is not allowed on HDMI and WFD configurations. However, since WFD uses the writeback path, and AD uses the writeback path for earlier hardware, then we must check which hardware configuration is being used when checking writeback panel configuration to prevent or allow AD. Change-Id: I85f7380d0345cad7785ed41e22df559bc5c1618e Signed-off-by: Benet Clark <benetc@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c
index 4bf49b6a620d..c457a3616fed 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c
@@ -1707,6 +1707,7 @@ int mdss_mdp_pp_setup_locked(struct mdss_mdp_ctl *ctl)
u32 disp_num;
int i;
bool valid_mixers = true;
+ bool valid_ad_panel = true;
if ((!ctl->mfd) || (!mdss_pp_res) || (!mdata))
return -EINVAL;
@@ -1727,8 +1728,13 @@ int mdss_mdp_pp_setup_locked(struct mdss_mdp_ctl *ctl)
if (mixer_id[i] >= mdata->nad_cfgs)
valid_mixers = false;
}
+ valid_ad_panel = (ctl->mfd->panel_info->type != DTV_PANEL) &&
+ (((mdata->mdp_rev < MDSS_MDP_HW_REV_103) &&
+ (ctl->mfd->panel_info->type == WRITEBACK_PANEL)) ||
+ (ctl->mfd->panel_info->type != WRITEBACK_PANEL));
+
if (valid_mixers && (mixer_cnt <= mdata->nmax_concurrent_ad_hw) &&
- (ctl->mfd->panel_info->type != DTV_PANEL)) {
+ valid_ad_panel) {
ret = mdss_mdp_ad_setup(ctl->mfd);
if (ret < 0)
pr_warn("ad_setup(disp%d) returns %d", disp_num, ret);