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

Attachment: ac97_patch.c.diff
Description: Binary data

Reply via email to