Hello,
I do not want to hijack the thread, but since it looks like many changes are going to be applied to VIA HDA, I'd like to ask you to look into potential patch that fixed my problem with VIA VT1708S.
There was a long thread "Problem with VIA VT1708S and git versions of alsa-driver" on this list. I'll give a brief summary: I have ASUS P5QL/EPU motherboard with VIA VT1708S on-board audio. My distribution is openSUSE. The sound worked satisfactory with alsa driver 1.0.23. The problem occurred first in oS 11.1. After one of the updates from git snapshot repo (end of September / beginning of October 2010), the functionality of controls got messed up: Line control did not work, Front Mic control actually changed the volume of Line In. Front Mic itself did not work at all.
I tried to figure out what happened with the help of Raymond Yau, but at some stage gave up and reverted to working driver 1.0.23.
Later this year I had to try git version again (because I've got new USB device). Still the same problem. So I decided to compare patch_via.c from 1.0.23 that worked and from git version (and now 1.0.24) that did not. It turned out that the cause of my problem was in the patch (identified by Raimond) http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=f3268512c3a5de...
This patch introduced common function vt_auto_create_analog_input_ctls and codec-specific functions passing the array pin_idxs to it.
The problem, as I understood it, is that vt_auto_create_analog_input_ctls uses the same pin index in calls to via_new_analog_input and snd_hda_add_imux_item, while in the old code (1.0.23) for some codecs, including VT1708S, VT1702 and VT1716S, via_new_analog_input was called with pin index + 1.
I do not understand the details, so I just did straightforward patch (attached here, based on the code of 1.0.24) to restore the old behavior. In my case this patch resolved the problem and I have working controls now.
Could you please check it? Maybe it should be done differently, but the problem is real (at least for me) and needs a fix.
Regards,