diff options
author | cg <cg@FreeBSD.org> | 2000-01-29 00:18:29 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2000-01-29 00:18:29 +0000 |
commit | c7803fdb7dbacae75b89520eb42515b6b76152cc (patch) | |
tree | 0112c22e74c0b01110c6509ce2efb7ce3a0efbd9 | |
parent | d6a7c1c5542b380478d7d3da71a7f1dbcc18e10d (diff) | |
download | FreeBSD-src-c7803fdb7dbacae75b89520eb42515b6b76152cc.zip FreeBSD-src-c7803fdb7dbacae75b89520eb42515b6b76152cc.tar.gz |
differentiate cmi8330 and als100 pnp cards based on their vendor id. this
is a kludge for 4.0
-rw-r--r-- | sys/dev/sound/isa/mss.c | 6 | ||||
-rw-r--r-- | sys/dev/sound/isa/sbc.c | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/sys/dev/sound/isa/mss.c b/sys/dev/sound/isa/mss.c index c7db5b8..6a1a3ed 100644 --- a/sys/dev/sound/isa/mss.c +++ b/sys/dev/sound/isa/mss.c @@ -1343,6 +1343,12 @@ static struct isa_pnp_id pnpmss_ids[] = { static int pnpmss_probe(device_t dev) { + u_int32_t lid, vid; + + lid = isa_get_logicalid(dev); + vid = isa_get_vendorid(dev); + if (lid == 0x01000000 && vid != 0x0100a90d) /* CMI0001 */ + return ENXIO; return ISA_PNP_PROBE(device_get_parent(dev), dev, pnpmss_ids); } diff --git a/sys/dev/sound/isa/sbc.c b/sys/dev/sound/isa/sbc.c index d11d413..2178ff3 100644 --- a/sys/dev/sound/isa/sbc.c +++ b/sys/dev/sound/isa/sbc.c @@ -220,8 +220,13 @@ static int sbc_probe(device_t dev) { char *s = NULL; - u_int32_t logical_id = isa_get_logicalid(dev); - if (logical_id) { + u_int32_t lid, vid; + + lid = isa_get_logicalid(dev); + vid = isa_get_vendorid(dev); + if (lid) { + if (lid == 0x01000000 && vid != 0x01009305) /* ALS0001 */ + return ENXIO; /* Check pnp ids */ return ISA_PNP_PROBE(device_get_parent(dev), dev, sbc_ids); } else { |