[alsa-devel] realtek ALC272 support

Takashi Iwai tiwai at suse.de
Mon May 4 16:18:13 CEST 2009


At Mon, 4 May 2009 10:03:08 -0400,
Andres Salomon wrote:
> 
> On Mon, 04 May 2009 14:40:45 +0200
> Takashi Iwai <tiwai at suse.de> wrote:
> 
> > At Mon, 4 May 2009 08:37:10 -0400,
> > Andres Salomon wrote:
> > > 
> > > On Mon, 04 May 2009 09:02:50 +0200
> > > Takashi Iwai <tiwai at suse.de> wrote:
> > > 
> > > > At Thu, 30 Apr 2009 09:51:27 -0400,
> > > > Andres Salomon wrote:
> > > > > 
> > > > > On Thu, 30 Apr 2009 07:34:02 +0200
> > > > > Takashi Iwai <tiwai at suse.de> wrote:
> > > > > 
> > > > > > At Wed, 29 Apr 2009 13:01:42 -0400,
> > > > > > Andres Salomon wrote:
> > > > > > > 
> > > > > > > On Wed, 29 Apr 2009 15:09:20 +0200
> > > > > > > Takashi Iwai <tiwai at suse.de> wrote:
> > > > > > > 
> > > > > > > > At Wed, 29 Apr 2009 09:02:41 -0400,
> > > > > > > > Andres Salomon wrote:
> > > > > > > > > 
> > > > > > > > > On Wed, 29 Apr 2009 08:33:28 +0200
> > > > > > > > > Takashi Iwai <tiwai at suse.de> wrote:
> > > > > > > > > 
> > > > > > > > > > At Tue, 28 Apr 2009 18:21:55 -0400,
> > > > > > > > > > Andres Salomon wrote:
> > > > > > > > > > > 
> > > > > > > > > > > On Tue, 28 Apr 2009 15:41:08 -0400
> > > > > > > > > > > Andres Salomon <dilinger at queued.net> wrote:
> > > > > > > > > > > 
> > > > > > > > > > > > On Mon, 27 Apr 2009 18:08:21 +0200
> > > > > > > > > > > > Takashi Iwai <tiwai at suse.de> wrote:
> > > > > > > > > > > > 
> > > > > > > > > > > [...]
> > > > > > > > > > > > > > > > > > > At Fri, 24 Apr 2009 15:24:15 -0400,
> > > > > > > > > > > > > > > > > > > Andres Salomon wrote:
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > Hi Kailang,
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > I noticed that your name was on
> > > > > > > > > > > > > > > > > > > > the ALC272 support patch for ALSA
> > > > > > > > > > > > > > > > > > > > intel-hda.  This patch basically
> > > > > > > > > > > > > > > > > > > > sets ALC272 to use (mostly) the
> > > > > > > > > > > > > > > > > > > > same code as ALC662.  I have two
> > > > > > > > > > > > > > > > > > > > machines that have ALC272, and
> > > > > > > > > > > > > > > > > > > > both of them need verb tables in
> > > > > > > > > > > > > > > > > > > > order to function. I'm wondering
> > > > > > > > > > > > > > > > > > > > if ALC662 should really be used..
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > Here's one -
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-hardy-lum.git;a=commitdiff;h=7662834bb9a78d244c6d7ee43358c14c94d249c9
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > This isn't the final version of
> > > > > > > > > > > > > > > > > > > > the patch (there are further
> > > > > > > > > > > > > > > > > > > > commits I made in order to
> > > > > > > > > > > > > > > > > > > > support headphone mic stuff), but
> > > > > > > > > > > > > > > > > > > > it gives you an idea of the codec
> > > > > > > > > > > > > > > > > > > > values. The other is:
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-hardy-lum.git;a=commitdiff;h=72ff85641a30dc7ac502e2ea01bf14a04efb4cf1
> > > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > > > > > All of these leave me wonder if
> > > > > > > > > > > > > > > > > > > > there's a specific patch_alc272
> > > > > > > > > > > > > > > > > > > > function that could be written to
> > > > > > > > > > > > > > > > > > > > rid ourselves of these specific
> > > > > > > > > > > > > > > > > > > > quirks. Are there machines with
> > > > > > > > > > > > > > > > > > > > ALC272 that are functional with
> > > > > > > > > > > > > > > > > > > > the current ALSA code?
> > > > > > > > > > > > > > > > > > > 
> > > > > > > > > > > [...]
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Could you try sound-unstable tree a bit later
> > > > > > > > > > > > > again? I found a bug in my patch, and fixed and
> > > > > > > > > > > > > updated GIT tree now. At least, the headphone
> > > > > > > > > > > > > plugging should work now.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > The mic auto-detection still doesn't work with
> > > > > > > > > > > > > model=auto, though. So, I'm going to take your
> > > > > > > > > > > > > patch anyway later.  But I just wanted to be
> > > > > > > > > > > > > sure that the current tree could work somehow
> > > > > > > > > > > > > better...
> > > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > Hi,
> > > > > > > > > > > > 
> > > > > > > > > > > > I just updated and tried the current tree; still
> > > > > > > > > > > > no sound/headphone output.  :(
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > Ok, I believe I've made some progress on this.  The
> > > > > > > > > > > problem appears to be related to the autoconfig
> > > > > > > > > > > handling of the line out nids.  The current code
> > > > > > > > > > > ends up with something like the following:
> > > > > > > > > > > 
> > > > > > > > > > > ALSA sound/pci/hda/hda_codec.c:3833: autoconfig:
> > > > > > > > > > > line_outs=1 (0x17/0x0/0x0/0x0/0x0)
> > > > > > > > > > > ALSA sound/pci/hda/hda_codec.c:3837:
> > > > > > > > > > > speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
> > > > > > > > > > > ALSA sound/pci/hda/hda_codec.c:3841:    hp_outs=1
> > > > > > > > > > > (0x21/0x0/0x0/0x0/0x0) ALSA
> > > > > > > > > > > sound/pci/hda/hda_codec.c:3842: mono: mono_out=0x0
> > > > > > > > > > > ALSA sound/pci/hda/hda_codec.c:3853: inputs:
> > > > > > > > > > > mic=0x18, fmic=0x19, line=0x0, fline=0x0, cd=0x0,
> > > > > > > > > > > aux=0x0
> > > > > > > > > > > 
> > > > > > > > > > > However, NID 0x17 is actually a speaker_out.  The
> > > > > > > > > > > code that checks for line_outs in
> > > > > > > > > > > snd_hda_parse_pin_def_config() unsets the
> > > > > > > > > > > speaker_out and uses that NID for a line_out. For
> > > > > > > > > > > whatever reason, this breaks things (no sound
> > > > > > > > > > > output, no headphone out).
> > > > > > > > > > 
> > > > > > > > > > That's intentional, and the driver checks that case,
> > > > > > > > > > too. Please check the latest sound git tree and see
> > > > > > > > > > the kernel message. You should have messages like
> > > > > > > > > > "realtek: ..."
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > Takashi
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > The realtek: lines don't appear to affect NID 0x17 at
> > > > > > > > > all. Instead, they say:
> > > > > > > > > 
> > > > > > > > > ALSA sound/pci/hda/patch_realtek.c:1154: realtek: No
> > > > > > > > > valid SSID, checking pincfg 0x40178e2d for NID 0x1d ALSA
> > > > > > > > > sound/pci/hda/patch_realtek.c:1170: realtek: Enabling
> > > > > > > > > init ASM_ID=0x8e2d CODEC_ID=10ec0272 ALSA
> > > > > > > > > sound/pci/hda/patch_realtek.c:1111: realtek: Enable HP
> > > > > > > > > auto-muting on NID 0x21
> > > > > > > > 
> > > > > > > > Then 0x17 should be toggled when the jack on 0x21 is
> > > > > > > > detected.
> > > > > > > > 
> > > > > > > > 
> > > > > > > > Takashi
> > > > > > > 
> > > > > > > But since I get absolutely no sound through headphones or
> > > > > > > speakers, I can't tell if it's being toggled.  :)
> > > > > > 
> > > > > > You can see the 0x17 in the codec proc whether it's changed at
> > > > > > plugged / unplugged.  The driver should change its pin control
> > > > > > dynamically.
> > > > > > 
> > > > > > > I've noticed:
> > > > > > >  - in order to get speaker output, 0x17 *must* be defined
> > > > > > > as the speaker-out, and 0x14 *must* be listed as a line-out
> > > > > > > pin.
> > > > > > >  - in order to get headphone output, neither 0x17 nor 0x15
> > > > > > > are to be listed as the first line-out pin
> > > > > > 
> > > > > > Then it implies that 0x17 has nothing to do with the speaker,
> > > > > > i.e. a BIOS bug.  0x14 could be the speaker output while 0x17
> > > > > > is just a dummy.
> > > > > > 
> > > > > >
> > > > > 
> > > > > Specifying 0x14 as the speaker-pin doesn't work, either.
> > > > 
> > > > How did you test it?
> > > > 
> > > > 
> > > > Takashi
> > > 
> > > I had tried manually setting the speaker and line-out pins in the
> > > autoconfig function.
> > 
> > So... how?
> > 
> > 
> > Takashi
> 
> 
> Basically, several variations of:

Well, that's basically a bad place to modify.

You can change the pin config and reconfigure the driver dynamically
via sysfs interface.  (Better use it on 2.6.30, though.)
See Documentation/sound/alsa/HD-Audio.txt.


Takashi

> 
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index b91f6ed..ed98262 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -3786,6 +3786,11 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
>                 cfg->input_pins[AUTO_PIN_FRONT_LINE] = 0;
>         }
>  
> +       cfg->speaker_pins[0] = 0x14;
> +       cfg->speaker_outs = 1;
> +       cfg->line_outs = 1;
> +       cfg->line_out_pins[0] = 0x14;
> +
>         /*
>          * FIX-UP: if no line-outs are detected, try to use speaker or HP pin
>          * as a primary output
> 
> 
> Following by playing speaker-test and checking for speaker and/or
> headphone output.
> 


More information about the Alsa-devel mailing list