- memset(&serial_req, 0, sizeof(serial_req));
- serial_req.irq = pnp_irq(dev,0);
- serial_req.port = pnp_port_start(dev, 0);
- if (HIGH_BITS_OFFSET)
- serial_req.port = pnp_port_start(dev, 0) >> HIGH_BITS_OFFSET;
+
+ memset(&port, 0, sizeof(struct uart_port));
+ 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;
+