From: Tony Lindgren Date: Mon, 9 May 2005 21:30:41 +0000 (-0700) Subject: OMAP1510 specific fixes to 8250.c serial driver. X-Git-Tag: v2.6.13-omap1~158 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=14ba8a55ff7f26c444ca7e344592a816c38d42d3;p=linux-2.6-omap-h63xx.git OMAP1510 specific fixes to 8250.c serial driver. Adds OMAP1510 specific fixes to 8250.c serial driver. Signed-off-by: Tony Lindgren --- diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 0d9358608fd..c6084f6f26d 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -1272,7 +1272,8 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r DEBUG_INTR("end.\n"); - return IRQ_RETVAL(handled); + //return IRQ_RETVAL(handled); + return IRQ_HANDLED; /* FIXME: iir status not ready on 1510 */ } /* @@ -1772,6 +1773,17 @@ serial8250_set_termios(struct uart_port *port, struct termios *termios, serial_outp(up, UART_EFR, efr); } +#ifdef CONFIG_ARCH_OMAP1510 + /* Workaround to enable 115200 baud on OMAP1510 internal ports */ + if (cpu_is_omap1510() && is_omap_port(up->port.membase)) { + if (baud == 115200) { + quot = 1; + serial_out(up, UART_OMAP_OSC_12M_SEL, 1); + } else + serial_out(up, UART_OMAP_OSC_12M_SEL, 0); + } +#endif + if (up->capabilities & UART_NATSEMI) { /* Switch to bank 2 not bank 1, to avoid resetting EXCR2 */ serial_outp(up, UART_LCR, 0xe0); @@ -1822,6 +1834,11 @@ static int serial8250_request_std_resource(struct uart_8250_port *up) unsigned int size = 8 << up->port.regshift; int ret = 0; +#ifdef CONFIG_ARCH_OMAP + if (is_omap_port(up->port.membase)) + size = 0x16 << up->port.regshift; +#endif + switch (up->port.iotype) { case UPIO_MEM: if (!up->port.mapbase)