[alsa-devel] [Regression] No sound on HP Pavilion dv6, STAC92xx

Luis Henriques luis.henriques at canonical.com
Tue Jun 26 18:02:30 CEST 2012


Hi Takashi,

Takashi Iwai <tiwai at suse.de> writes:

> At Tue, 26 Jun 2012 17:10:26 +0200,
> Takashi Iwai wrote:
>> 
>> At Tue, 26 Jun 2012 16:16:36 +0200,
>> Takashi Iwai wrote:
>> > 
>> > At Tue, 26 Jun 2012 15:13:43 +0100,
>> > Luis Henriques wrote:
>> > > 
>> > > Hi,
>> > > 
>> > > After commit b0791dda813c179e539b0fc1ecd3f5f30f2571e2 ("ALSA: hda/idt
>> > > - Fix power-map for speaker-pins with some HP laptops") we have
>> > > several bug reports about not having sound on HP Pavilion laptops.
>> > > 
>> > > Here's a link to one of these bug reports:
>> > > 
>> > >  http://bugs.launchpad.net/bugs/1013183
>> > > 
>> > > After reverting the referred commit, everything seems to be working
>> > > fine again.
>> > > 
>> > > Any ideas/fixes?
>> > 
>> > Could you give alsa-info.sh output on both working and non-working
>> > kernels?
>> 
>> Also, does it really happen with the upstream kernels (vanilla 3.2.y
>> and Linus tree) without ubuntu changes?  If yes, I'd need alsa-info.sh
>> outputs on these, too.
>
> Never mind, I found the culprit.
> The fixed patch for 3.5 kernel is below.
>
> For 3.4 and older kernels, another patch is necessary.  Will put in
> another post.
>

Great, thanks a lot for your help.  I was trying to gather the data
from bug reporters, but I guess I can abort that.

I'll try to get someone testing the patch.

Cheers,
--
Luis

>
> Takashi
>
> ---
> From: Takashi Iwai <tiwai at suse.de>
> Subject: [PATCH] ALSA: hda - Fix power-map regression for HP dv6 & co
>
> The recent fix for power-map controls (commit b0791dda813) caused
> regressions on some other HP laptops.  They have fixed pins but these
> pins are exposed as jack-detectable.  Thus the driver tries to control
> the power-map dynamically per jack detection where it never gets on.
>
> This patch adds the check of connection and it assumes the no jack
> detection is available for fixed pins no matter what pin capability
> says.
>
> BugLink: http://bugs.launchpad.net/bugs/1013183
> Reported-by: Luis Henriques <luis.henriques at canonical.com>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> ---
>  sound/pci/hda/patch_sigmatel.c |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
> index 7db8228..0767528 100644
> --- a/sound/pci/hda/patch_sigmatel.c
> +++ b/sound/pci/hda/patch_sigmatel.c
> @@ -4367,7 +4367,7 @@ static int stac92xx_init(struct hda_codec *codec)
>  					 AC_PINCTL_IN_EN);
>  	for (i = 0; i < spec->num_pwrs; i++)  {
>  		hda_nid_t nid = spec->pwr_nids[i];
> -		int pinctl, def_conf;
> +		unsigned int pinctl, def_conf;
>  
>  		def_conf = snd_hda_codec_get_pincfg(codec, nid);
>  		def_conf = get_defcfg_connect(def_conf);
> @@ -4376,6 +4376,11 @@ static int stac92xx_init(struct hda_codec *codec)
>  			stac_toggle_power_map(codec, nid, 0);
>  			continue;
>  		}
> +		if (def_conf == AC_JACK_PORT_FIXED) {
> +			/* no need for jack detection for fixed pins */
> +			stac_toggle_power_map(codec, nid, 1);
> +			continue;
> +		}
>  		/* power on when no jack detection is available */
>  		/* or when the VREF is used for controlling LED */
>  		if (!spec->hp_detect ||


More information about the Alsa-devel mailing list