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