Update of /cvsroot/alsa/alsa-kernel/pci
In directory sc8-pr-cvs1:/tmp/cvs-serv18992/pci
Modified Files:
via82xx.c
Log Message:
- added dxs_support=4 option. no VRA is used for DXS channels in this case.
- fixed the quirk for ASUS A7V8-X.
- added the quirk for Gigabyte mobo.
- removed the error message in codec_valid().
Index: via82xx.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/via82xx.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- via82xx.c 6 Oct 2003 13:58:05 -0000 1.55
+++ via82xx.c 7 Oct 2003 09:06:36 -0000 1.56
@@ -92,7 +92,7 @@
MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (default 48000Hz).");
MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:48000");
MODULE_PARM(dxs_support, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
-MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 =
disable, 3 = 48k only)");
+MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 =
disable, 3 = 48k only, 4 = no VRA)");
MODULE_PARM_SYNTAX(dxs_support, SNDRV_ENABLED ",allows:{{0,3}},dialog:list");
@@ -290,6 +290,7 @@
#define VIA_DXS_ENABLE 1
#define VIA_DXS_DISABLE 2
#define VIA_DXS_48K 3
+#define VIA_DXS_NO_VRA 4
/*
@@ -449,6 +450,7 @@
viadev_t devs[VIA_MAX_DEVS];
struct via_rate_lock rates[2]; /* playback and capture */
unsigned int dxs_fixed: 1; /* DXS channel accepts only 48kHz */
+ unsigned int no_vra: 1; /* no need to set VRA on DXS channels */
snd_rawmidi_t *rmidi;
@@ -509,7 +511,6 @@
if ((val = snd_via82xx_codec_xread(chip)) & stat)
return val & 0xffff;
}
- snd_printk(KERN_ERR "codec_valid: codec %i is not valid [0x%x]\n", secondary,
snd_via82xx_codec_xread(chip));
return -EIO;
}
@@ -554,6 +555,7 @@
while (1) {
if (again++ > 3) {
spin_unlock(&chip->ac97_lock);
+ snd_printk(KERN_ERR "codec_read: codec %i is not valid
[0x%x]\n", ac97->num, snd_via82xx_codec_xread(chip));
return 0xffff;
}
snd_via82xx_codec_xwrite(chip, xval);
@@ -889,11 +891,11 @@
if ((rate_changed = via_lock_rate(&chip->rates[0], runtime->rate)) < 0)
return rate_changed;
- if (rate_changed) {
- snd_ac97_set_rate(chip->ac97, AC97_PCM_FRONT_DAC_RATE, runtime->rate);
- snd_ac97_set_rate(chip->ac97, AC97_PCM_SURR_DAC_RATE, runtime->rate);
- snd_ac97_set_rate(chip->ac97, AC97_PCM_LFE_DAC_RATE, runtime->rate);
- snd_ac97_set_rate(chip->ac97, AC97_SPDIF, runtime->rate);
+ if (rate_changed || chip->no_vra) {
+ snd_ac97_set_rate(chip->ac97, AC97_PCM_FRONT_DAC_RATE,
+ chip->no_vra ? 48000 : runtime->rate);
+ if (rate_changed)
+ snd_ac97_set_rate(chip->ac97, AC97_SPDIF, runtime->rate);
}
#if 0
if (chip->revision == VIA_REV_8233A)
@@ -1974,8 +1976,9 @@
{
static struct dxs_whitelist whitelist[] = {
{ .vendor = 0x1019, .device = 0x0996, .action = VIA_DXS_48K },
+ { .vendor = 0x1043, .device = 0x80a1, .action = VIA_DXS_NO_VRA }, /*
ASUS A7V8-X */
{ .vendor = 0x1297, .device = 0xc160, .action = VIA_DXS_ENABLE }, /*
Shuttle SK41G */
- { .vendor = 0x1043, .device = 0x80a1, .action = VIA_DXS_ENABLE }, /*
ASUS A7V8-X */
+ { .vendor = 0x1458, .device = 0xa002, .action = VIA_DXS_ENABLE }, /*
Gigabyte GA-7VAXP */
{ .vendor = 0x1462, .device = 0x7120, .action = VIA_DXS_ENABLE }, /*
MSI KT4V */
{ } /* terminator */
};
@@ -2002,7 +2005,8 @@
* not detected, try 48k rate only to be sure.
*/
printk(KERN_INFO "via82xx: Assuming DXS channels with 48k fixed sample
rate.\n");
- printk(KERN_INFO " Please try dxs_support=1 option and report if it
works on your machine.\n");
+ printk(KERN_INFO " Please try dxs_support=1 or dxs_support=4
option\n");
+ printk(KERN_INFO " and report if it works on your machine.\n");
return VIA_DXS_48K;
};
@@ -2087,6 +2091,8 @@
goto __error;
if (dxs_support[dev] == VIA_DXS_48K)
chip->dxs_fixed = 1;
+ else if (dxs_support[dev] == VIA_DXS_NO_VRA)
+ chip->no_vra = 1;
}
if ((err = snd_via8233_init_misc(chip, dev)) < 0)
goto __error;
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog