summary refs log tree commit diff
path: root/drivers/parisc/superio.c
diff options
context:
space:
mode:
authorHelge Deller <deller@parisc-linux.org>2006-03-27 12:52:15 -0700
committerKyle McMartin <kyle@hera.kernel.org>2006-03-30 17:48:42 +0000
commit5076c15862644edb91d2e3436b2fa3e07b28385d (patch)
tree179750a6a7649c8cf233509c26da144764894ded /drivers/parisc/superio.c
parent94c3e87a792c70d041954b0ef68ebd22368d0931 (diff)
downloadlinux-5076c15862644edb91d2e3436b2fa3e07b28385d.tar.gz
[PARISC] I/O-Space must be ioremap_nocache()'d
Addresses in F-space must be accessed uncached on most parisc machines.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'drivers/parisc/superio.c')
-rw-r--r--drivers/parisc/superio.c48
1 files changed, 20 insertions, 28 deletions
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c
index ad6d3b28a3a6..719b863bc20e 100644
--- a/drivers/parisc/superio.c
+++ b/drivers/parisc/superio.c
@@ -12,6 +12,7 @@
  *      (C) Copyright 2001 John Marvin <jsm fc hp com>
  *      (C) Copyright 2003 Grant Grundler <grundler parisc-linux org>
  *	(C) Copyright 2005 Kyle McMartin <kyle@parisc-linux.org>
+ *	(C) Copyright 2006 Helge Deller <deller@gmx.de>
  *
  *	This program is free software; you can redistribute it and/or
  *	modify it under the terms of the GNU General Public License as
@@ -388,43 +389,34 @@ int superio_fixup_irq(struct pci_dev *pcidev)
 	return local_irq;
 }
 
-static struct uart_port serial[] = {
-	{
-		.iotype		= UPIO_PORT,
-		.line		= 0,
-		.type		= PORT_16550A,
-		.uartclk	= 115200*16,
-		.fifosize	= 16,
-	},
-	{
-		.iotype		= UPIO_PORT,
-		.line		= 1,
-		.type		= PORT_16550A,
-		.uartclk	= 115200*16,
-		.fifosize	= 16,
-	}
-};
-
 static void __devinit superio_serial_init(void)
 {
 #ifdef CONFIG_SERIAL_8250
 	int retval;
-        
-	serial[0].iobase = sio_dev.sp1_base;
-	serial[0].irq = SP1_IRQ;
-	spin_lock_init(&serial[0].lock);
-
-	retval = early_serial_setup(&serial[0]);
+	struct uart_port serial_port;
+
+	memset(&serial_port, 0, sizeof(serial_port));
+	serial_port.iotype	= UPIO_PORT;
+	serial_port.type	= PORT_16550A;
+	serial_port.uartclk	= 115200*16;
+	serial_port.fifosize	= 16;
+	spin_lock_init(&serial_port.lock);
+
+	/* serial port #1 */
+	serial_port.iobase	= sio_dev.sp1_base;
+	serial_port.irq		= SP1_IRQ;
+	serial_port.line	= 0;
+	retval = early_serial_setup(&serial_port);
 	if (retval < 0) {
 		printk(KERN_WARNING PFX "Register Serial #0 failed.\n");
 		return;
 	}
 
-	serial[1].iobase = sio_dev.sp2_base;
-	serial[1].irq = SP2_IRQ;
-	spin_lock_init(&serial[1].lock);
-	retval = early_serial_setup(&serial[1]);
-
+	/* serial port #2 */
+	serial_port.iobase	= sio_dev.sp2_base;
+	serial_port.irq		= SP2_IRQ;
+	serial_port.line	= 1;
+	retval = early_serial_setup(&serial_port);
 	if (retval < 0)
 		printk(KERN_WARNING PFX "Register Serial #1 failed.\n");
 #endif /* CONFIG_SERIAL_8250 */