summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Salido-Moreno <adrianm@codeaurora.org>2013-04-05 09:05:55 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:15:58 -0700
commit10f2b80b0eb4559c62ef6fcc81c48e8c3f44fe3c (patch)
tree93157ad1a8d9a2869c7fffb29c8118ff24a888c2
parent3f3bdc61b91d669d9fcd670a8af169ef05da37f8 (diff)
msm: mdss: reset control path configuration during panel off
Because of the dynamic way that control paths can be configured, a different control path can be used for different panel interfaces. In order to avoid same panel and/or same mixer being configured for same control path, ensure the control path configuration is completely cleared once it's no longer active. Change-Id: I090cfd0b325100363de3d3fcc49c364b93619093 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_ctl.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c
index 1ced2009b868..fa53656f5246 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c
@@ -986,6 +986,19 @@ int mdss_mdp_ctl_stop(struct mdss_mdp_ctl *ctl)
if (ret) {
pr_warn("error powering off intf ctl=%d\n", ctl->num);
} else {
+ mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_TOP, 0);
+ if (sctl)
+ mdss_mdp_ctl_write(sctl, MDSS_MDP_REG_CTL_TOP, 0);
+
+ if (ctl->mixer_left) {
+ mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_LAYER(
+ ctl->mixer_left->num), 0);
+ }
+ if (ctl->mixer_right) {
+ mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_LAYER(
+ ctl->mixer_right->num), 0);
+ }
+
ctl->power_on = false;
ctl->play_cnt = 0;
ctl->clk_rate = 0;