diff options
| author | Ingrid Gallardo <ingridg@codeaurora.org> | 2015-09-14 19:29:53 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:46:42 -0700 |
| commit | 85ec72fd28a5fa0260e4e8984f42a2cbdbbb77c2 (patch) | |
| tree | c7a9a2f80ecbaff5768d3ac6be695f3f982b4cbb /drivers | |
| parent | ab7127e737217afbd65dc5fe62c6727bcbeff125 (diff) | |
msm: mdss: fix to release mdp clock during partial update
When a partial update is requested in the right
controller only, driver kicks off the update in
the right controller only.
Current driver has a problem where even when the
kickoff is only in the right side for this scenario,
we mark the SW status as busy for the controller of
the left side as well. This causes that if only
right updates are coming, driver holds the mdp
clock and keeps it enabled during static screen
scenarios.
Fix this problem by making sure that the busy
status of the SW for the left controller is only
set to busy if an update is requested for this
controller.
Change-Id: I357c80955666e9d7e8da55d3189c482ae445435a
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_ctl.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c index e97db51f1016..a1299ce2ffd8 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c +++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c @@ -4371,14 +4371,15 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg, !mdss_mdp_ctl_perf_get_transaction_status(sctl); } - mdss_mdp_ctl_perf_set_transaction_status(ctl, - PERF_SW_COMMIT_STATE, PERF_STATUS_BUSY); + /* left update */ + if (ctl->valid_roi) + mdss_mdp_ctl_perf_set_transaction_status(ctl, + PERF_SW_COMMIT_STATE, PERF_STATUS_BUSY); - if (sctl && sctl->roi.w && sctl->roi.h) { - /* left + right*/ + /* right update */ + if (sctl && sctl->valid_roi) mdss_mdp_ctl_perf_set_transaction_status(sctl, PERF_SW_COMMIT_STATE, PERF_STATUS_BUSY); - } if (mdata->has_src_split) { if (sctl) |
