[alsa-devel] Problem with VIA VT1708S and git versions of alsa-driver.

Mark Goldstein goldstein.mark at gmail.com
Thu Jan 27 12:26:34 CET 2011

On Thu, Jan 27, 2011 at 11:09 AM, Raymond Yau
<superquad.vortex2 at gmail.com> wrote:
> 2011/1/27 Mark Goldstein <goldstein.mark at 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.
>> 1) I compiled the git version (snapshot from Jan 20) for OpenSUSE 11.1
>> with test kernel
>> 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).
>> 2) 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=f3268512c3a5dea587cfe875b8bca98d9e164cd9;hp=73413b120d5d6eb6c98451bbc19acf43e0e300ae

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.

Mark Goldstein

More information about the Alsa-devel mailing list