do widge 0x3e has amp-out for subwoofer volume control ?
Nope. The sound path I got finally are : 08/34/14/24/00 08/21/14/24/00 09/3c/1c/33/00 08/35/15/25/00 08/21/15/25/00
So, front on 0x08, shared with HP, and subwoofer on 0x09. Volumes are on
0x08 and 0x09 controls,
afaik there are no more volume controls there.
the driver setup 0x33 (mono pin) for vt1802
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=118...
and some asus with vt1802 does not have any subwoofer
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=94c...
do notebook with vt1802 really need independent headphone ?
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound. git;a=commitdiff;h=a2a870c82797e47884b2736e95e9d9 c89a51c219;hp=5c9a5615dedec19196b1217e864616 a2ce9e392a
should the auto parser put it into autocfg->mono_out?
maybe.... I didn't try that one. With both patches the stuffs appears like a 4 channel one; the correct
would be 2+1, but
I didn't manage to get it right.
The function should scan all paths from DACs to OUTS, but like it is just takes the first available DAC. The problem arises here :
if (dac) { spec->private_dac_nids[i] = dac; dac_num++; }
Which correctly adds DAC to used list, but doesn't update the total number of found DACs in spec->multiout.num_dacs; following calls to is_empty_dac() will always return true for already used DACs, making parse_output_path() return always the first one.
it is because
spec->multiout.num_dacs = cfg->line_outs + spec->smart51_nums;
so this may be the reason for the auto parser put internal speaker 0x24 into autocfg->lineout
are you sure that you need pulseaudio to upmix stereo to 4 channels since the driver use copy front mode for 2 channels playback when spec->multiout.num_dacs = 2
/* surrounds */ for (i = 1; i < mout->num_dacs; i++) { if (chs >= (i + 1) * 2) /* independent out */ snd_hda_codec_setup_stream(codec, nids[i], stream_tag, i * 2, format); else if (!mout->no_share_stream) /* copy front */ snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0, format); }
this mean that the channel map may has no relationship with the number of internal speakers of the notebook
multiout.extra_out seem support multi stereo streams in snd_hda_multi_out_analog_prepare()
for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++) if (!mout->no_share_stream && mout->extra_out_nid[i]) snd_hda_codec_setup_stream(codec,
mout->extra_out_nid[i],
stream_tag, 0,
format);
how to put those internal speakers into multiout->extra_out in via_auto_create_speaker_ctls() when the auto parser put the speaker into autocfg->lineout ?
Don't know.... if I let 0x33 and/or 0x24 as speaker, they're put as
speaker out but not taken
in multiout paths.
does this mean that spec->speaker_path and spec->speaker_mix_path are useless ?