[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <s5hr4haw190.wl%tiwai@suse.de>
Date: Tue, 14 May 2013 07:59:07 +0200
From: Takashi Iwai <tiwai@...e.de>
To: Alex Riesen <raa.lkml@...il.com>
Cc: alsa-devel@...a-project.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
At Mon, 13 May 2013 20:24:42 +0200,
Alex Riesen wrote:
>
> On Mon, May 13, 2013 at 5:53 PM, Takashi Iwai <tiwai@...e.de> wrote:
> > At Mon, 13 May 2013 17:26:04 +0200, Takashi Iwai wrote:
> >> At Sun, 12 May 2013 11:53:41 +0200, Alex Riesen wrote:
> >> >
> >> > I just noticed (use the headphones rarely) that the headphones on this
> >> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
> >> > output.
> >> >
> >>
> >> It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
> >> They should be 0x02 and 0xc0 constantly. Is it taken at the moment
> >> the headphone is plugged, right? Please give alsa-info.sh outputs at
> >> both the headphone plugged and unplugged.
>
> Attached. Sorry for gzipping, the alsa-devel rejects two at a time: too large.
>
> >> Could you check whether changing them makes the headphone output
> >> working? For example, get hda-verb program (see
> >> Documentation/sound/alsa/HD-Audio.txt) and run it like
> >>
> >> hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> >> hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02
>
> It helps, headphones start working.
>
> > Also, what happens if you apply the patch below?
> > - spec->set_widgets_power_state = set_widgets_power_state_vt2002P;
> > + //spec->set_widgets_power_state = set_widgets_power_state_vt2002P;
>
> This helps as well. Yay!
> Thanks :) Whatever the outcome, I have them back more or less (more,
> for me) properly.
OK, then we know the place to fix now.
Try the patch below instead. Does it fix the problem as well?
> Probably unrelated, but I better mention it anyway: the "Auto-Mute Mode"
> works strangely, it never mutes anything but headphones. It might work
> as designed, but it is useless in this case: one still has to mute the
> speaker manually when plugging headphones (or do something with input
> events, which I failed to get to work).
Does the problem still happen with the patch?
> And "Independent HP" has absolutely no effect, which is probably as it
> should be on this laptop.
With the independent HP turned on, there should be no output to the
headphone through the normal PCM. There is a secondary PCM device,
and this is routed to the headphone when the independent HP is on.
thanks,
Takashi
---
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..09fd395 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -1410,6 +1410,7 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec)
/* outputs */
/* AOW0 (8h)*/
update_power_state(codec, 0x8, parm);
+ update_power_state(codec, 0x9, parm);
if (spec->codec_type == VT1802) {
/* PW4 (28h), MW4 (18h), MUX4(38h) */
@@ -1439,16 +1440,14 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec)
update_power_state(codec, 0x35, parm);
}
- if (spec->gen.indep_hp_enabled)
- update_power_state(codec, 0x9, AC_PWRST_D0);
-
/* Class-D */
/* PW0 (24h), MW0(18h/14h), MUX0(34h) */
present = snd_hda_jack_detect(codec, 0x25);
parm = AC_PWRST_D3;
set_pin_power_state(codec, 0x24, &parm);
- parm = present ? AC_PWRST_D3 : AC_PWRST_D0;
+ if (parm == AC_PWRST_D0)
+ parm = present ? AC_PWRST_D3 : AC_PWRST_D0;
if (spec->codec_type == VT1802)
update_power_state(codec, 0x14, parm);
else
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists