diff options
Diffstat (limited to 'sys/dev')
-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 { |