mirror of https://gitee.com/openkylin/linux.git
OMAP: DSS2: DSI: Add error IRQ mask for DSI complexIO
The code presumed that all ComplexIO interrupts are errors. This is not the case. This patch adds proper error mask for CIO interrupt handling. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
This commit is contained in:
parent
fa15c79b9a
commit
bbecb50b5f
|
@ -165,6 +165,14 @@ struct dsi_reg { u16 idx; };
|
|||
#define DSI_CIO_IRQ_ERRCONTENTIONLP1_3 (1 << 25)
|
||||
#define DSI_CIO_IRQ_ULPSACTIVENOT_ALL0 (1 << 30)
|
||||
#define DSI_CIO_IRQ_ULPSACTIVENOT_ALL1 (1 << 31)
|
||||
#define DSI_CIO_IRQ_ERROR_MASK \
|
||||
(DSI_CIO_IRQ_ERRSYNCESC1 | DSI_CIO_IRQ_ERRSYNCESC2 | \
|
||||
DSI_CIO_IRQ_ERRSYNCESC3 | DSI_CIO_IRQ_ERRESC1 | DSI_CIO_IRQ_ERRESC2 | \
|
||||
DSI_CIO_IRQ_ERRESC3 | DSI_CIO_IRQ_ERRCONTROL1 | \
|
||||
DSI_CIO_IRQ_ERRCONTROL2 | DSI_CIO_IRQ_ERRCONTROL3 | \
|
||||
DSI_CIO_IRQ_ERRCONTENTIONLP0_1 | DSI_CIO_IRQ_ERRCONTENTIONLP1_1 | \
|
||||
DSI_CIO_IRQ_ERRCONTENTIONLP0_2 | DSI_CIO_IRQ_ERRCONTENTIONLP1_2 | \
|
||||
DSI_CIO_IRQ_ERRCONTENTIONLP0_3 | DSI_CIO_IRQ_ERRCONTENTIONLP1_3)
|
||||
|
||||
#define DSI_DT_DCS_SHORT_WRITE_0 0x05
|
||||
#define DSI_DT_DCS_SHORT_WRITE_1 0x15
|
||||
|
@ -542,8 +550,12 @@ void dsi_irq_handler(void)
|
|||
/* flush posted write */
|
||||
dsi_read_reg(DSI_COMPLEXIO_IRQ_STATUS);
|
||||
|
||||
DSSERR("DSI CIO error, cio irqstatus %x\n", ciostatus);
|
||||
print_irq_status_cio(ciostatus);
|
||||
if (ciostatus & DSI_CIO_IRQ_ERROR_MASK) {
|
||||
DSSERR("DSI CIO error, cio irqstatus %x\n", ciostatus);
|
||||
print_irq_status_cio(ciostatus);
|
||||
} else if (debug_irq) {
|
||||
print_irq_status_cio(ciostatus);
|
||||
}
|
||||
}
|
||||
|
||||
dsi_write_reg(DSI_IRQSTATUS, irqstatus & ~DSI_IRQ_CHANNEL_MASK);
|
||||
|
@ -590,11 +602,8 @@ static void _dsi_initialize_irq(void)
|
|||
for (i = 0; i < 4; ++i)
|
||||
dsi_write_reg(DSI_VC_IRQENABLE(i), l);
|
||||
|
||||
/* XXX zonda responds incorrectly, causing control error:
|
||||
Exit from LP-ESC mode to LP11 uses wrong transition states on the
|
||||
data lines LP0 and LN0. */
|
||||
dsi_write_reg(DSI_COMPLEXIO_IRQ_ENABLE,
|
||||
-1 & (~DSI_CIO_IRQ_ERRCONTROL2));
|
||||
l = DSI_CIO_IRQ_ERROR_MASK;
|
||||
dsi_write_reg(DSI_COMPLEXIO_IRQ_ENABLE, l);
|
||||
}
|
||||
|
||||
static u32 dsi_get_errors(void)
|
||||
|
|
Loading…
Reference in New Issue