Loading drivers/video/msm/mdss/mdss_mdp_overlay.c +10 −0 Original line number Diff line number Diff line Loading @@ -4687,6 +4687,16 @@ static int mdss_mdp_overlay_off(struct msm_fb_data_type *mfd) msleep(vsync_time); __vsync_retire_signal(mfd, mdp5_data->retire_cnt); /* * the retire work can still schedule after above retire_signal * api call. Flush workqueue guarantees that current caller * context is blocked till retire_work finishes. Any work * schedule after flush call should not cause any issue because * retire_signal api checks for retire_cnt with sync_mutex lock. */ flush_work(&mdp5_data->retire_work); } ctl_stop: Loading Loading
drivers/video/msm/mdss/mdss_mdp_overlay.c +10 −0 Original line number Diff line number Diff line Loading @@ -4687,6 +4687,16 @@ static int mdss_mdp_overlay_off(struct msm_fb_data_type *mfd) msleep(vsync_time); __vsync_retire_signal(mfd, mdp5_data->retire_cnt); /* * the retire work can still schedule after above retire_signal * api call. Flush workqueue guarantees that current caller * context is blocked till retire_work finishes. Any work * schedule after flush call should not cause any issue because * retire_signal api checks for retire_cnt with sync_mutex lock. */ flush_work(&mdp5_data->retire_work); } ctl_stop: Loading