Hi,
On Mon, Oct 11, 2010 at 1:09 AM, Raymond Yau superquad.vortex2@gmail.com wrote:
2010/10/11 Mark Goldstein goldstein.mark@gmail.com
I noticed one visible change: Input Source had "Rear Mic" instead of "Mic".
spec->private_imux[1] is un-initialised before calling create_hp_imux() however there is no node with connection list which can be used as input mix for "independent HP" control
How about "Mic Boost" ?
if "Mic" is changed to "Rear Mic" , "Mic Boost Capture Volume" should also be changed to "Rear Mic Boost Capture Volume "
static struct snd_kcontrol_new vt1708S_capture_mixer[] = {
HDA_CODEC_VOLUME("Capture Volume", 0x13, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Capture Switch", 0x13, 0x0, HDA_INPUT), HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x14, 0x0, HDA_INPUT), HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x14, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Mic Boost Capture Volume", 0x1A, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Front Mic Boost Capture Volume", 0x1E, 0x0, HDA_INPUT),
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 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).
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.
Maybe someone who knows the code could look at this function and suggest how to fix it?
Regards,