提交 ae8c75c1 编写于 作者: M Matthew Wilcox 提交者: Kyle McMartin

[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: NMatthew Wilcox <willy@parisc-linux.org>
Signed-off-by: NKyle McMartin <kyle@parisc-linux.org>
上级 27ee073c
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
static int __init static int __init
serial_init_chip(struct parisc_device *dev) serial_init_chip(struct parisc_device *dev)
{ {
static int serial_line_nr;
struct uart_port port; struct uart_port port;
unsigned long address; unsigned long address;
int err; int err;
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include <linux/delay.h> /* for udelay */ #include <linux/delay.h> /* for udelay */
#include <linux/device.h> #include <linux/device.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq.h>
#include <asm/parisc-device.h> #include <asm/parisc-device.h>
#ifdef CONFIG_MAGIC_SYSRQ #ifdef CONFIG_MAGIC_SYSRQ
...@@ -469,16 +470,18 @@ static int __init mux_probe(struct parisc_device *dev) ...@@ -469,16 +470,18 @@ static int __init mux_probe(struct parisc_device *dev)
for(i = 0; i < ports; ++i, ++port_cnt) { for(i = 0; i < ports; ++i, ++port_cnt) {
port = &mux_ports[port_cnt]; port = &mux_ports[port_cnt];
port->iobase = 0; 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->membase = ioremap(port->mapbase, MUX_LINE_OFFSET);
port->iotype = SERIAL_IO_MEM; port->iotype = SERIAL_IO_MEM;
port->type = PORT_MUX; port->type = PORT_MUX;
port->irq = SERIAL_IRQ_NONE; port->irq = NO_IRQ;
port->uartclk = 0; port->uartclk = 0;
port->fifosize = MUX_FIFO_SIZE; port->fifosize = MUX_FIFO_SIZE;
port->ops = &mux_pops; port->ops = &mux_pops;
port->flags = UPF_BOOT_AUTOCONF; port->flags = UPF_BOOT_AUTOCONF;
port->line = port_cnt; port->line = port_cnt;
spin_lock_init(&port->lock);
status = uart_add_one_port(&mux_driver, port); status = uart_add_one_port(&mux_driver, port);
BUG_ON(status); BUG_ON(status);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册