diff options
-rw-r--r-- | sys/dev/sound/pci/csa.c | 25 | ||||
-rw-r--r-- | sys/dev/sound/pci/csapcm.c | 2 | ||||
-rw-r--r-- | sys/dev/sound/pci/csavar.h | 1 |
3 files changed, 15 insertions, 13 deletions
diff --git a/sys/dev/sound/pci/csa.c b/sys/dev/sound/pci/csa.c index 02f37db..015ae94 100644 --- a/sys/dev/sound/pci/csa.c +++ b/sys/dev/sound/pci/csa.c @@ -54,7 +54,6 @@ #define CS4610_PCI_ID 0x60011013 #define CS4614_PCI_ID 0x60031013 #define CS4615_PCI_ID 0x60041013 -#define CS4281_PCI_ID 0x60051013 /* Here is the parameter structure per a device. */ struct csa_softc { @@ -149,27 +148,27 @@ clkrun_hack(int run) } static struct csa_card cards_4610[] = { - {0, 0, "Unknown/invalid SSID (CS4610)", NULL, NULL, NULL }, + {0, 0, "Unknown/invalid SSID (CS4610)", NULL, NULL, NULL, 0}, }; static struct csa_card cards_4614[] = { - {0x1489, 0x7001, "Genius Soundmaker 128 value", amp_none, NULL, NULL}, - {0x5053, 0x3357, "Turtle Beach Santa Cruz", amp_voyetra, NULL, NULL}, - {0x1071, 0x6003, "Mitac MI6020/21", amp_voyetra, NULL, NULL}, - {0x14AF, 0x0050, "Hercules Game Theatre XP", NULL, NULL, NULL}, - {0x1681, 0x0050, "Hercules Game Theatre XP", NULL, NULL, NULL}, + {0x1489, 0x7001, "Genius Soundmaker 128 value", amp_none, NULL, NULL, 0}, + {0x5053, 0x3357, "Turtle Beach Santa Cruz", amp_voyetra, NULL, NULL, 1}, + {0x1071, 0x6003, "Mitac MI6020/21", amp_voyetra, NULL, NULL, 0}, + {0x14AF, 0x0050, "Hercules Game Theatre XP", NULL, NULL, NULL, 0}, + {0x1681, 0x0050, "Hercules Game Theatre XP", NULL, NULL, NULL, 0}, /* Not sure if the 570 needs the clkrun hack */ - {0x1014, 0x0132, "Thinkpad 570", amp_none, NULL, clkrun_hack}, - {0x1014, 0x0153, "Thinkpad 600X/A20/T20", amp_none, NULL, clkrun_hack}, - {0x1014, 0x1010, "Thinkpad 600E (unsupported)", NULL, NULL, NULL}, - {0, 0, "Unknown/invalid SSID (CS4614)", NULL, NULL, NULL }, + {0x1014, 0x0132, "Thinkpad 570", amp_none, NULL, clkrun_hack, 0}, + {0x1014, 0x0153, "Thinkpad 600X/A20/T20", amp_none, NULL, clkrun_hack, 0}, + {0x1014, 0x1010, "Thinkpad 600E (unsupported)", NULL, NULL, NULL, 0}, + {0, 0, "Unknown/invalid SSID (CS4614)", NULL, NULL, NULL, 0}, }; static struct csa_card cards_4615[] = { - {0, 0, "Unknown/invalid SSID (CS4615)", NULL, NULL, NULL }, + {0, 0, "Unknown/invalid SSID (CS4615)", NULL, NULL, NULL, 0}, }; -static struct csa_card nocard = {0, 0, "unknown", NULL, NULL, NULL }; +static struct csa_card nocard = {0, 0, "unknown", NULL, NULL, NULL, 0}; struct card_type { u_int32_t devid; diff --git a/sys/dev/sound/pci/csapcm.c b/sys/dev/sound/pci/csapcm.c index a52e08e..6302781 100644 --- a/sys/dev/sound/pci/csapcm.c +++ b/sys/dev/sound/pci/csapcm.c @@ -779,6 +779,8 @@ pcmcsa_attach(device_t dev) csa_releaseres(csa, dev); return (ENXIO); } + if (csa->card->inv_eapd) + ac97_setflags(codec, AC97_F_EAPD_INV); if (mixer_init(dev, ac97_getmixerclass(), codec) == -1) { ac97_destroy(codec); csa_releaseres(csa, dev); diff --git a/sys/dev/sound/pci/csavar.h b/sys/dev/sound/pci/csavar.h index e2055a4..f46a625 100644 --- a/sys/dev/sound/pci/csavar.h +++ b/sys/dev/sound/pci/csavar.h @@ -34,6 +34,7 @@ struct csa_card { void *amp; void *amp_init; int (*active)(int); + int inv_eapd; }; /* Resources. */ |