On Thu, Jan 27, 2011 at 11:09 AM, Raymond Yau superquad.vortex2@gmail.com wrote:
2011/1/27 Mark Goldstein goldstein.mark@gmail.com
Hi,
I've renewed my experiments after long break (sorry, had to do other stuff and since released version 1.0.23 worked for me, I reverted to that version).
I still have not tried hda-emulator, but I made some progress.
- I compiled the git version (snapshot from Jan 20) for OpenSUSE 11.1
with test kernel 2.6.32.28. I saw the same behavior as before:
- Line control does nothing;
- Front Mic control actually changes volume of Line In;
- Neither Front nor Rear Mic work at all; (Answering to Raymond's
question regarding Mic Boost - I have "Rear Mic" control, but Mic Boost).
- I decided to compare patch.via.c from version 1.0.23 that works for
me and git version. It appears to me that the clue could be found in the function vt1708S_auto_create_analog_input_ctls. The one in 1.0.23 uses explicit control indexes, while the function from git version calls vt_auto_create_analog_input_ctls, passing it the array of indexes: static hda_nid_t pin_idxs[] = { 0x1f, 0x1a, 0x1b, 0x1e, 0, 0xff };
Comparing the indexes used in vt1708S_auto_create_analog_input_ctls with those used for other codec and with version from 1.0.23, I started suspecting that the order of indexes is wrong. I changed the array like this: static hda_nid_t pin_idxs[] = { 0, 0x1f, 0x1a, 0x1b, 0x1e, 0xff }; After re-compiling the version I've got much better behavior:
- Line control (index 1b) works correctly now;
- Front Mic control (index 0x1e) actually controls Rear Mic and this
Rear Mic works;
- Front mic still does not work;
- Rear Mic control (index 0x1a) seems not working and there is still
Mic Boost, not Rear Mic Boost.
Do you mean that regiession is caused by this patch ?
http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=f3268512c3a5de...
Yes, looks very probable. Additional confirmation to this is that I noticed the problem at the beginning of September after installing git version; this patch is dated by Aug 30th.
it seem vt_auto_create_analog_input_ctls() try to assign stereo mixer as the first item of the imux(s) node 0x17 and 0x1e
assign those playback volume of those input pins in to stereo mixer for node 0x16
but it should assign auto_pin_cfg_labels[] according to the imux node 0x17 and 0x1e
Is the order of controls in hda_nid_t_pin_idxs fixed, or depends on specific codec?
In any case, I will probably try to temporary replace the vt1708S_auto_create_analog_input_ctls by the one from 1.0.23 and see if this will fix the issue.
Thanks,