mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
msm_fb: display: add satge commit without pipes queued
This patch allow satge commit without pipes queued to allow a pipe to be un-staged from mixer immediately after overlay_unset. Change-Id: I03abb907c66cce3d0559743d3bb1eb26a88dc78a Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
This commit is contained in:
parent
0ea6dbeaa1
commit
e1e791dcf5
5 changed files with 28 additions and 23 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
|
||||
/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -275,10 +275,11 @@ int mdp4_dsi_cmd_pipe_commit(int cndx, int wait)
|
|||
|
||||
mdp_update_pm(vctrl->mfd, vctrl->vsync_time);
|
||||
|
||||
if (vp->update_cnt == 0) {
|
||||
mutex_unlock(&vctrl->update_lock);
|
||||
return cnt;
|
||||
}
|
||||
/*
|
||||
* allow stage_commit without pipes queued
|
||||
* (vp->update_cnt == 0) to unstage pipes after
|
||||
* overlay_unset
|
||||
*/
|
||||
|
||||
vctrl->update_ndx++;
|
||||
vctrl->update_ndx &= 0x01;
|
||||
|
|
|
@ -170,10 +170,11 @@ int mdp4_dsi_video_pipe_commit(int cndx, int wait)
|
|||
|
||||
mdp_update_pm(vctrl->mfd, vctrl->vsync_time);
|
||||
|
||||
if (vp->update_cnt == 0) {
|
||||
mutex_unlock(&vctrl->update_lock);
|
||||
return cnt;
|
||||
}
|
||||
/*
|
||||
* allow stage_commit without pipes queued
|
||||
* (vp->update_cnt == 0) to unstage pipes after
|
||||
* overlay_unset
|
||||
*/
|
||||
|
||||
vctrl->update_ndx++;
|
||||
vctrl->update_ndx &= 0x01;
|
||||
|
@ -1137,7 +1138,7 @@ void mdp4_dsi_video_overlay(struct msm_fb_data_type *mfd)
|
|||
mdp4_overlay_mdp_perf_upd(mfd, 1);
|
||||
|
||||
cnt = mdp4_dsi_video_pipe_commit(cndx, 0);
|
||||
if (cnt) {
|
||||
if (cnt >= 0) {
|
||||
if (pipe->ov_blt_addr)
|
||||
mdp4_dsi_video_wait4ov(cndx);
|
||||
else
|
||||
|
|
|
@ -188,10 +188,11 @@ int mdp4_dtv_pipe_commit(int cndx, int wait)
|
|||
|
||||
mdp_update_pm(vctrl->mfd, vctrl->vsync_time);
|
||||
|
||||
if (vp->update_cnt == 0) {
|
||||
mutex_unlock(&vctrl->update_lock);
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* allow stage_commit without pipes queued
|
||||
* (vp->update_cnt == 0) to unstage pipes after
|
||||
* overlay_unset
|
||||
*/
|
||||
|
||||
vctrl->update_ndx++;
|
||||
vctrl->update_ndx &= 0x01;
|
||||
|
|
|
@ -174,10 +174,11 @@ int mdp4_lcdc_pipe_commit(int cndx, int wait)
|
|||
|
||||
mdp_update_pm(vctrl->mfd, vctrl->vsync_time);
|
||||
|
||||
if (vp->update_cnt == 0) {
|
||||
mutex_unlock(&vctrl->update_lock);
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* allow stage_commit without pipes queued
|
||||
* (vp->update_cnt == 0) to unstage pipes after
|
||||
* overlay_unset
|
||||
*/
|
||||
|
||||
vctrl->update_ndx++;
|
||||
vctrl->update_ndx &= 0x01;
|
||||
|
@ -977,7 +978,7 @@ void mdp4_lcdc_overlay(struct msm_fb_data_type *mfd)
|
|||
mdp4_overlay_mdp_perf_upd(mfd, 1);
|
||||
|
||||
cnt = mdp4_lcdc_pipe_commit(cndx, 0);
|
||||
if (cnt) {
|
||||
if (cnt >= 0) {
|
||||
if (pipe->ov_blt_addr)
|
||||
mdp4_lcdc_wait4ov(cndx);
|
||||
else
|
||||
|
|
|
@ -344,10 +344,11 @@ int mdp4_wfd_pipe_commit(struct msm_fb_data_type *mfd,
|
|||
pipe = vctrl->base_pipe;
|
||||
mixer = pipe->mixer_num;
|
||||
|
||||
if (vp->update_cnt == 0) {
|
||||
mutex_unlock(&vctrl->update_lock);
|
||||
return cnt;
|
||||
}
|
||||
/*
|
||||
* allow stage_commit without pipes queued
|
||||
* (vp->update_cnt == 0) to unstage pipes after
|
||||
* overlay_unset
|
||||
*/
|
||||
|
||||
vctrl->update_ndx++;
|
||||
vctrl->update_ndx &= 0x01;
|
||||
|
|
Loading…
Reference in a new issue