summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUjwal Patel <ujwalp@codeaurora.org>2014-02-27 10:11:40 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:27:30 -0700
commit59205e68de2a412cd6971ff43d22e06a8d42b9e8 (patch)
treef30e72b8eed1c8c5c5d811e5c6194a5c5f212227
parent5f335fb759d48474df1c798cb15eee215ebcaa0b (diff)
msm: mdss: extend SW reset assert until VBIF halt is finished
If pipe is supposed to be halted using SW reset assert, extend assert of SW reset until corresponding VBIF client is halted. Change-Id: Iabe6a2c6302483fc9d14cedbd1480bb6c644597e Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pipe.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pipe.c b/drivers/video/fbdev/msm/mdss_mdp_pipe.c
index 85acc1366b1e..eae2213aa615 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pipe.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pipe.c
@@ -808,9 +808,6 @@ int mdss_mdp_pipe_fetch_halt(struct mdss_mdp_pipe *pipe)
writel_relaxed(reg_val | BIT(pipe->sw_reset.bit_off),
mdata->mdp_base + sw_reset_off);
wmb();
- writel_relaxed(reg_val & ~BIT(pipe->sw_reset.bit_off),
- mdata->mdp_base + sw_reset_off);
- wmb();
}
mutex_unlock(&mdata->reg_lock);
@@ -830,6 +827,10 @@ int mdss_mdp_pipe_fetch_halt(struct mdss_mdp_pipe *pipe)
mdata->vbif_base + MMSS_VBIF_XIN_HALT_CTRL0);
if (sw_reset_avail) {
+ writel_relaxed(reg_val & ~BIT(pipe->sw_reset.bit_off),
+ mdata->mdp_base + sw_reset_off);
+ wmb();
+
reg_val = readl_relaxed(mdata->mdp_base + clk_ctrl_off);
reg_val |= BIT(pipe->clk_ctrl.bit_off +
CLK_FORCE_OFF_OFFSET);