提交 b62222fc 编写于 作者: D Darren Etheridge 提交者: Jyri Sarha

drm/tilcdc: make frame_done interrupt active at all times

The frame_done interrupt was only being enabled when the vsync
interrupts were being enabled by DRM.  However the frame_done is
used to determine if the LCD controller has successfully completed
the raster_enable, raster_disable commands and the vsync interrupts
are not always enabled during these operations.
Signed-off-by: NDarren Etheridge <detheridge@ti.com>
Tested-by: NDave Gerlach <d-gerlach@ti.com>
Signed-off-by: NJyri Sarha <jsarha@ti.com>
Reviewed-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
上级 85fd27f8
...@@ -369,7 +369,9 @@ static int tilcdc_irq_postinstall(struct drm_device *dev) ...@@ -369,7 +369,9 @@ static int tilcdc_irq_postinstall(struct drm_device *dev)
if (priv->rev == 1) if (priv->rev == 1)
tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_V1_UNDERFLOW_INT_ENA); tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_V1_UNDERFLOW_INT_ENA);
else else
tilcdc_set(dev, LCDC_INT_ENABLE_SET_REG, LCDC_V2_UNDERFLOW_INT_ENA); tilcdc_set(dev, LCDC_INT_ENABLE_SET_REG,
LCDC_V2_UNDERFLOW_INT_ENA |
LCDC_FRAME_DONE);
return 0; return 0;
} }
...@@ -403,7 +405,7 @@ static void enable_vblank(struct drm_device *dev, bool enable) ...@@ -403,7 +405,7 @@ static void enable_vblank(struct drm_device *dev, bool enable)
} else { } else {
reg = LCDC_INT_ENABLE_SET_REG; reg = LCDC_INT_ENABLE_SET_REG;
mask = LCDC_V2_END_OF_FRAME0_INT_ENA | mask = LCDC_V2_END_OF_FRAME0_INT_ENA |
LCDC_V2_END_OF_FRAME1_INT_ENA | LCDC_FRAME_DONE; LCDC_V2_END_OF_FRAME1_INT_ENA;
} }
if (enable) if (enable)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册