diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2018-07-25 17:04:09 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-07-25 17:04:09 -0700 |
| commit | b2cbbffddd6874386c86838efe48d545653e57a0 (patch) | |
| tree | 7e0ab14110d6bdabcf412cfc70410372f51dd5f0 /drivers/video/fbdev | |
| parent | 3fbf4c7216af0f002752d4f802a2fb1488eee129 (diff) | |
| parent | 5dda52d4de3d6552d8c3eec39ee70de0f83dbc12 (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.c | 8 |
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); |
