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;
}
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 {
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 {
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;
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);