diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_fb.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c index 325aee1caa14..a6d6ca7fac92 100644 --- a/drivers/video/fbdev/msm/mdss_fb.c +++ b/drivers/video/fbdev/msm/mdss_fb.c @@ -1052,15 +1052,20 @@ void mdss_fb_wait_for_fence(struct msm_fb_data_type *mfd) mfd->acq_fen_cnt = 0; } -void mdss_fb_signal_timeline(struct msm_fb_data_type *mfd) +static void mdss_fb_signal_timeline_locked(struct msm_fb_data_type *mfd) { - mutex_lock(&mfd->sync_mutex); if (mfd->timeline) { sw_sync_timeline_inc(mfd->timeline, 1); mfd->timeline_value++; } mfd->last_rel_fence = mfd->cur_rel_fence; mfd->cur_rel_fence = 0; +} + +void mdss_fb_signal_timeline(struct msm_fb_data_type *mfd) +{ + mutex_lock(&mfd->sync_mutex); + mdss_fb_signal_timeline_locked(mfd); mutex_unlock(&mfd->sync_mutex); } @@ -1091,6 +1096,7 @@ static void mdss_fb_pan_idle(struct msm_fb_data_type *mfd) __func__, ret, mfd->is_committing); if (ret <= 0) { mutex_lock(&mfd->sync_mutex); + mdss_fb_signal_timeline_locked(mfd); mfd->is_committing = 0; complete_all(&mfd->commit_comp); mutex_unlock(&mfd->sync_mutex); |
