Am Samstag 14 April 2007 schrieb Prakash Punnoor: > Hah! I managed it!!! Just tested with speaker-test, so far. I hacked the > driver a bit: > > In patch_analog.c in static int patch_ad1986a(struct hda_codec *codec) > > case AD1986A_3STACK: > spec->num_mixers = 2; > spec->mixers[1] = ad1986a_3st_mixers; > //spec->num_init_verbs = 3; > //spec->init_verbs[1] = ad1986a_3st_init_verbs; > //spec->init_verbs[2] = ad1986a_ch2_init; > spec->channel_mode = ad1986a_modes; > spec->num_channel_mode = ARRAY_SIZE(ad1986a_modes); > spec->need_dac_fix = 0;//1; > spec->multiout.max_channels = 6;//2; > spec->multiout.num_dacs = 3;//1; > break; > > I don't yet know whether it is completely correct what I did and what is > the minimal change needed. > > Perhaps some of the changes will lead to regressions, I need to check > further. > > I think setting max channels and num_dacs has nor meaning, as probably the > get overwritten on ch set, right? dac_fix probably changes the way num_dacs > are assigned to? > > So my guess is that probably setting ad1986a_3st_init_verbs is wrong for my > mobo. > > {0x0f, AC_VERB_SET_CONNECT_SEL, 0x2}, > {0x10, AC_VERB_SET_CONNECT_SEL, 0x1}, > > What do those magic number 0x1 and 0x2 mean here? I looked into hda specs > and ad1986a specs. 0xf is mic selector and 0x10 is line selector. Does is > select which physical output is chosen? > > I will test later whether leaking dac_fix as 1 and ust taking out > ad1986a_3st_init_verbs will be enough. > > Cheers, OK, I was right. Taking out ad1986a_3st_init_verbs is enough for making it work: case AD1986A_3STACK: spec->num_mixers = 2; spec->mixers[1] = ad1986a_3st_mixers; spec->num_init_verbs = 1;//2; //spec->init_verbs[1] = ad1986a_3st_init_verbs; spec->init_verbs[2] = ad1986a_ch2_init; spec->channel_mode = ad1986a_modes; spec->num_channel_mode = ARRAY_SIZE(ad1986a_modes); spec->need_dac_fix = 1; spec->multiout.max_channels = 2; spec->multiout.num_dacs = 1; break; There is still one bug left for me: If I change ch setting, I need to adjust vol for sur, cl/lfe again, otherwise they stay mute. Bug of driver or alsamixer? Would be nice if we got a real fix for kernel 2.6.21. :-) Cheers, -- (°= =°) //\ Prakash Punnoor /\\ V_/ \_V
Attachment:
signature.asc
Description: This is a digitally signed message part.
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Alsa-user mailing list Alsa-user@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-user