diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp.c | 4 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_util.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c index 31240d7cf572..2e7403b24b15 100644 --- a/drivers/video/fbdev/msm/mdss_mdp.c +++ b/drivers/video/fbdev/msm/mdss_mdp.c @@ -941,6 +941,7 @@ void mdss_mdp_clk_ctrl(int enable) { struct mdss_data_type *mdata = mdss_mdp_get_mdata(); static int mdp_clk_cnt; + unsigned long flags; int changed = 0; int rc = 0; @@ -982,7 +983,10 @@ void mdss_mdp_clk_ctrl(int enable) false, mdata->curr_bw_uc_idx); } + spin_lock_irqsave(&mdp_lock, flags); mdata->clk_ena = enable; + spin_unlock_irqrestore(&mdp_lock, flags); + mdss_mdp_clk_update(MDSS_CLK_AHB, enable); mdss_mdp_clk_update(MDSS_CLK_AXI, enable); mdss_mdp_clk_update(MDSS_CLK_MDP_CORE, enable); diff --git a/drivers/video/fbdev/msm/mdss_mdp_util.c b/drivers/video/fbdev/msm/mdss_mdp_util.c index da94533cfa75..fe0c2e5d3a75 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_util.c +++ b/drivers/video/fbdev/msm/mdss_mdp_util.c @@ -151,6 +151,8 @@ irqreturn_t mdss_mdp_isr(int irq, void *ptr) struct mdss_data_type *mdata = ptr; u32 isr, mask, hist_isr, hist_mask; + if (!mdata->clk_ena) + return IRQ_HANDLED; isr = readl_relaxed(mdata->mdp_base + MDSS_MDP_REG_INTR_STATUS); |
