Comment 13 for bug 1051494

Revision history for this message
Raymond (superquad-vortex2) wrote :

http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=18a815d7426986890b88078ea63b77732baca0b5;hp=42611c02ac31e44abd53893209460ce60205cb8e

/* mute internal speaker if HP is plugged */
static void ad1981_hp_automute(struct hda_codec *codec)
{
       unsigned int present;

       present = snd_hda_codec_read(codec, 0x06, 0,
                                    AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
       snd_hda_codec_amp_update(codec, 0x05, 0, HDA_OUTPUT, 0,
                                0x80, present ? 0x80 : 0);
       snd_hda_codec_amp_update(codec, 0x05, 1, HDA_OUTPUT, 0,
                                0x80, present ? 0x80 : 0);
}

if you look at figure 1 functional block diagram

port A and port D only have selector to select dac 0x03 or mixer 0x0e

but ad1981_hp_automute seem treat them as mixer instead of selector

you must send email to the author who added the suuport of ad1981hd

Node 0x05 [Pin Complex] wcaps 0x400187: Stereo Amp-In Amp-Out
  Control: name="Master Playback Switch", index=0, device=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals: [0x00 0x00]
  Amp-Out caps: ofs=0x3d, nsteps=0x3f, stepsize=0x05, mute=1
  Amp-Out vals: [0x3f 0x3f]
  Pincap 0x0001173f: IN OUT HP EAPD Detect Trigger ImpSense
    Vref caps: HIZ 50 GRD 80
  EAPD 0x2: EAPD
  Pin Default 0x92174110: [Fixed] Speaker at Int Front
    Conn = Analog, Color = Green
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Connection: 2
     0x03 0x0e*
Node 0x06 [Pin Complex] wcaps 0x400185: Stereo Amp-Out
  Amp-Out caps: ofs=0x3d, nsteps=0x3f, stepsize=0x05, mute=1
  Amp-Out vals: [0x3f 0x3f]
  Pincap 0x0000001f: OUT HP Detect Trigger ImpSense
  Pin Default 0x0321201f: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Grey
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=37, enabled=1
  Connection: 2
     0x03 0x0e*