summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2013-07-25 16:57:27 +0000
committermarcel <marcel@FreeBSD.org>2013-07-25 16:57:27 +0000
commit1d38cd38265373a21a05faf71418cde7b66964b8 (patch)
tree263224b27239db3f1f75947be95238360c6f47cd
parentf6535606ea17dfb84e0f664b8912bdb63d2b85b9 (diff)
downloadFreeBSD-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.c8
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);
OpenPOWER on IntegriCloud