Add tsi108/9 uart support Signed-off-by: Alexandre Bounine Signed-off-by: Roy Zang --- drivers/serial/8250.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index a18226a..f5cd45e 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -12,7 +12,7 @@ * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * - * $Id: 8250.c,v 1.90 2002/07/28 10:03:27 rmk Exp $ + * $Id: 8250.c 1.3 2005/10/18 09:43:20EDT Alexandre Bounine (alexandre bounine) Exp $ * * A note about mapbase / membase * @@ -1207,7 +1207,11 @@ static irqreturn_t serial8250_interrupt( up = list_entry(l, struct uart_8250_port, list); +#ifdef CONFIG_TSI108_BRIDGE /* for TSI108_REV_A1 */ + iir = (*(unsigned int*)(up->port.membase + 0x00) >> 8) & 0xff; /* read as 32-bit word */ +#else iir = serial_in(up, UART_IIR); +#endif if (!(iir & UART_IIR_NO_INT)) { spin_lock(&up->port.lock); serial8250_handle_port(up, regs); @@ -1433,7 +1437,9 @@ #endif */ (void) serial_inp(up, UART_LSR); (void) serial_inp(up, UART_RX); +#ifndef CONFIG_TSI108_BRIDGE /* for TSI108_REV_A1 */ (void) serial_inp(up, UART_IIR); +#endif (void) serial_inp(up, UART_MSR); /* @@ -1524,7 +1530,9 @@ #endif */ (void) serial_inp(up, UART_LSR); (void) serial_inp(up, UART_RX); +#ifndef CONFIG_TSI108_BRIDGE /* for TSI108_REV_A1 */ (void) serial_inp(up, UART_IIR); +#endif (void) serial_inp(up, UART_MSR); return 0; @@ -2482,7 +2490,7 @@ static int __init serial8250_init(void) { int ret, i; - printk(KERN_INFO "Serial: 8250/16550 driver $Revision: 1.90 $ " + printk(KERN_INFO "Serial: 8250/16550 driver $Revision: 1.3 $ " "%d ports, IRQ sharing %sabled\n", (int) UART_NR, share_irqs ? "en" : "dis"); @@ -2537,7 +2545,7 @@ EXPORT_SYMBOL(serial8250_suspend_port); EXPORT_SYMBOL(serial8250_resume_port); MODULE_LICENSE("GPL"); -MODULE_DESCRIPTION("Generic 8250/16x50 serial driver $Revision: 1.90 $"); +MODULE_DESCRIPTION("Generic 8250/16x50 serial driver $Revision: 1.3 $"); module_param(share_irqs, uint, 0644); MODULE_PARM_DESC(share_irqs, "Share IRQs with other non-8250/16x50 devices" -- 1.4.0