diff options
| author | Marcel Moolenaar <marcel@FreeBSD.org> | 2003-09-26 05:14:56 +0000 |
|---|---|---|
| committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2003-09-26 05:14:56 +0000 |
| commit | 875f70dba4ac5331af98ce31da9e3f02bdf2af21 (patch) | |
| tree | d9aaac35b0191aeab19f23c33c5d34bb16d77724 /sys/dev/uart/uart_bus_puc.c | |
| parent | 153bbe3e6abc91627b1dcd8e255903e9c4079cdc (diff) | |
Notes
Diffstat (limited to 'sys/dev/uart/uart_bus_puc.c')
| -rw-r--r-- | sys/dev/uart/uart_bus_puc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/uart/uart_bus_puc.c b/sys/dev/uart/uart_bus_puc.c index 94b042ef4d39..7277df99fc41 100644 --- a/sys/dev/uart/uart_bus_puc.c +++ b/sys/dev/uart/uart_bus_puc.c @@ -63,7 +63,7 @@ uart_puc_probe(device_t dev) { device_t parent; struct uart_softc *sc; - uintptr_t rclk, regshft, type; + uintptr_t port, rclk, regshft, type; parent = device_get_parent(dev); sc = device_get_softc(dev); @@ -73,12 +73,17 @@ uart_puc_probe(device_t dev) switch (type) { case PUC_PORT_UART_NS8250: sc->sc_class = &uart_ns8250_class; + port = 0; break; case PUC_PORT_UART_SAB82532: sc->sc_class = &uart_sab82532_class; + if (BUS_READ_IVAR(parent, dev, PUC_IVAR_PORT, &port)) + port = 0; break; case PUC_PORT_UART_Z8530: sc->sc_class = &uart_z8530_class; + if (BUS_READ_IVAR(parent, dev, PUC_IVAR_PORT, &port)) + port = 0; break; default: return (ENXIO); @@ -88,7 +93,7 @@ uart_puc_probe(device_t dev) rclk = 0; if (BUS_READ_IVAR(parent, dev, PUC_IVAR_REGSHFT, ®shft)) regshft = 0; - return (uart_bus_probe(dev, regshft, rclk, 0)); + return (uart_bus_probe(dev, regshft, rclk, 0, port)); } DRIVER_MODULE(uart, puc, uart_puc_driver, uart_devclass, 0, 0); |
