]> err.no Git - linux-2.6/blobdiff - drivers/serial/8250_gsc.c
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6] / drivers / serial / 8250_gsc.c
index 431aa5761a7a5791992a90e7c0d3d3f9731d6501..1ebe6b585d2d57d3c44b4d52bcceebb3b5fdfd78 100644 (file)
@@ -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;
@@ -42,27 +41,30 @@ serial_init_chip(struct parisc_device *dev)
                 */
                if (parisc_parent(dev)->id.hw_type != HPHW_IOA) {
                        printk(KERN_INFO "Serial: device 0x%lx not configured.\n"
-                               "Enable support for Wax, Lasi, Asp or Dino.\n", dev->hpa);
+                               "Enable support for Wax, Lasi, Asp or Dino.\n",
+                               dev->hpa.start);
                }
                return -ENODEV;
        }
 
-       address = dev->hpa;
+       address = dev->hpa.start;
        if (dev->id.sversion != 0x8d) {
                address += 0x800;
        }
 
-       memset(&port, 0, sizeof(struct uart_port));
-       port.mapbase = address;
-       port.irq = dev->irq;
-       port.iotype = UPIO_MEM;
-       port.flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF;
-       port.uartclk = LASI_BASE_BAUD * 16;
-       port.dev = &dev->dev;
+       memset(&port, 0, sizeof(port));
+       port.iotype     = UPIO_MEM;
+       port.uartclk    = LASI_BASE_BAUD * 16;
+       port.mapbase    = address;
+       port.membase    = ioremap_nocache(address, 16);
+       port.irq        = dev->irq;
+       port.flags      = UPF_BOOT_AUTOCONF;
+       port.dev        = &dev->dev;
 
        err = serial8250_register_port(&port);
        if (err < 0) {
                printk(KERN_WARNING "serial8250_register_port returned error %d\n", err);
+               iounmap(port.membase);
                return err;
        }