8250: use the 8250 register interface not the legacy one
authorAlan Cox <alan@linux.intel.com>
Thu, 12 Jul 2012 11:59:50 +0000 (12:59 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jul 2012 21:46:22 +0000 (14:46 -0700)
The old interface just copies bits over and calls the newer one.
In addition we can now pass more information.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250.c
drivers/tty/serial/8250/8250_acorn.c
drivers/tty/serial/8250/8250_dw.c
drivers/tty/serial/8250/8250_gsc.c
drivers/tty/serial/8250/8250_hp300.c
drivers/tty/serial/8250/8250_pci.c
drivers/tty/serial/8250/8250_pnp.c
drivers/tty/serial/8250/serial_cs.c
include/linux/serial_8250.h

index 8123f784bcdacf3bf653fc7c2c1c57ba0540609f..2b2468506e081d7cf696885d86c4178c2951265f 100644 (file)
@@ -2979,36 +2979,36 @@ void serial8250_resume_port(int line)
 static int __devinit serial8250_probe(struct platform_device *dev)
 {
        struct plat_serial8250_port *p = dev->dev.platform_data;
-       struct uart_port port;
+       struct uart_8250_port uart;
        int ret, i, irqflag = 0;
 
-       memset(&port, 0, sizeof(struct uart_port));
+       memset(&uart, 0, sizeof(uart));
 
        if (share_irqs)
                irqflag = IRQF_SHARED;
 
        for (i = 0; p && p->flags != 0; p++, i++) {
-               port.iobase             = p->iobase;
-               port.membase            = p->membase;
-               port.irq                = p->irq;
-               port.irqflags           = p->irqflags;
-               port.uartclk            = p->uartclk;
-               port.regshift           = p->regshift;
-               port.iotype             = p->iotype;
-               port.flags              = p->flags;
-               port.mapbase            = p->mapbase;
-               port.hub6               = p->hub6;
-               port.private_data       = p->private_data;
-               port.type               = p->type;
-               port.serial_in          = p->serial_in;
-               port.serial_out         = p->serial_out;
-               port.handle_irq         = p->handle_irq;
-               port.handle_break       = p->handle_break;
-               port.set_termios        = p->set_termios;
-               port.pm                 = p->pm;
-               port.dev                = &dev->dev;
-               port.irqflags           |= irqflag;
-               ret = serial8250_register_port(&port);
+               uart.port.iobase        = p->iobase;
+               uart.port.membase       = p->membase;
+               uart.port.irq           = p->irq;
+               uart.port.irqflags      = p->irqflags;
+               uart.port.uartclk       = p->uartclk;
+               uart.port.regshift      = p->regshift;
+               uart.port.iotype        = p->iotype;
+               uart.port.flags         = p->flags;
+               uart.port.mapbase       = p->mapbase;
+               uart.port.hub6          = p->hub6;
+               uart.port.private_data  = p->private_data;
+               uart.port.type          = p->type;
+               uart.port.serial_in     = p->serial_in;
+               uart.port.serial_out    = p->serial_out;
+               uart.port.handle_irq    = p->handle_irq;
+               uart.port.handle_break  = p->handle_break;
+               uart.port.set_termios   = p->set_termios;
+               uart.port.pm            = p->pm;
+               uart.port.dev           = &dev->dev;
+               uart.port.irqflags      |= irqflag;
+               ret = serial8250_register_8250_port(&uart);
                if (ret < 0) {
                        dev_err(&dev->dev, "unable to register port at index %d "
                                "(IO%lx MEM%llx IRQ%d): %d\n", i,
@@ -3081,7 +3081,7 @@ static struct platform_driver serial8250_isa_driver = {
 static struct platform_device *serial8250_isa_devs;
 
 /*
- * serial8250_register_port and serial8250_unregister_port allows for
+ * serial8250_register_8250_port and serial8250_unregister_port allows for
  * 16x50 serial ports to be configured at run-time, to support PCMCIA
  * modems and PCI multiport cards.
  */
@@ -3197,29 +3197,6 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
 }
 EXPORT_SYMBOL(serial8250_register_8250_port);
 
-/**
- *     serial8250_register_port - register a serial port
- *     @port: serial port template
- *
- *     Configure the serial port specified by the request. If the
- *     port exists and is in use, it is hung up and unregistered
- *     first.
- *
- *     The port is then probed and if necessary the IRQ is autodetected
- *     If this fails an error is returned.
- *
- *     On success the port is ready to use and the line number is returned.
- */
-int serial8250_register_port(struct uart_port *port)
-{
-       struct uart_8250_port up;
-
-       memset(&up, 0, sizeof(up));
-       memcpy(&up.port, port, sizeof(*port));
-       return serial8250_register_8250_port(&up);
-}
-EXPORT_SYMBOL(serial8250_register_port);
-
 /**
  *     serial8250_unregister_port - remove a 16x50 serial port at runtime
  *     @line: serial line number
index b0ce8c56f1a4dcdb8ac077888ed3973756b8f2e6..857498312a9a84146b6c4c3493c224491fc1213d 100644 (file)
@@ -43,7 +43,7 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
 {
        struct serial_card_info *info;
        struct serial_card_type *type = id->data;
-       struct uart_port port;
+       struct uart_8250_port uart;
        unsigned long bus_addr;
        unsigned int i;
 
@@ -62,19 +62,19 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
 
        ecard_set_drvdata(ec, info);
 
-       memset(&port, 0, sizeof(struct uart_port));
-       port.irq        = ec->irq;
-       port.flags      = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
-       port.uartclk    = type->uartclk;
-       port.iotype     = UPIO_MEM;
-       port.regshift   = 2;
-       port.dev        = &ec->dev;
+       memset(&uart, 0, sizeof(struct uart_8250_port));
+       uart.port.irq   = ec->irq;
+       uart.port.flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
+       uart.port.uartclk       = type->uartclk;
+       uart.port.iotype        = UPIO_MEM;
+       uart.port.regshift      = 2;
+       uart.port.dev   = &ec->dev;
 
        for (i = 0; i < info->num_ports; i ++) {
-               port.membase = info->vaddr + type->offset[i];
-               port.mapbase = bus_addr + type->offset[i];
+               uart.port.membase = info->vaddr + type->offset[i];
+               uart.port.mapbase = bus_addr + type->offset[i];
 
-               info->ports[i] = serial8250_register_port(&port);
+               info->ports[i] = serial8250_register_8250_port(&uart);
        }
 
        return 0;
index f574eef3075f987b41784c635400f970947e9480..afb955fdef03ec558152853191591e30ba94086b 100644 (file)
@@ -89,7 +89,7 @@ static int dw8250_handle_irq(struct uart_port *p)
 
 static int __devinit dw8250_probe(struct platform_device *pdev)
 {
-       struct uart_port port = {};
+       struct uart_8250_port uart = {};
        struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        struct device_node *np = pdev->dev.of_node;
@@ -104,28 +104,28 @@ static int __devinit dw8250_probe(struct platform_device *pdev)
        data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
-       port.private_data = data;
-
-       spin_lock_init(&port.lock);
-       port.mapbase = regs->start;
-       port.irq = irq->start;
-       port.handle_irq = dw8250_handle_irq;
-       port.type = PORT_8250;
-       port.flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP |
+       uart.port.private_data = data;
+
+       spin_lock_init(&uart.port.lock);
+       uart.port.mapbase = regs->start;
+       uart.port.irq = irq->start;
+       uart.port.handle_irq = dw8250_handle_irq;
+       uart.port.type = PORT_8250;
+       uart.port.flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP |
                UPF_FIXED_PORT | UPF_FIXED_TYPE;
-       port.dev = &pdev->dev;
+       uart.port.dev = &pdev->dev;
 
-       port.iotype = UPIO_MEM;
-       port.serial_in = dw8250_serial_in;
-       port.serial_out = dw8250_serial_out;
+       uart.port.iotype = UPIO_MEM;
+       uart.port.serial_in = dw8250_serial_in;
+       uart.port.serial_out = dw8250_serial_out;
        if (!of_property_read_u32(np, "reg-io-width", &val)) {
                switch (val) {
                case 1:
                        break;
                case 4:
-                       port.iotype = UPIO_MEM32;
-                       port.serial_in = dw8250_serial_in32;
-                       port.serial_out = dw8250_serial_out32;
+                       uart.port.iotype = UPIO_MEM32;
+                       uart.port.serial_in = dw8250_serial_in32;
+                       uart.port.serial_out = dw8250_serial_out32;
                        break;
                default:
                        dev_err(&pdev->dev, "unsupported reg-io-width (%u)\n",
@@ -135,15 +135,15 @@ static int __devinit dw8250_probe(struct platform_device *pdev)
        }
 
        if (!of_property_read_u32(np, "reg-shift", &val))
-               port.regshift = val;
+               uart.port.regshift = val;
 
        if (of_property_read_u32(np, "clock-frequency", &val)) {
                dev_err(&pdev->dev, "no clock-frequency property set\n");
                return -EINVAL;
        }
-       port.uartclk = val;
+       uart.uart.port.uartclk = val;
 
-       data->line = serial8250_register_port(&port);
+       data->line = serial8250_register_8250_port(&uart);
        if (data->line < 0)
                return data->line;
 
index d8c0ffbfa6e39b53bafaef22f2d090e2739613e9..097dff9c08ad9e4ebec835f20800e6d118931bd0 100644 (file)
@@ -26,7 +26,7 @@
 
 static int __init serial_init_chip(struct parisc_device *dev)
 {
-       struct uart_port port;
+       struct uart_8250_port uart;
        unsigned long address;
        int err;
 
@@ -48,21 +48,21 @@ static int __init serial_init_chip(struct parisc_device *dev)
        if (dev->id.sversion != 0x8d)
                address += 0x800;
 
-       memset(&port, 0, sizeof(port));
-       port.iotype     = UPIO_MEM;
+       memset(&uart, 0, sizeof(uart));
+       uart.port.iotype        = UPIO_MEM;
        /* 7.272727MHz on Lasi.  Assumed the same for Dino, Wax and Timi. */
-       port.uartclk    = 7272727;
-       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);
+       uart.port.uartclk       = 7272727;
+       uart.port.mapbase       = address;
+       uart.port.membase       = ioremap_nocache(address, 16);
+       uart.port.irq   = dev->irq;
+       uart.port.flags = UPF_BOOT_AUTOCONF;
+       uart.port.dev   = &dev->dev;
+
+       err = serial8250_register_8250_port(&uart);
        if (err < 0) {
                printk(KERN_WARNING
-                       "serial8250_register_port returned error %d\n", err);
-               iounmap(port.membase);
+                       "serial8250_register_8250_port returned error %d\n", err);
+               iounmap(uart.port.membase);
                return err;
        }
 
index c13438c930129a0b4e736fd67630a1ef9338345b..8f1dd2cc00a8de79ac9538248271d2be376336aa 100644 (file)
@@ -171,7 +171,7 @@ static int __devinit hpdca_init_one(struct dio_dev *d,
                return 0;
        }
 #endif
-       memset(&port, 0, sizeof(struct uart_port));
+       memset(&uart, 0, sizeof(uart));
 
        /* Memory mapped I/O */
        port.iotype = UPIO_MEM;
@@ -182,7 +182,7 @@ static int __devinit hpdca_init_one(struct dio_dev *d,
        port.membase = (char *)(port.mapbase + DIO_VIRADDRBASE);
        port.regshift = 1;
        port.dev = &d->dev;
-       line = serial8250_register_port(&port);
+       line = serial8250_register_8250_port(&uart);
 
        if (line < 0) {
                printk(KERN_NOTICE "8250_hp300: register_serial() DCA scode %d"
@@ -210,7 +210,7 @@ static int __init hp300_8250_init(void)
 #ifdef CONFIG_HPAPCI
        int line;
        unsigned long base;
-       struct uart_port uport;
+       struct uart_8250_port uart;
        struct hp300_port *port;
        int i;
 #endif
@@ -248,26 +248,26 @@ static int __init hp300_8250_init(void)
                if (!port)
                        return -ENOMEM;
 
-               memset(&uport, 0, sizeof(struct uart_port));
+               memset(&uart, 0, sizeof(uart));
 
                base = (FRODO_BASE + FRODO_APCI_OFFSET(i));
 
                /* Memory mapped I/O */
-               uport.iotype = UPIO_MEM;
-               uport.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ \
+               uart.port.iotype = UPIO_MEM;
+               uart.port.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ \
                              | UPF_BOOT_AUTOCONF;
                /* XXX - no interrupt support yet */
-               uport.irq = 0;
-               uport.uartclk = HPAPCI_BAUD_BASE * 16;
-               uport.mapbase = base;
-               uport.membase = (char *)(base + DIO_VIRADDRBASE);
-               uport.regshift = 2;
+               uart.port.irq = 0;
+               uart.port.uartclk = HPAPCI_BAUD_BASE * 16;
+               uart.port.mapbase = base;
+               uart.port.membase = (char *)(base + DIO_VIRADDRBASE);
+               uart.port.regshift = 2;
 
-               line = serial8250_register_port(&uport);
+               line = serial8250_register_8250_port(&uart);
 
                if (line < 0) {
                        printk(KERN_NOTICE "8250_hp300: register_serial() APCI"
-                              " %d irq %d failed\n", i, uport.irq);
+                              " %d irq %d failed\n", i, uart.port.irq);
                        kfree(port);
                        continue;
                }
index 66e5909d0a129b59ea66d6a2500e89b50c290ca3..2ef9a075eec5f3bf9b986833fa894ce15693c1b1 100644 (file)
@@ -44,7 +44,7 @@ struct pci_serial_quirk {
        int     (*init)(struct pci_dev *dev);
        int     (*setup)(struct serial_private *,
                         const struct pciserial_board *,
-                        struct uart_port *, int);
+                        struct uart_8250_port *, int);
        void    (*exit)(struct pci_dev *dev);
 };
 
@@ -59,7 +59,7 @@ struct serial_private {
 };
 
 static int pci_default_setup(struct serial_private*,
-         const struct pciserial_board*, struct uart_port*, int);
+         const struct pciserial_board*, struct uart_8250_port *, int);
 
 static void moan_device(const char *str, struct pci_dev *dev)
 {
@@ -74,7 +74,7 @@ static void moan_device(const char *str, struct pci_dev *dev)
 }
 
 static int
-setup_port(struct serial_private *priv, struct uart_port *port,
+setup_port(struct serial_private *priv, struct uart_8250_port *port,
           int bar, int offset, int regshift)
 {
        struct pci_dev *dev = priv->dev;
@@ -93,17 +93,17 @@ setup_port(struct serial_private *priv, struct uart_port *port,
                if (!priv->remapped_bar[bar])
                        return -ENOMEM;
 
-               port->iotype = UPIO_MEM;
-               port->iobase = 0;
-               port->mapbase = base + offset;
-               port->membase = priv->remapped_bar[bar] + offset;
-               port->regshift = regshift;
+               port->port.iotype = UPIO_MEM;
+               port->port.iobase = 0;
+               port->port.mapbase = base + offset;
+               port->port.membase = priv->remapped_bar[bar] + offset;
+               port->port.regshift = regshift;
        } else {
-               port->iotype = UPIO_PORT;
-               port->iobase = base + offset;
-               port->mapbase = 0;
-               port->membase = NULL;
-               port->regshift = 0;
+               port->port.iotype = UPIO_PORT;
+               port->port.iobase = base + offset;
+               port->port.mapbase = 0;
+               port->port.membase = NULL;
+               port->port.regshift = 0;
        }
        return 0;
 }
@@ -113,7 +113,7 @@ setup_port(struct serial_private *priv, struct uart_port *port,
  */
 static int addidata_apci7800_setup(struct serial_private *priv,
                                const struct pciserial_board *board,
-                               struct uart_port *port, int idx)
+                               struct uart_8250_port *port, int idx)
 {
        unsigned int bar = 0, offset = board->first_offset;
        bar = FL_GET_BASE(board->flags);
@@ -140,7 +140,7 @@ static int addidata_apci7800_setup(struct serial_private *priv,
  */
 static int
 afavlab_setup(struct serial_private *priv, const struct pciserial_board *board,
-             struct uart_port *port, int idx)
+             struct uart_8250_port *port, int idx)
 {
        unsigned int bar, offset = board->first_offset;
 
@@ -195,7 +195,7 @@ static int pci_hp_diva_init(struct pci_dev *dev)
 static int
 pci_hp_diva_setup(struct serial_private *priv,
                const struct pciserial_board *board,
-               struct uart_port *port, int idx)
+               struct uart_8250_port *port, int idx)
 {
        unsigned int offset = board->first_offset;
        unsigned int bar = FL_GET_BASE(board->flags);
@@ -370,7 +370,7 @@ static void __devexit pci_ni8430_exit(struct pci_dev *dev)
 /* SBS Technologies Inc. PMC-OCTPRO and P-OCTAL cards */
 static int
 sbs_setup(struct serial_private *priv, const struct pciserial_board *board,
-               struct uart_port *port, int idx)
+               struct uart_8250_port *port, int idx)
 {
        unsigned int bar, offset = board->first_offset;
 
@@ -525,7 +525,7 @@ static int pci_siig_init(struct pci_dev *dev)
 
 static int pci_siig_setup(struct serial_private *priv,
                          const struct pciserial_board *board,
-                         struct uart_port *port, int idx)
+                         struct uart_8250_port *port, int idx)
 {
        unsigned int bar = FL_GET_BASE(board->flags) + idx, offset = 0;
 
@@ -619,7 +619,7 @@ static int pci_timedia_init(struct pci_dev *dev)
 static int
 pci_timedia_setup(struct serial_private *priv,
                  const struct pciserial_board *board,
-                 struct uart_port *port, int idx)
+                 struct uart_8250_port *port, int idx)
 {
        unsigned int bar = 0, offset = board->first_offset;
 
@@ -653,7 +653,7 @@ pci_timedia_setup(struct serial_private *priv,
 static int
 titan_400l_800l_setup(struct serial_private *priv,
                      const struct pciserial_board *board,
-                     struct uart_port *port, int idx)
+                     struct uart_8250_port *port, int idx)
 {
        unsigned int bar, offset = board->first_offset;
 
@@ -754,7 +754,7 @@ static int pci_ni8430_init(struct pci_dev *dev)
 static int
 pci_ni8430_setup(struct serial_private *priv,
                 const struct pciserial_board *board,
-                struct uart_port *port, int idx)
+                struct uart_8250_port *port, int idx)
 {
        void __iomem *p;
        unsigned long base, len;
@@ -781,7 +781,7 @@ pci_ni8430_setup(struct serial_private *priv,
 
 static int pci_netmos_9900_setup(struct serial_private *priv,
                                const struct pciserial_board *board,
-                               struct uart_port *port, int idx)
+                               struct uart_8250_port *port, int idx)
 {
        unsigned int bar;
 
@@ -1035,7 +1035,7 @@ static int pci_oxsemi_tornado_init(struct pci_dev *dev)
 static int
 pci_default_setup(struct serial_private *priv,
                  const struct pciserial_board *board,
-                 struct uart_port *port, int idx)
+                 struct uart_8250_port *port, int idx)
 {
        unsigned int bar, offset = board->first_offset, maxnr;
 
@@ -1057,15 +1057,15 @@ pci_default_setup(struct serial_private *priv,
 static int
 ce4100_serial_setup(struct serial_private *priv,
                  const struct pciserial_board *board,
-                 struct uart_port *port, int idx)
+                 struct uart_8250_port *port, int idx)
 {
        int ret;
 
        ret = setup_port(priv, port, 0, 0, board->reg_shift);
-       port->iotype = UPIO_MEM32;
-       port->type = PORT_XSCALE;
-       port->flags = (port->flags | UPF_FIXED_PORT | UPF_FIXED_TYPE);
-       port->regshift = 2;
+       port->port.iotype = UPIO_MEM32;
+       port->port.type = PORT_XSCALE;
+       port->port.flags = (port->port.flags | UPF_FIXED_PORT | UPF_FIXED_TYPE);
+       port->port.regshift = 2;
 
        return ret;
 }
@@ -1073,16 +1073,16 @@ ce4100_serial_setup(struct serial_private *priv,
 static int
 pci_omegapci_setup(struct serial_private *priv,
                      const struct pciserial_board *board,
-                     struct uart_port *port, int idx)
+                     struct uart_8250_port *port, int idx)
 {
        return setup_port(priv, port, 2, idx * 8, 0);
 }
 
 static int skip_tx_en_setup(struct serial_private *priv,
                        const struct pciserial_board *board,
-                       struct uart_port *port, int idx)
+                       struct uart_8250_port *port, int idx)
 {
-       port->flags |= UPF_NO_TXEN_TEST;
+       port->port.flags |= UPF_NO_TXEN_TEST;
        printk(KERN_DEBUG "serial8250: skipping TxEn test for device "
                          "[%04x:%04x] subsystem [%04x:%04x]\n",
                          priv->dev->vendor,
@@ -1131,11 +1131,11 @@ static unsigned int kt_serial_in(struct uart_port *p, int offset)
 
 static int kt_serial_setup(struct serial_private *priv,
                           const struct pciserial_board *board,
-                          struct uart_port *port, int idx)
+                          struct uart_8250_port *port, int idx)
 {
-       port->flags |= UPF_BUG_THRE;
-       port->serial_in = kt_serial_in;
-       port->handle_break = kt_handle_break;
+       port->port.flags |= UPF_BUG_THRE;
+       port->port.serial_in = kt_serial_in;
+       port->port.handle_break = kt_handle_break;
        return skip_tx_en_setup(priv, board, port, idx);
 }
 
@@ -1151,9 +1151,9 @@ static int pci_eg20t_init(struct pci_dev *dev)
 static int
 pci_xr17c154_setup(struct serial_private *priv,
                  const struct pciserial_board *board,
-                 struct uart_port *port, int idx)
+                 struct uart_8250_port *port, int idx)
 {
-       port->flags |= UPF_EXAR_EFR;
+       port->port.flags |= UPF_EXAR_EFR;
        return pci_default_setup(priv, board, port, idx);
 }
 
@@ -2720,7 +2720,7 @@ serial_pci_matches(const struct pciserial_board *board,
 struct serial_private *
 pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
 {
-       struct uart_port serial_port;
+       struct uart_8250_port uart;
        struct serial_private *priv;
        struct pci_serial_quirk *quirk;
        int rc, nr_ports, i;
@@ -2760,22 +2760,22 @@ pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
        priv->dev = dev;
        priv->quirk = quirk;
 
-       memset(&serial_port, 0, sizeof(struct uart_port));
-       serial_port.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
-       serial_port.uartclk = board->base_baud * 16;
-       serial_port.irq = get_pci_irq(dev, board);
-       serial_port.dev = &dev->dev;
+       memset(&uart, 0, sizeof(uart));
+       uart.port.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
+       uart.port.uartclk = board->base_baud * 16;
+       uart.port.irq = get_pci_irq(dev, board);
+       uart.port.dev = &dev->dev;
 
        for (i = 0; i < nr_ports; i++) {
-               if (quirk->setup(priv, board, &serial_port, i))
+               if (quirk->setup(priv, board, &uart, i))
                        break;
 
 #ifdef SERIAL_DEBUG_PCI
                printk(KERN_DEBUG "Setup PCI port: port %lx, irq %d, type %d\n",
-                      serial_port.iobase, serial_port.irq, serial_port.iotype);
+                      uart.port.iobase, uart.port.irq, uart.port.iotype);
 #endif
 
-               priv->line[i] = serial8250_register_port(&serial_port);
+               priv->line[i] = serial8250_register_8250_port(&uart);
                if (priv->line[i] < 0) {
                        printk(KERN_WARNING "Couldn't register serial port %s: %d\n", pci_name(dev), priv->line[i]);
                        break;
index a2f236510ff1cd3f7fc92524f6096dc8678946f0..fde5aa60d51e92391dfdb996a7065d25d4f12c00 100644 (file)
@@ -424,7 +424,7 @@ static int __devinit serial_pnp_guess_board(struct pnp_dev *dev, int *flags)
 static int __devinit
 serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
 {
-       struct uart_port port;
+       struct uart_8250_port uart;
        int ret, line, flags = dev_id->driver_data;
 
        if (flags & UNKNOWN_DEV) {
@@ -433,32 +433,32 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
                        return ret;
        }
 
-       memset(&port, 0, sizeof(struct uart_port));
+       memset(&uart, 0, sizeof(uart));
        if (pnp_irq_valid(dev, 0))
-               port.irq = pnp_irq(dev, 0);
+               uart.port.irq = pnp_irq(dev, 0);
        if (pnp_port_valid(dev, 0)) {
-               port.iobase = pnp_port_start(dev, 0);
-               port.iotype = UPIO_PORT;
+               uart.port.iobase = pnp_port_start(dev, 0);
+               uart.port.iotype = UPIO_PORT;
        } else if (pnp_mem_valid(dev, 0)) {
-               port.mapbase = pnp_mem_start(dev, 0);
-               port.iotype = UPIO_MEM;
-               port.flags = UPF_IOREMAP;
+               uart.port.mapbase = pnp_mem_start(dev, 0);
+               uart.port.iotype = UPIO_MEM;
+               uart.port.flags = UPF_IOREMAP;
        } else
                return -ENODEV;
 
 #ifdef SERIAL_DEBUG_PNP
        printk(KERN_DEBUG
                "Setup PNP port: port %x, mem 0x%lx, irq %d, type %d\n",
-                      port.iobase, port.mapbase, port.irq, port.iotype);
+                      uart.port.iobase, uart.port.mapbase, uart.port.irq, uart.port.iotype);
 #endif
 
-       port.flags |= UPF_SKIP_TEST | UPF_BOOT_AUTOCONF;
+       uart.port.flags |= UPF_SKIP_TEST | UPF_BOOT_AUTOCONF;
        if (pnp_irq_flags(dev, 0) & IORESOURCE_IRQ_SHAREABLE)
-               port.flags |= UPF_SHARE_IRQ;
-       port.uartclk = 1843200;
-       port.dev = &dev->dev;
+               uart.port.flags |= UPF_SHARE_IRQ;
+       uart.port.uartclk = 1843200;
+       uart.port.dev = &dev->dev;
 
-       line = serial8250_register_port(&port);
+       line = serial8250_register_8250_port(&uart);
        if (line < 0)
                return -ENODEV;
 
index 29b695d041ecd45cdfe18914b8c02d10ff7f79a5..b7d48b346393f08e2a44c88fa0e2c99e3a9c652b 100644 (file)
@@ -73,7 +73,7 @@ struct serial_quirk {
        unsigned int prodid;
        int multi;              /* 1 = multifunction, > 1 = # ports */
        void (*config)(struct pcmcia_device *);
-       void (*setup)(struct pcmcia_device *, struct uart_port *);
+       void (*setup)(struct pcmcia_device *, struct uart_8250_port *);
        void (*wakeup)(struct pcmcia_device *);
        int (*post)(struct pcmcia_device *);
 };
@@ -105,9 +105,9 @@ struct serial_cfg_mem {
  * Elan VPU16551 UART with 14.7456MHz oscillator
  * manfid 0x015D, 0x4C45
  */
-static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port)
+static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_8250_port *uart)
 {
-       port->uartclk = 14745600;
+       uart->port.uartclk = 14745600;
 }
 
 static int quirk_post_ibm(struct pcmcia_device *link)
@@ -343,25 +343,25 @@ static void serial_detach(struct pcmcia_device *link)
 static int setup_serial(struct pcmcia_device *handle, struct serial_info * info,
                        unsigned int iobase, int irq)
 {
-       struct uart_port port;
+       struct uart_8250_port uart;
        int line;
 
-       memset(&port, 0, sizeof (struct uart_port));
-       port.iobase = iobase;
-       port.irq = irq;
-       port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ;
-       port.uartclk = 1843200;
-       port.dev = &handle->dev;
+       memset(&uart, 0, sizeof(uart));
+       uart.port.iobase = iobase;
+       uart.port.irq = irq;
+       uart.port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ;
+       uart.port.uartclk = 1843200;
+       uart.port.dev = &handle->dev;
        if (buggy_uart)
-               port.flags |= UPF_BUGGY_UART;
+               uart.port.flags |= UPF_BUGGY_UART;
 
        if (info->quirk && info->quirk->setup)
-               info->quirk->setup(handle, &port);
+               info->quirk->setup(handle, &uart);
 
-       line = serial8250_register_port(&port);
+       line = serial8250_register_8250_port(&uart);
        if (line < 0) {
-               printk(KERN_NOTICE "serial_cs: serial8250_register_port() at "
-                      "0x%04lx, irq %d failed\n", (u_long)iobase, irq);
+               pr_err("serial_cs: serial8250_register_8250_port() at 0x%04lx, irq %d failed\n",
+                                                       (unsigned long)iobase, irq);
                return -EINVAL;
        }
 
index a416e92012ef72db74f1d9ffe2c54bbe2c98b217..f41dcc9492181eb5602c6989a89c8e6f8346c172 100644 (file)
@@ -69,7 +69,6 @@ struct uart_port;
 struct uart_8250_port;
 
 int serial8250_register_8250_port(struct uart_8250_port *);
-int serial8250_register_port(struct uart_port *);
 void serial8250_unregister_port(int line);
 void serial8250_suspend_port(int line);
 void serial8250_resume_port(int line);