[patch 21/26] serial: clear proper MPSC interrupt cause bits
-stable review patch. If anyone has any objections, please let us know. -- From: Jay Lubomirski <[EMAIL PROTECTED]> The interrupt clearing code in mpsc_sdma_intr_ack() mistakenly clears the interrupt for both controllers instead of just the one its supposed to. This can result in the other controller appearing to hang because its interrupt was effectively lost. So, don't clear the interrupt cause bits for both MPSC controllers when clearing the interrupt for one of them. Just clear the one that is supposed to be cleared. Signed-off-by: Jay Lubomirski <[EMAIL PROTECTED]> Acked-by: Mark A. Greer <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Signed-off-by: Chris Wright <[EMAIL PROTECTED]> Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> --- drivers/serial/mpsc.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- linux-2.6.21.6.orig/drivers/serial/mpsc.c +++ linux-2.6.21.6/drivers/serial/mpsc.c @@ -502,7 +502,8 @@ mpsc_sdma_intr_ack(struct mpsc_port_info if (pi->mirror_regs) pi->shared_regs->SDMA_INTR_CAUSE_m = 0; - writel(0, pi->shared_regs->sdma_intr_base + SDMA_INTR_CAUSE); + writeb(0x00, pi->shared_regs->sdma_intr_base + SDMA_INTR_CAUSE + + pi->port.line); return; } -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[patch 21/26] serial: clear proper MPSC interrupt cause bits
-stable review patch. If anyone has any objections, please let us know. -- From: Jay Lubomirski [EMAIL PROTECTED] The interrupt clearing code in mpsc_sdma_intr_ack() mistakenly clears the interrupt for both controllers instead of just the one its supposed to. This can result in the other controller appearing to hang because its interrupt was effectively lost. So, don't clear the interrupt cause bits for both MPSC controllers when clearing the interrupt for one of them. Just clear the one that is supposed to be cleared. Signed-off-by: Jay Lubomirski [EMAIL PROTECTED] Acked-by: Mark A. Greer [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Signed-off-by: Chris Wright [EMAIL PROTECTED] Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED] --- drivers/serial/mpsc.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- linux-2.6.21.6.orig/drivers/serial/mpsc.c +++ linux-2.6.21.6/drivers/serial/mpsc.c @@ -502,7 +502,8 @@ mpsc_sdma_intr_ack(struct mpsc_port_info if (pi-mirror_regs) pi-shared_regs-SDMA_INTR_CAUSE_m = 0; - writel(0, pi-shared_regs-sdma_intr_base + SDMA_INTR_CAUSE); + writeb(0x00, pi-shared_regs-sdma_intr_base + SDMA_INTR_CAUSE + + pi-port.line); return; } -- - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/