summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.c4
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_util.c2
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);