diff options
author | Matthew Wilcox <willy@parisc-linux.org> | 2005-10-21 22:58:03 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@parisc-linux.org> | 2005-10-21 22:58:03 -0400 |
commit | ae8c75c1c47029a64976690c37336a2be6b49778 (patch) | |
tree | 4af797b490b210f40770d685cf89f760efe15199 | |
parent | 27ee073cd2f72aa794299ef1ead31072f5176533 (diff) |
[PARISC] Fix mux.c driver
Missing spin_lock_init() made the Mux driver hang on SMP systems.
Fix up users of ->hpa to use ->hpa.start instead
Remove warning in 8250_gsc.c by eliminating serial_line_nr
Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
-rw-r--r-- | drivers/serial/8250_gsc.c | 1 | ||||
-rw-r--r-- | drivers/serial/mux.c | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/serial/8250_gsc.c b/drivers/serial/8250_gsc.c index abc5a0cfe24..8b4947933d9 100644 --- a/drivers/serial/8250_gsc.c +++ b/drivers/serial/8250_gsc.c @@ -29,7 +29,6 @@ static int __init serial_init_chip(struct parisc_device *dev) { - static int serial_line_nr; struct uart_port port; unsigned long address; int err; diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c index 009ce83c8ef..660bae5ba17 100644 --- a/drivers/serial/mux.c +++ b/drivers/serial/mux.c @@ -27,6 +27,7 @@ #include <linux/delay.h> /* for udelay */ #include <linux/device.h> #include <asm/io.h> +#include <asm/irq.h> #include <asm/parisc-device.h> #ifdef CONFIG_MAGIC_SYSRQ @@ -469,16 +470,18 @@ static int __init mux_probe(struct parisc_device *dev) for(i = 0; i < ports; ++i, ++port_cnt) { port = &mux_ports[port_cnt]; port->iobase = 0; - port->mapbase = dev->hpa + MUX_OFFSET + (i * MUX_LINE_OFFSET); + port->mapbase = dev->hpa.start + MUX_OFFSET + + (i * MUX_LINE_OFFSET); port->membase = ioremap(port->mapbase, MUX_LINE_OFFSET); port->iotype = SERIAL_IO_MEM; port->type = PORT_MUX; - port->irq = SERIAL_IRQ_NONE; + port->irq = NO_IRQ; port->uartclk = 0; port->fifosize = MUX_FIFO_SIZE; port->ops = &mux_pops; port->flags = UPF_BOOT_AUTOCONF; port->line = port_cnt; + spin_lock_init(&port->lock); status = uart_add_one_port(&mux_driver, port); BUG_ON(status); } |