Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802

From: Takashi Iwai
Date: Mon May 13 2013 - 11:53:18 EST


At Mon, 13 May 2013 17:26:04 +0200,
Takashi Iwai wrote:
>
> At Sun, 12 May 2013 11:53:41 +0200,
> Alex Riesen wrote:
> >
> > Hi,
> >
> > I just noticed (use the headphones rarely) that the headphones on this
> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
> > output.
> >
> > I tried reverting all changes to patch_via.c since v3.8, and
> > have the sound back, but there wasn't much to revert:
> >
> > Revert "ALSA: hda - Rearrange INPUT_PIN_ATTR_*"
> > Revert "ALSA: hda - Use generic parser for VIA codec driver"
> > Revert "ALSA: hda - Enable parsing the independent HP mode as default
> > for VIA codecs"
> > Revert "ALSA: hda/via - Fix wrong checks of power state bits"
> > Revert "ALSA: hda - Fix phantom jacks on VT1708"
> > Revert "ALSA: hda - detect jacks on VT1708 even when no streams are active"
> > Revert "ALSA: hda - Use generic array for loopback list management"
> >
> > and one change (which I indeed suspect) is large: the use of generic parser.
> >
> > The problem is also present in 3.10-rc1. The output of alsa-info.sh attached,
> > for 3.8.12 and 3.9.2 respectively.
>
> 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.
>
> 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

Also, what happens if you apply the patch below?


thanks,

Takashi

---
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..13ed791 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -1561,7 +1561,7 @@ static int patch_vt2002P(struct hda_codec *codec)

codec->patch_ops = via_patch_ops;

- spec->set_widgets_power_state = set_widgets_power_state_vt2002P;
+ //spec->set_widgets_power_state = set_widgets_power_state_vt2002P;
return 0;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/