[alsa-devel] HDA regression on Fujitsu S7020 laptop (ALC260 codec)

Takashi Iwai tiwai at suse.de
Tue Jan 8 15:48:57 CET 2013

At Sat, 5 Jan 2013 17:46:05 +1030,
Jonathan Woithe wrote:
> On Sat, Jan 05, 2013 at 02:32:38PM +0800, Raymond Yau wrote:
> > > > Does this mean that the internal speaker and line out at Sep right (dock
> > > > line out) at same node 0x10 ?
> > >
> > > Here is what I know:
> > >
> > >   Node 0x10 = Internal speaker
> > 
> > -static const struct hda_verb alc260_fujitsu_init_verbs[] = {
> > -       /* Disable all GPIOs */
> > -       {0x01, AC_VERB_SET_GPIO_MASK, 0},
> > -       /* Internal speaker is connected to headphone pin */
> > 
> > The auto model won't set pin ctls to HP when pin default is line out or
> > speaker
> > 
> > https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1091868/comments/9
> Do you require feedback from me about this?  As far as I can tell it's just
> an observation which might partly explain why the speaker doesn't work on
> the S7020.
> In case it helps clarify things, perhaps I should explain some of the
> comments which were previously contained within alc260_quirks.c (since I
> wrote them).
>   /* Internal speaker is connected to headphone pin */
> Node 0x10 is notionally labelled "headphone pin" in the ALC260 datasheet. 

You can forget the pin notion in the datasheet.  It's just pin
assignment Realtek thought as a standard arrangement.

> However, on the S7020 it is instead electrically connected to the internal
> speaker.
>   /* Headphone/Line-out jack connects to Line1 pin; make it an output */
> Node 0x14 is described as "Line1 pin" in the ALC260 datasheet.  On the S7020
> the designers have chosen to connect it to the headphone/line-out jack on
> the laptop.
>   /* Mic/Line-in jack is connected to mic1 pin, so make it an input */
> This is perhaps the only consistent pin on the laptop.  The "mic1" pin of
> the ALC260 is conected to the "Mic/Line-in" hack on the laptop.
> In other words, on this particular laptop (and probably many others) the
> designers have been fairly free when connecting pins to physical entities.
> > Refer to your 3.3.5 info
> What for, exactly?  Sorry, I'm confused as to what you're asking for here.
> > Does auto mute work in kernel 3.3.5 since unsolicited event is not enabled ?
> No idea - I have no interest in using auto-mute and have never had the
> inclination to test it or look into it.
> I've just looked now.  3.3.5 was booted, alsamixer does not show any
> "automute" control to enable or disable this.  In any case, automute is
> certainly not happening, so I'm guessing the answer to your question is no.

There is no automute behavior switching control in the 3.3.x kernel
driver, so no wonder :)

I took a look at your alsa-info.sh outputs now, but unfortunately I
see no obvious problem there.  At least, the path to the speaker looks

Node 0x02 [Audio Output] wcaps 0x11: Stereo
  Device: name="ALC260 Analog", type="Audio", device=0
  Converter: stream=0, channel=0
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM

Node 0x09 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out
  Control: name="PCM Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0
  Amp-Out vals:  [0x33 0x33]
  Connection: 2
     0x02 0x07

Node 0x10 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
  Control: name="PCM Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0001003f: IN OUT HP EAPD Detect Trigger ImpSense
  EAPD 0x2: EAPD
  Pin Default 0xe4011110: [Both] Line Out at Sep Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Connection: 1

And all GPIOs are cleared too.

The differences are that the old driver cleared unused pins such as
0x0f, 0x11, 0x13 and 0x15.  Could you try to set the pin ctl to 0 for
these widgets via hda-verb on the fly?

Other than that, the headphone jack is set up with the HP amp and the
mic is with VREF 50.  They can be changed on the fly, too.



More information about the Alsa-devel mailing list