tree 68046518782408b540c41645ee75ac155f3b332a
parent 3d483f47579461a4715db33c68ef8752e5a97a2d
author Bjorn Helgaas <[EMAIL PROTECTED]> Sat, 30 Jul 2005 04:03:30 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Sat, 30 Jul 2005 05:01:13 -0700

[PATCH] serial: add MMIO support to 8250_pnp

Add support for UARTs in MMIO space and clean up a little whitespace.

HP legacy-free ia64 machines need this.

Signed-off-by: Bjorn Helgaas <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/serial/8250_pnp.c |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c
--- a/drivers/serial/8250_pnp.c
+++ b/drivers/serial/8250_pnp.c
@@ -394,7 +394,7 @@ static int __devinit serial_pnp_guess_bo
 }
 
 static int __devinit
-serial_pnp_probe(struct pnp_dev * dev, const struct pnp_device_id *dev_id)
+serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
 {
        struct uart_port port;
        int ret, line, flags = dev_id->driver_data;
@@ -406,15 +406,23 @@ serial_pnp_probe(struct pnp_dev * dev, c
        }
 
        memset(&port, 0, sizeof(struct uart_port));
-       port.irq = pnp_irq(dev,0);
-       port.iobase = pnp_port_start(dev, 0);
+       port.irq = pnp_irq(dev, 0);
+       if (pnp_port_valid(dev, 0)) {
+               port.iobase = pnp_port_start(dev, 0);
+               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;
+       } else
+               return -ENODEV;
 
 #ifdef SERIAL_DEBUG_PNP
-       printk("Setup PNP port: port %x, irq %d, type %d\n",
-              port.iobase, port.irq, port.iotype);
+       printk("Setup PNP port: port %x, mem 0x%lx, irq %d, type %d\n",
+              port.iobase, port.mapbase, port.irq, port.iotype);
 #endif
 
-       port.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF;
+       port.flags |= UPF_SKIP_TEST | UPF_BOOT_AUTOCONF;
        port.uartclk = 1843200;
        port.dev = &dev->dev;
 
@@ -426,7 +434,7 @@ serial_pnp_probe(struct pnp_dev * dev, c
 
 }
 
-static void __devexit serial_pnp_remove(struct pnp_dev * dev)
+static void __devexit serial_pnp_remove(struct pnp_dev *dev)
 {
        long line = (long)pnp_get_drvdata(dev);
        if (line)
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to