diff options
| author | Daniel Hellstrom <daniel@gaisler.com> | 2011-03-30 01:12:40 +0000 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-03-30 04:28:54 -0700 | 
| commit | 10544f128c338aeb7f63c002ad7eee67aa0e6acf (patch) | |
| tree | 66eb9b823e751d8946fe1a56489657d843e69af4 | |
| parent | 97c278e31c7c3e10a3288b53f1b0a1733eacec5a (diff) | |
| download | olio-linux-3.10-10544f128c338aeb7f63c002ad7eee67aa0e6acf.tar.xz olio-linux-3.10-10544f128c338aeb7f63c002ad7eee67aa0e6acf.zip  | |
sparc32, leon: APBUART driver must use archdata to get IRQ number
See Commit id 1636f8ac2b08410df4766449f7c86b912443cd99 (sparc/of:
Move of_device fields into struct pdev_archdata), this patch
is similar to 19e4875fb21a69fbf620e84769a74d189c69c58d (of/sparc:
fix build regression from of_device changes)
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/tty/serial/apbuart.c | 12 | 
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/tty/serial/apbuart.c b/drivers/tty/serial/apbuart.c index 1ab999b04ef..12d4e7ca53c 100644 --- a/drivers/tty/serial/apbuart.c +++ b/drivers/tty/serial/apbuart.c @@ -555,10 +555,9 @@ static struct uart_driver grlib_apbuart_driver = {  static int __devinit apbuart_probe(struct platform_device *op)  { -	int i = -1; +	int i;  	struct uart_port *port = NULL; -	i = 0;  	for (i = 0; i < grlib_apbuart_port_nr; i++) {  		if (op->dev.of_node == grlib_apbuart_nodes[i])  			break; @@ -566,6 +565,7 @@ static int __devinit apbuart_probe(struct platform_device *op)  	port = &grlib_apbuart_ports[i];  	port->dev = &op->dev; +	port->irq = op->archdata.irqs[0];  	uart_add_one_port(&grlib_apbuart_driver, (struct uart_port *) port); @@ -615,7 +615,7 @@ static int grlib_apbuart_configure(void)  	freq_khz = *prop;  	for_each_matching_node(np, apbuart_match) { -		const int *irqs, *ampopts; +		const int *ampopts;  		const struct amba_prom_registers *regs;  		struct uart_port *port;  		unsigned long addr; @@ -623,11 +623,9 @@ static int grlib_apbuart_configure(void)  		ampopts = of_get_property(np, "ampopts", NULL);  		if (ampopts && (*ampopts == 0))  			continue; /* Ignore if used by another OS instance */ - -		irqs = of_get_property(np, "interrupts", NULL);  		regs = of_get_property(np, "reg", NULL); -		if (!irqs || !regs) +		if (!regs)  			continue;  		grlib_apbuart_nodes[line] = np; @@ -638,7 +636,7 @@ static int grlib_apbuart_configure(void)  		port->mapbase = addr;  		port->membase = ioremap(addr, sizeof(struct grlib_apbuart_regs_map)); -		port->irq = *irqs; +		port->irq = 0;  		port->iotype = UPIO_MEM;  		port->ops = &grlib_apbuart_ops;  		port->flags = UPF_BOOT_AUTOCONF;  |