mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
imx233: add lcdif underflow irq support
Change-Id: Ie3fe223ff40abff38bb9b09f398eb5411fa0be4c
This commit is contained in:
parent
61d0583384
commit
b0940b1dd3
2 changed files with 23 additions and 0 deletions
|
|
@ -25,6 +25,7 @@
|
|||
#if IMX233_SUBTARGET >= 3700
|
||||
static lcdif_irq_cb_t g_cur_frame_cb = NULL;
|
||||
static lcdif_irq_cb_t g_vsync_edge_cb = NULL;
|
||||
static lcdif_irq_cb_t g_underflow_cb = NULL;
|
||||
#endif
|
||||
|
||||
/* for some crazy reason, all "non-dma" interrupts are routed to the ERROR irq */
|
||||
|
|
@ -43,6 +44,12 @@ void INT_LCDIF_ERROR(void)
|
|||
g_vsync_edge_cb();
|
||||
BF_CLR(LCDIF_CTRL1, VSYNC_EDGE_IRQ);
|
||||
}
|
||||
if(BF_RD(LCDIF_CTRL1, UNDERFLOW_IRQ))
|
||||
{
|
||||
if(g_underflow_cb)
|
||||
g_underflow_cb();
|
||||
BF_CLR(LCDIF_CTRL1, UNDERFLOW_IRQ);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -341,6 +348,20 @@ void imx233_lcdif_set_vsync_edge_cb(lcdif_irq_cb_t cb)
|
|||
{
|
||||
g_vsync_edge_cb = cb;
|
||||
}
|
||||
|
||||
void imx233_lcdif_enable_underflow_irq(bool en)
|
||||
{
|
||||
if(en)
|
||||
BF_SET(LCDIF_CTRL1, UNDERFLOW_IRQ_EN);
|
||||
else
|
||||
BF_CLR(LCDIF_CTRL1, UNDERFLOW_IRQ_EN);
|
||||
BF_CLR(LCDIF_CTRL1, UNDERFLOW_IRQ);
|
||||
}
|
||||
|
||||
void imx233_lcdif_set_underflow_cb(lcdif_irq_cb_t cb)
|
||||
{
|
||||
g_underflow_cb = cb;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if IMX233_SUBTARGET >= 3780
|
||||
|
|
|
|||
|
|
@ -65,6 +65,8 @@ void imx233_lcdif_enable_frame_done_irq(bool en);
|
|||
void imx233_lcdif_set_frame_done_cb(lcdif_irq_cb_t cb);
|
||||
void imx233_lcdif_enable_vsync_edge_irq(bool en);
|
||||
void imx233_lcdif_set_vsync_edge_cb(lcdif_irq_cb_t cb);
|
||||
void imx233_lcdif_enable_underflow_irq(bool en);
|
||||
void imx233_lcdif_set_underflow_cb(lcdif_irq_cb_t cb);
|
||||
void imx233_lcdif_enable_sync_signals(bool en);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue