summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorKen Smith <kensmith@FreeBSD.org>2005-10-27 20:58:50 +0000
committerKen Smith <kensmith@FreeBSD.org>2005-10-27 20:58:50 +0000
commit18d2ca12a1cf1de7991c38fd1bd689c71d2c6480 (patch)
tree36fd93d0489e449988a98a844bf25c4b81671e57 /sys/dev
parent8cb3b5729f11f39e85909562efd0464edbab4887 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/uart/uart_bus_ebus.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/dev/uart/uart_bus_ebus.c b/sys/dev/uart/uart_bus_ebus.c
index 16a4411dccda..6da03a1c351f 100644
--- a/sys/dev/uart/uart_bus_ebus.c
+++ b/sys/dev/uart/uart_bus_ebus.c
@@ -93,6 +93,21 @@ uart_ebus_probe(device_t dev)
device_disable(dev);
return (ENXIO);
}
+ /*
+ * XXX Hack
+ * On E250 the IRQ of the on-board HME gets erroneously
+ * also assigned to the second NS16550 due to interrupt
+ * routing problems at some layer. As uart(4) uses a
+ * INTR_FAST handler while hme(4) doesn't the IRQ can't
+ * be actually "shared" causing hme(4) to not attach to
+ * the on-board HME. Prefer the on-board HME at the
+ * expense of the mouse port for now.
+ */
+ if (!strcmp(sparc64_model, "SUNW,Ultra-250") &&
+ device_get_unit(dev) % 2 == 1) {
+ device_disable(dev);
+ return (ENXIO);
+ }
sc->sc_class = &uart_ns8250_class;
return (uart_bus_probe(dev, 0, 0, 0, 0));
}