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>
This commit is contained in:
Ingrid Gallardo 2015-09-14 19:29:53 -07:00 committed by David Keitel
parent ab7127e737
commit 85ec72fd28

View file

@ -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)