summaryrefslogtreecommitdiff
path: root/sys/dev/sound/pci
diff options
context:
space:
mode:
authorAlexander Leidinger <netchild@FreeBSD.org>2009-02-11 10:29:45 +0000
committerAlexander Leidinger <netchild@FreeBSD.org>2009-02-11 10:29:45 +0000
commit3141a8dcd1013f389091a8e322ebd94bf1a7ddb7 (patch)
treebda69375ee6a41830a011dac36c71014771f36fb /sys/dev/sound/pci
parent0dca64d80da689e6c312f797a0073d9305a5a2f0 (diff)
Notes
Diffstat (limited to 'sys/dev/sound/pci')
-rw-r--r--sys/dev/sound/pci/envy24.c49
-rw-r--r--sys/dev/sound/pci/envy24ht.c15
-rw-r--r--sys/dev/sound/pci/spicds.c5
3 files changed, 62 insertions, 7 deletions
diff --git a/sys/dev/sound/pci/envy24.c b/sys/dev/sound/pci/envy24.c
index e35b456a6e40..0fd57d821efc 100644
--- a/sys/dev/sound/pci/envy24.c
+++ b/sys/dev/sound/pci/envy24.c
@@ -20,7 +20,7 @@
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHERIN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
@@ -278,7 +278,7 @@ static struct cfg_info cfg_table[] = {
"Envy24 audio (M Audio Delta Dio 2496)",
0x1412, 0xd631,
0x10, 0x80, 0xf0, 0x03,
- 0xff, 0x00, 0x00,
+ 0x02, 0xc0, 0xfd,
0x10, 0x20, 0x40, 0x00, 0x00,
0x00,
&delta_codec,
@@ -301,6 +301,51 @@ static struct cfg_info cfg_table[] = {
0x00,
&delta_codec,
},
+ {
+ "Envy24 audio (M Audio Delta 66)",
+ 0x1412, 0xd632,
+ 0x15, 0x80, 0xf0, 0x03,
+ 0x02, 0xc0, 0xfd,
+ 0x10, 0x20, 0x40, 0x00, 0x00,
+ 0x00,
+ &delta_codec,
+ },
+ {
+ "Envy24 audio (M Audio Delta 44)",
+ 0x1412, 0xd633,
+ 0x15, 0x80, 0xf0, 0x00,
+ 0x02, 0xc0, 0xfd,
+ 0x10, 0x20, 0x40, 0x00, 0x00,
+ 0x00,
+ &delta_codec,
+ },
+ {
+ "Envy24 audio (M Audio Delta 1010)",
+ 0x1412, 0xd630,
+ 0x1f, 0x80, 0xf0, 0x03,
+ 0x22, 0xd0, 0xdd,
+ 0x10, 0x20, 0x40, 0x00, 0x00,
+ 0x00,
+ &delta_codec,
+ },
+ {
+ "Envy24 audio (M Audio Delta 1010LT)",
+ 0x1412, 0xd63b,
+ 0x1f, 0x80, 0x72, 0x03,
+ 0x04, 0x7e, 0xfb,
+ 0x08, 0x02, 0x70, 0x00, 0x00,
+ 0x00,
+ &delta_codec,
+ },
+ {
+ "Envy24 audio (Terratec EWX 2496)",
+ 0x153b, 0x1130,
+ 0x10, 0x80, 0xf0, 0x03,
+ 0xc0, 0x3f, 0x3f,
+ 0x10, 0x20, 0x01, 0x01, 0x00,
+ 0x00,
+ &delta_codec,
+ },
{
"Envy24 audio (Generic)",
0, 0,
diff --git a/sys/dev/sound/pci/envy24ht.c b/sys/dev/sound/pci/envy24ht.c
index a3e4f36a07dc..a9d32e1b2010 100644
--- a/sys/dev/sound/pci/envy24ht.c
+++ b/sys/dev/sound/pci/envy24ht.c
@@ -323,7 +323,7 @@ static struct cfg_info cfg_table[] = {
0x153b, 0x1150,
0x10, 0x80, 0xf0, 0xc3,
0x7ffbc7, 0x7fffff, 0x438,
- 0x20, 0x10, 0x400, 0x00, 0x00,
+ 0x10, 0x20, 0x400, 0x01, 0x00,
0,
&spi_codec,
},
@@ -349,7 +349,7 @@ static struct cfg_info cfg_table[] = {
"Envy24HT audio (M-Audio Revolution 7.1)",
0x1412, 0x3630,
0x43, 0x80, 0xf8, 0xc1,
- 0x3fff85, 0x72, 0x4000fa,
+ 0x3fff85, 0x400072, 0x4000fa,
0x08, 0x02, 0x20, 0x00, 0x04,
0,
&spi_codec,
@@ -358,7 +358,7 @@ static struct cfg_info cfg_table[] = {
"Envy24GT audio (M-Audio Revolution 5.1)",
0x1412, 0x3631,
0x42, 0x80, 0xf8, 0xc1,
- 0x3fff85, 0x72, 0x4000fa,
+ 0x3fff05, 0x4000f0, 0x4000fa,
0x08, 0x02, 0x10, 0x00, 0x03,
0,
&spi_codec,
@@ -391,6 +391,15 @@ static struct cfg_info cfg_table[] = {
&spi_codec,
},
{
+ "Envy24HT-S audio (Terrasoniq TS22PCI)",
+ 0x153b, 0x117b,
+ 0x10, 0x80, 0xf0, 0xc3,
+ 0x7ffbc7, 0x7fffff, 0x438,
+ 0x10, 0x20, 0x400, 0x01, 0x00,
+ 0,
+ &spi_codec,
+ },
+ {
"Envy24HT audio (Generic)",
0, 0,
0x0b, 0x80, 0xfc, 0xc3,
diff --git a/sys/dev/sound/pci/spicds.c b/sys/dev/sound/pci/spicds.c
index d559a6c6c350..af61b045f364 100644
--- a/sys/dev/sound/pci/spicds.c
+++ b/sys/dev/sound/pci/spicds.c
@@ -234,7 +234,7 @@ spicds_init(struct spicds_info *codec)
if (codec->type == SPICDS_TYPE_AK4358)
spicds_wrcd(codec, 0x00, 0x07); /* I2S, 24bit, power-up */
if (codec->type == SPICDS_TYPE_AK4381)
- spicds_wrcd(codec, 0x00, 0x0f); /* I2S, 24bit, power-up */
+ spicds_wrcd(codec, 0x00, 0x8f); /* I2S, 24bit, power-up */
if (codec->type == SPICDS_TYPE_AK4396)
spicds_wrcd(codec, 0x00, 0x07); /* I2S, 24bit, power-up */
snd_mtxunlock(codec->lock);
@@ -296,7 +296,8 @@ spicds_set(struct spicds_info *codec, int dir, unsigned int left, unsigned int r
case SPICDS_TYPE_WM8770:
right = right + 27;
break;
- case SPICDS_TYPE_AK4381 || SPICDS_TYPE_AK4396:
+ case SPICDS_TYPE_AK4381:
+ case SPICDS_TYPE_AK4396:
right = right * 255 / 100;
break;
default: