At Mon, 13 May 2013 20:24:42 +0200,
Alex Riesen wrote:
> 
> On Mon, May 13, 2013 at 5:53 PM, Takashi Iwai <ti...@suse.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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to