rk312x/rk3288:lcdc: add win empty irq debug

This commit is contained in:
zwl
2014-08-30 16:23:34 +08:00
parent d90ed7c2de
commit 77fa943ef3
2 changed files with 26 additions and 3 deletions

View File

@@ -93,6 +93,19 @@ static irqreturn_t rk312x_lcdc_isr(int irq, void *dev_id)
lcdc_msk_reg(lcdc_dev, INT_STATUS, m_LF_INT_CLEAR,
v_LF_INT_CLEAR(1));
}
#ifdef LCDC_IRQ_EMPTY_DEBUG
if (int_reg & m_WIN0_EMPTY_INT_STA) {
lcdc_msk_reg(lcdc_dev, INT_STATUS, m_WIN0_EMPTY_INT_CLEAR,
v_WIN0_EMPTY_INT_CLEAR(1));
dev_info(lcdc_dev->dev, "win0 empty irq\n");
} else if (int_reg & m_WIN1_EMPTY_INT_STA) {
lcdc_msk_reg(lcdc_dev, INT_STATUS, m_WIN1_EMPTY_INT_CLEAR,
v_WIN1_EMPTY_INT_CLEAR(1));
dev_info(lcdc_dev->dev, "win0 empty irq\n");
}
#endif
return IRQ_HANDLED;
}
@@ -153,6 +166,11 @@ static int rk312x_lcdc_enable_irq(struct rk_lcdc_driver *dev_drv)
v_LF_INT_NUM(screen->mode.vsync_len +
screen->mode.upper_margin +
screen->mode.yres);
#ifdef LCDC_IRQ_EMPTY_DEBUG
mask |= m_WIN0_EMPTY_INT_EN | m_WIN1_EMPTY_INT_EN;
val |= v_WIN0_EMPTY_INT_EN(1) | v_WIN1_EMPTY_INT_EN(1);
#endif
lcdc_msk_reg(lcdc_dev, INT_STATUS, mask, val);
spin_unlock(&lcdc_dev->reg_lock);
} else {
@@ -173,6 +191,11 @@ static int rk312x_lcdc_disable_irq(struct lcdc_device *lcdc_dev)
val = v_FS_INT_CLEAR(0) | v_FS_INT_EN(0) |
v_LF_INT_CLEAR(0) | v_LF_INT_EN(0) |
v_BUS_ERR_INT_CLEAR(0) | v_BUS_ERR_INT_EN(0);
#ifdef LCDC_IRQ_EMPTY_DEBUG
mask |= m_WIN0_EMPTY_INT_EN | m_WIN1_EMPTY_INT_EN;
val |= v_WIN0_EMPTY_INT_EN(0) | v_WIN1_EMPTY_INT_EN(0);
#endif
lcdc_msk_reg(lcdc_dev, INT_STATUS, mask, val);
spin_unlock(&lcdc_dev->reg_lock);
} else {

View File

@@ -1277,7 +1277,7 @@ static int rk3288_lcdc_enable_irq(struct rk_lcdc_driver *dev_drv)
v_DSP_LINE_FLAG_NUM(screen->mode.vsync_len + screen->mode.upper_margin +
screen->mode.yres);
lcdc_msk_reg(lcdc_dev, INTR_CTRL0, mask, val);
#if 0
#ifdef LCDC_IRQ_EMPTY_DEBUG
mask = m_WIN0_EMPTY_INTR_EN | m_WIN1_EMPTY_INTR_EN | m_WIN2_EMPTY_INTR_EN |
m_WIN3_EMPTY_INTR_EN |m_HWC_EMPTY_INTR_EN | m_POST_BUF_EMPTY_INTR_EN |
m_PWM_GEN_INTR_EN;
@@ -3553,8 +3553,8 @@ static irqreturn_t rk3288_lcdc_isr(int irq, void *dev_id)
dev_warn(lcdc_dev->dev,"buf_error_int!");
}
/*for debug*/
#ifdef LCDC_IRQ_DEBUG
/* for win empty debug */
#ifdef LCDC_IRQ_EMPTY_DEBUG
intr1_reg = lcdc_readl(lcdc_dev, INTR_CTRL1);
if (intr1_reg != 0) {
rk3288_lcdc_parse_irq(lcdc_dev,intr1_reg);