mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
rk312x/rk3288:lcdc: add win empty irq debug
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user