diff options
| author | Ping Li <quicpingli@codeaurora.org> | 2014-02-06 00:03:41 -0500 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:27:06 -0700 |
| commit | cb19edb05931fea760151895da4541e3f2024ed2 (patch) | |
| tree | ea6901c02e68d75cdc2afe0bbf59318b41bc87d9 | |
| parent | 272a45484830c09b6acc57399429c4a3d2613bc2 (diff) | |
msm:mdss: Fix the issue with AD resume
AD is not configured correctly on dual DSI devices during
suspend/resume. The AD configuration data from user space are
only copied to the master AD configuration structure, and the AD
configuration structure attached to the right mixer (slave AD structure)
is never filled. So in the resume function, we cannot use the AD
configuration data from the slave AD configuration. Use the one
from the master structure instead.
Change-Id: I04cf3c467c2614420e01f9177f564eec7ce7bb23
Signed-off-by: Ping Li <quicpingli@codeaurora.org>
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_pp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c index 53f98acc60f4..3089afeba306 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_pp.c +++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c @@ -1764,7 +1764,7 @@ exit: */ int mdss_mdp_pp_resume(struct mdss_mdp_ctl *ctl, u32 dspp_num) { - u32 flags = 0, disp_num, bl; + u32 flags = 0, disp_num, bl, ret = 0; struct pp_sts_type pp_sts; struct mdss_ad_info *ad; struct mdss_data_type *mdata = ctl->mdata; @@ -1779,7 +1779,9 @@ int mdss_mdp_pp_resume(struct mdss_mdp_ctl *ctl, u32 dspp_num) disp_num = ctl->mfd->index; if (dspp_num < mdata->nad_cfgs) { - ad = &mdata->ad_cfgs[dspp_num]; + ret = mdss_mdp_get_ad(ctl->mfd, &ad); + if (ret) + return ret; if (PP_AD_STATE_CFG & ad->state) pp_ad_cfg_write(&mdata->ad_off[dspp_num], ad); |
