summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2001-06-23 18:00:06 +0000
committercg <cg@FreeBSD.org>2001-06-23 18:00:06 +0000
commitb8c0fa4aba155281cef2563ff3efa2bd404bd50a (patch)
tree362edb3c3121c5ea95f4210529a414d9af0c0700
parent31ec6670ae9a15fc8eb75fe6f19740f0bf729300 (diff)
downloadFreeBSD-src-b8c0fa4aba155281cef2563ff3efa2bd404bd50a.zip
FreeBSD-src-b8c0fa4aba155281cef2563ff3efa2bd404bd50a.tar.gz
the turtle beach santacruz implements ac97 eapd in an inverted sense -
inform the ac97 code of this.
-rw-r--r--sys/dev/sound/pci/csa.c25
-rw-r--r--sys/dev/sound/pci/csapcm.c2
-rw-r--r--sys/dev/sound/pci/csavar.h1
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. */
OpenPOWER on IntegriCloud