summaryrefslogtreecommitdiffstats
path: root/sys/dev/atkbdc
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2010-12-21 12:49:37 +0000
committerjhb <jhb@FreeBSD.org>2010-12-21 12:49:37 +0000
commit0fe57d1c6f569202d830abf45ec5ac8d44e7dcd8 (patch)
tree41d921ffecc1591c9e45e648c77823f791fe2252 /sys/dev/atkbdc
parent9769bb9f832edae84aa67c1e56c8c17ad5110956 (diff)
downloadFreeBSD-src-0fe57d1c6f569202d830abf45ec5ac8d44e7dcd8.zip
FreeBSD-src-0fe57d1c6f569202d830abf45ec5ac8d44e7dcd8.tar.gz
Only use the BIOS-supplied IRQ for the atkbdc device for a child atkbd
device. Specifically, do not reuse it for a child psm device. Tested by: many
Diffstat (limited to 'sys/dev/atkbdc')
-rw-r--r--sys/dev/atkbdc/atkbdc_isa.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/dev/atkbdc/atkbdc_isa.c b/sys/dev/atkbdc/atkbdc_isa.c
index d553216..50f0b4e 100644
--- a/sys/dev/atkbdc/atkbdc_isa.c
+++ b/sys/dev/atkbdc/atkbdc_isa.c
@@ -272,14 +272,16 @@ atkbdc_isa_add_child(device_t bus, u_int order, const char *name, int unit)
* list entry so we can use a standard bus_get_resource()
* method.
*/
- if (sc->irq == NULL) {
- if (resource_int_value(name, unit, "irq", &t) != 0)
- t = -1;
- } else
- t = rman_get_start(sc->irq);
- if (t > 0)
- resource_list_add(&ivar->resources, SYS_RES_IRQ, ivar->rid,
- t, t, 1);
+ if (order == KBDC_RID_KBD) {
+ if (sc->irq == NULL) {
+ if (resource_int_value(name, unit, "irq", &t) != 0)
+ t = -1;
+ } else
+ t = rman_get_start(sc->irq);
+ if (t > 0)
+ resource_list_add(&ivar->resources, SYS_RES_IRQ,
+ ivar->rid, t, t, 1);
+ }
if (resource_disabled(name, unit))
device_disable(child);
OpenPOWER on IntegriCloud