diff options
author | marcel <marcel@FreeBSD.org> | 2013-07-25 16:57:27 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2013-07-25 16:57:27 +0000 |
commit | 1d38cd38265373a21a05faf71418cde7b66964b8 (patch) | |
tree | 263224b27239db3f1f75947be95238360c6f47cd | |
parent | f6535606ea17dfb84e0f664b8912bdb63d2b85b9 (diff) | |
download | FreeBSD-src-1d38cd38265373a21a05faf71418cde7b66964b8.zip FreeBSD-src-1d38cd38265373a21a05faf71418cde7b66964b8.tar.gz |
Set the device description after we call uart_probe(). In uart_probe()
we call device-specific probe functions, which can (and typically will)
set the device description based on low-level device probe information.
In the end we never actually used the device description that we so
carefully maintained in the PCI match table. By setting the device
description after we call uart_probe(), we'll print the more user-
friendly description by default.
-rw-r--r-- | sys/dev/uart/uart_bus_pci.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/uart/uart_bus_pci.c b/sys/dev/uart/uart_bus_pci.c index 062c379..6419ebb 100644 --- a/sys/dev/uart/uart_bus_pci.c +++ b/sys/dev/uart/uart_bus_pci.c @@ -162,6 +162,7 @@ uart_pci_probe(device_t dev) { struct uart_softc *sc; const struct pci_id *id; + int result; sc = device_get_softc(dev); @@ -174,9 +175,14 @@ uart_pci_probe(device_t dev) return (ENXIO); match: + result = uart_bus_probe(dev, 0, id->rclk, id->rid, 0); + /* Bail out on error. */ + if (result > 0) + return (result); + /* Set/override the device description. */ if (id->desc) device_set_desc(dev, id->desc); - return (uart_bus_probe(dev, 0, id->rclk, id->rid, 0)); + return (result); } DRIVER_MODULE(uart, pci, uart_pci_driver, uart_devclass, NULL, NULL); |