summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-07-25 17:04:09 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-07-25 17:04:09 -0700
commitb2cbbffddd6874386c86838efe48d545653e57a0 (patch)
tree7e0ab14110d6bdabcf412cfc70410372f51dd5f0 /drivers/video/fbdev
parent3fbf4c7216af0f002752d4f802a2fb1488eee129 (diff)
parent5dda52d4de3d6552d8c3eec39ee70de0f83dbc12 (diff)
Merge "msm: mdss: cleanup used pipes during overlay off"
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_overlay.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
index 2f5b45638cdb..f3d125af4830 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
@@ -5815,6 +5815,7 @@ static int mdss_mdp_overlay_off(struct msm_fb_data_type *mfd)
int rc;
struct mdss_overlay_private *mdp5_data;
struct mdss_mdp_mixer *mixer;
+ struct mdss_mdp_pipe *pipe, *tmp;
int need_cleanup;
int retire_cnt;
bool destroy_ctl = false;
@@ -5870,6 +5871,13 @@ static int mdss_mdp_overlay_off(struct msm_fb_data_type *mfd)
mixer->cursor_enabled = 0;
mutex_lock(&mdp5_data->list_lock);
+ if (!list_empty(&mdp5_data->pipes_used)) {
+ list_for_each_entry_safe(
+ pipe, tmp, &mdp5_data->pipes_used, list) {
+ pipe->file = NULL;
+ list_move(&pipe->list, &mdp5_data->pipes_cleanup);
+ }
+ }
need_cleanup = !list_empty(&mdp5_data->pipes_cleanup);
mutex_unlock(&mdp5_data->list_lock);
mutex_unlock(&mdp5_data->ov_lock);