diff options
Diffstat (limited to 'sys/dev/uart/uart_bus_ebus.c')
-rw-r--r-- | sys/dev/uart/uart_bus_ebus.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/uart/uart_bus_ebus.c b/sys/dev/uart/uart_bus_ebus.c index 9445c18..8e7520b 100644 --- a/sys/dev/uart/uart_bus_ebus.c +++ b/sys/dev/uart/uart_bus_ebus.c @@ -61,7 +61,7 @@ static driver_t uart_ebus_driver = { static int uart_ebus_probe(device_t dev) { - const char *nm; + const char *nm, *cmpt; struct uart_softc *sc; int error; @@ -69,7 +69,9 @@ uart_ebus_probe(device_t dev) sc->sc_class = NULL; nm = ebus_get_name(dev); - if (!strcmp(nm, "su")) { + cmpt = ebus_get_compat(dev); + if (!strcmp(nm, "su") || !strcmp(nm, "su_pnp") || (cmpt != NULL && + (!strcmp(cmpt, "su") || !strcmp(cmpt, "su16550")))) { sc->sc_class = &uart_ns8250_class; return (uart_bus_probe(dev, 0, 0, 0, 0)); } |