Dear Takashi Iwai, Monday, February 10, 2003, 12:14:59 PM, you wrote:
>> When I changed VIA_REV_8233A to TYPE_VIA8233A my onboard soundcard >> (VIA8233A + ALC650) works (2 channel, 4 cannel). >> >> 5.1 has problem - swaped channels. (LF, RF, Center - OK, LS - Woofer, >> RS - LS, Woofer - RS. TI> which program are you using? TI> please check the ac97 register 0x6a in /proc/asound/card0/ac97#0regs TI> and whether the bits 30-31 (zero-based) are off. Do you mean bit 14-15 ? As i posted before, i have similar channel swapping with VIA8235 + ALC650. If bits 14-15 (slot modify) set to 0 - channels has incorrect placement. It can be fixed by exchanging Rear and Center/LFE jacks. When i set bit 14 to 1 - OK Surely via8235 transmit multi-channel data in AC-Link in 3,4,6,9,7,8 order, instead of 3,4,7,8,6,9 as specified in AC97. I switch codec to 3,4,6,9,7,8 mode by setting bit 14 with following patch in attachment for ac97_patch.c. Other option is to apply may old patch to via82xx.c like this: 812,813c812,815 < case 5: slots = (1<<0) | (2<<4) | (5<<8) | (3<<12) | (4<<16); break; < case 6: slots = (1<<0) | (2<<4) | (5<<8) | (6<<12) | (3<<16) | (4<<20); break; --- > // case 5: slots = (1<<0) | (2<<4) | (5<<8) | (3<<12) | (4<<16); break; > // case 6: slots = (1<<0) | (2<<4) | (5<<8) | (6<<12) | (3<<16) | (4<<20); break; > case 5: slots = (1<<0) | (2<<4) | (3<<8) | (4<<12) | (5<<16); break; > case 6: slots = (1<<0) | (2<<4) | (3<<8) | (4<<12) | (5<<16) | (6<<20); break; We can't do this if there are any positive reports for 5.1 playback on via82xx. May be better to create a new ALC650 specific mixer switch for bit 14 of 0x6a register ? By this way we can solve all such future problems too. Please commit one of this solutions to cvs. Sincerely yours Anton Worshevsky
ac97_patch.c.diff
Description: Binary data