uh-oh :) i code with too much drink and the users like it, great! :]] ... sergio, this patch is crap, pls pull cvs with attached revisions and tell if your master vol works then. my does. and so balance. THEN update to head and apply both patches attached further below from takashi and report (especially if you get pcm sound after unmute of "iec capture" switch.) y tom Sergio Monteiro Basto wrote: > Sorry for cross posting, I am replying to 2 different threads 1 is alsa- > user and other in alsa-devel! > > Please cc to me! > > Like Jakob Schurdak, I reinstall alsa from CVS (alsa-driver, alsa-lib, > alsa-utils), that already have Takashi patch, but the mixer still have > exactly the same behavior. > > I have one ASRock P4VT8+ with CMedia CMI9761 (not the same of Jakob) but > same rev. of sound card. > 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60) > > Applying this patch from Thomas Schorpp, I have a better mixer and don't > have mute nothing as before, I just unmute PCM and have sound, Master > volume appears but don't have any effect when mute or unmute or change > volume. > > For me, try to set up a PCM config manually on my own ~/.asoundrc , > doesn't change noting ( unless when I forget close "}") :) > > thanks and regards, > Index: ac97_codec.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_codec.c,v retrieving revision 1.170 retrieving revision 1.171 diff -u -r1.170 -r1.171 --- ac97_codec.c 9 Feb 2005 10:27:15 -0000 1.170 +++ ac97_codec.c 16 Feb 2005 16:21:03 -0000 1.171 @@ -120,7 +120,8 @@ { 0x434d4961, 0xffffffff, "CMI9739", patch_cm9739, NULL }, { 0x434d4978, 0xffffffff, "CMI9761", patch_cm9761, NULL }, { 0x434d4982, 0xffffffff, "CMI9761", patch_cm9761, NULL }, -{ 0x434d4983, 0xffffffff, "CMI9761", patch_cm9761, NULL }, +/* { 0x434d4983, 0xffffffff, "CMI9761", patch_cm9761, NULL }, */ +{ 0x434d4983, 0xffffffff, "CMI9761A", patch_cm9761a, NULL }, { 0x43525900, 0xfffffff8, "CS4297", NULL, NULL }, { 0x43525910, 0xfffffff8, "CS4297A", patch_cirrus_spdif, NULL }, { 0x43525920, 0xfffffff8, "CS4298", patch_cirrus_spdif, NULL }, Index: ac97_patch.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_patch.c,v retrieving revision 1.72 retrieving revision 1.73 diff -u -r1.72 -r1.73 --- ac97_patch.c 11 Feb 2005 09:56:09 -0000 1.72 +++ ac97_patch.c 16 Feb 2005 16:21:04 -0000 1.73 @@ -2094,6 +2094,34 @@ return 0; } +/* CM9761-A is incompatible with CM9761 */ +int patch_cm9761a(ac97_t *ac97) +{ + unsigned short val; + + ac97->build_ops = &patch_cm9761_ops; + +#if 0 + /* enable spdif */ + /* force the SPDIF bit in ext_id - codec doesn't set this bit! */ + ac97->ext_id |= AC97_EI_SPDIF; + /* to be sure: we overwrite the ext status bits */ + snd_ac97_write_cache(ac97, AC97_EXTENDED_STATUS, 0x05c0); + snd_ac97_write_cache(ac97, AC97_CM9761_SPDIF_CTRL, 0x0209); + ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_48000; /* 48k only */ +#endif + /* set-up multi channel */ + val = snd_ac97_read(ac97, AC97_CM9761_MULTI_CHAN); + val |= (1 << 4); + snd_ac97_write_cache(ac97, AC97_CM9761_MULTI_CHAN, val); + + /* FIXME: set up GPIO */ + snd_ac97_write_cache(ac97, 0x70, 0x0100); + snd_ac97_write_cache(ac97, 0x72, 0x0020); + + return 0; +} + /* * VIA VT1616 codec Index: ac97_patch.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_patch.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- ac97_patch.h 29 Sep 2004 15:45:52 -0000 1.17 +++ ac97_patch.h 16 Feb 2005 16:21:04 -0000 1.18 @@ -53,6 +53,7 @@ int patch_cm9738(ac97_t * ac97); int patch_cm9739(ac97_t * ac97); int patch_cm9761(ac97_t * ac97); +int patch_cm9761a(ac97_t * ac97); int patch_vt1616(ac97_t * ac97); int patch_it2646(ac97_t * ac97); int mpatch_si3036(ac97_t * ac97); AFTER TESTING THEN UPDATE TO HEAD AND APPLY: ATT 2 PATCHES