diff options
| author | Siddhartha Agrawal <agrawals@codeaurora.org> | 2013-05-28 20:51:54 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:18:31 -0700 |
| commit | af929cdef96115b6d83e5da53dde63a38265f5da (patch) | |
| tree | a971906d31797ba40eb19822bf85208f34620446 | |
| parent | 08e57f35a13a17e561caf6c3bc10b5bb37b21367 (diff) | |
msm: mdss: Balance mdp and dsi clocks for command mode panels
MDP clocks are not balanced for command mode panels with continuous
splash screen turned on. Need to turn both mdp and dsi clk off when
splash screen is done.
CRs-fixed: 486155
Change-Id: I95d2efbc6c5d9a7b074f7e6c0abf66d062a090de
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp.h | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_ctl.c | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c | 18 |
3 files changed, 20 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp.h b/drivers/video/fbdev/msm/mdss_mdp.h index 52224e238c1c..7cae18ca812d 100644 --- a/drivers/video/fbdev/msm/mdss_mdp.h +++ b/drivers/video/fbdev/msm/mdss_mdp.h @@ -430,6 +430,7 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd); struct mdss_mdp_ctl *mdss_mdp_ctl_init(struct mdss_panel_data *pdata, struct msm_fb_data_type *mfd); int mdss_mdp_video_reconfigure_splash_done(struct mdss_mdp_ctl *ctl); +int mdss_mdp_cmd_reconfigure_splash_done(struct mdss_mdp_ctl *ctl); int mdss_mdp_video_copy_splash_screen(struct mdss_panel_data *pdata); void mdss_mdp_ctl_splash_start(struct mdss_panel_data *pdata); int mdss_mdp_ctl_splash_finish(struct mdss_mdp_ctl *ctl); diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c index 9eaff61cc9f0..86f632c6a92c 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c +++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c @@ -517,6 +517,7 @@ int mdss_mdp_ctl_splash_finish(struct mdss_mdp_ctl *ctl) case MIPI_VIDEO_PANEL: return mdss_mdp_video_reconfigure_splash_done(ctl); case MIPI_CMD_PANEL: + return mdss_mdp_cmd_reconfigure_splash_done(ctl); default: return 0; } diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c index 89e21d29b1b4..d0c18182458b 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c @@ -357,6 +357,24 @@ static int mdss_mdp_cmd_remove_vsync_handler(struct mdss_mdp_ctl *ctl, return 0; } +int mdss_mdp_cmd_reconfigure_splash_done(struct mdss_mdp_ctl *ctl) +{ + struct mdss_panel_data *pdata; + int ret = 0; + + pdata = ctl->panel_data; + + pdata->panel_info.cont_splash_enabled = 0; + + ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_CONT_SPLASH_FINISH, + NULL); + + mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)0); + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false); + + return ret; +} + static int mdss_mdp_cmd_wait4pingpong(struct mdss_mdp_ctl *ctl, void *arg) { struct mdss_mdp_cmd_ctx *ctx; |
