[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


>>     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
>> [    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


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


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

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

for (i = 0; i < ARRAY_SIZE(mout->extra_out_nid); i++)
                 if (!mout->no_share_stream && 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