diff options
| author | Ariff Abdullah <ariff@FreeBSD.org> | 2006-01-10 06:52:59 +0000 |
|---|---|---|
| committer | Ariff Abdullah <ariff@FreeBSD.org> | 2006-01-10 06:52:59 +0000 |
| commit | c02b454debff2b332ee352b77f991e5514ff288f (patch) | |
| tree | ab81c604ce1271d167e4b19b2be2cea84be478ca | |
| parent | 9df1a6dd61cc4997fa412d792dcd190ec48b85b6 (diff) | |
Notes
| -rw-r--r-- | sys/dev/sound/pci/ich.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/dev/sound/pci/ich.c b/sys/dev/sound/pci/ich.c index 49bacaf14486..638f66371a9f 100644 --- a/sys/dev/sound/pci/ich.c +++ b/sys/dev/sound/pci/ich.c @@ -737,6 +737,7 @@ ich_pci_probe(device_t dev) static int ich_pci_attach(device_t dev) { + uint32_t subdev; u_int16_t extcaps; uint16_t devid, vendor; struct sc_info *sc; @@ -752,6 +753,7 @@ ich_pci_attach(device_t dev) vendor = sc->vendor = pci_get_vendor(dev); devid = sc->devid = pci_get_device(dev); + subdev = (pci_get_subdevice(dev) << 16) | pci_get_subvendor(dev); /* * The SiS 7012 register set isn't quite like the standard ich. * There really should be a general "quirks" mechanism. @@ -831,13 +833,18 @@ ich_pci_attach(device_t dev) goto bad; /* - * Turn on inverted external amplifier sense flags for ICH4/82801DB. - * Does ICH3/82801CA need this too ? I left them out for now. - * - * http://lists.freebsd.org/pipermail/freebsd-multimedia/2003-November/000531.html + * Turn on inverted external amplifier sense flags for few + * 'special' boards. */ - if (vendor == INTEL_VENDORID && devid == INTEL_82801DB) + switch (subdev) { + case 0x203a161f: /* Gateway 4028GZ */ + case 0x8144104d: /* Sony - VAIO PCG-TR* */ + case 0x8197104d: /* Sony S1XP */ ac97_setflags(sc->codec, ac97_getflags(sc->codec) | AC97_F_EAPD_INV); + break; + default: + break; + } mixer_init(dev, ac97_getmixerclass(), sc->codec); |
