From 85ec72fd28a5fa0260e4e8984f42a2cbdbbb77c2 Mon Sep 17 00:00:00 2001 From: Ingrid Gallardo Date: Mon, 14 Sep 2015 19:29:53 -0700 Subject: [PATCH] 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 --- drivers/video/fbdev/msm/mdss_mdp_ctl.c | 11 ++++++----- 1 file 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)