diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_pp.c | 8 |
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); |
