[alsa-devel] Fix for Asus G75 notebook subwoofer
Raymond Yau
superquad.vortex2 at gmail.com
Fri Nov 2 02:44:18 CET 2012
>
>>
>> can you post the output of alsa-info.sh ?
>
>
> Where can I find the script ? I've not it on my machine
>
http://git.alsa-project.org/?p=alsa-driver.git;a=history;hb=refs/heads/build;f=alsa/utils/alsa-info.sh
>>
>> 9.337454] ALSA hda_codec.c:4877 autoconfig: line_outs=1
>> (0x24/0x0/0x0/0x0/0x0) type:speaker
>> [ 9.337458] ALSA hda_codec.c:4881 speaker_outs=0
(0x0/0x0/0x0/0x0/0x0)
>> [ 9.337460] ALSA hda_codec.c:4885 hp_outs=1 (0x25/0x0/0x0/0x0/0x0)
>> [ 9.337462] ALSA hda_codec.c:4886 mono: mono_out=0x0
>> [ 9.337464] ALSA hda_codec.c:4889 dig-out=0x2d/0x0
>> [ 9.337465] ALSA hda_codec.c:4890 inputs:
>> [ 9.337467] ALSA hda_codec.c:4894 Internal Mic=0x29
>> [ 9.337469] ALSA hda_codec.c:4894 Mic=0x2b
>>
>> it is the auto parser put the speaker to autocfg->lineout
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commit;h=90da78bf6aaabd4d31c6663b7c1d1b9c5a8c023f
mono pin complex are usually [Fixed] Speaker instead of [Jack] Line Out
>
>
> Yep, if you look at above, this one was exactly the output before my 2
patches; the only difference
> was line 24, marked as type=SPEAKER; no trace of mono pin 0x33.
> I guess the 0x33 is skipped because the parser don't find a path from it,
as it have a connection to
> widget 0x3e with is out of range (widgets are reported to be from 0x08 to
0x0c).
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1045981
Node 0x33 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00]
Pincap 0x00000010: OUT
Pin Default 0x501701f0: [N/A] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x3e
it is ignored by the auto parser because [N/A] instead of [Fixed]
> We could also patch the returned widget number to be 2 widgets more, even
id 0x3d is NOT there.
>
> The 0x3e is a stereo to mono mixer, connecting to 0x1c.
> As above, VT1802p reports to have widgets up to 0x3c.
>
do widge 0x3e has amp-out for subwoofer volume control ?
>>
>> 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.
Node 0x2b [Pin Complex] wcaps 0x400481: Stereo
Control: name="Mic Boost Volume", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Control: name="Mic Jack", index=0, device=0
Pincap 0x00002324: IN Detect
Vref caps: HIZ 50 100
Pin Default 0x01a1903e: [Jack] Mic at Ext Rear
Conn = 1/8, Color = Pink
DefAssociation = 0x3, Sequence = 0xe
as the mic jack cannot be retasked as output , No need to put hp in lineout
>
> Resuming, without patches, the auto_parser report for asus :
>
> 0x24 Line out, type speaker
> 0x25 Hp out
> 0x33 is missing
>
> Forcing the connection from 0x33 to 0x1c (skipping so 0x3e) the pin 0x33
don't appear
> because bios marks it at none-connection.
> Forcing the connection to JACK, it puts as a mono speaker, so no sound
from it either.
> Forcing to be a line out, sound only from it because then 0x24 takes the
speaker place (marked as speaker in bios).
> Forcing both 0x24 and 0x33 to be line out gives 4 channel sound (with 2
rear channels output to 0x33 mono).
>
> No idea on how to get the 2+1 behaviour, but at least now it sounds.
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 ?
only two volume controls at 0x08 and 0x09,
there are three pin complexes 0x24, 0x25 and 0x33
More information about the Alsa-devel
mailing list