Re: [alsa-devel] [PATCH] Sony Vaio with stac9872
At Tue, 28 Feb 2012 07:26:25 +0300, 107@mail.ru wrote:
2012/2/27 Takashi Iwai tiwai@suse.de:
At Fri, 24 Feb 2012 16:41:43 +0400, 107 wrote:
Hello, I have no sound on my Sony Vaio SZ4XRN laptop with newest kernels. Sound: hda-intel, sigmatel - STAC9872
To solve this issue I make this patch for sound/pci/hda/patch_sigmatel.c:
--- patch_sigmatel.c.bak 2012-02-23 21:01:28.577515317 +0400 +++ patch_sigmatel.c 2012-02-23 21:53:21.035605216 +0400 @@ -6357,7 +6357,16 @@ */
static const struct hda_verb stac9872_core_init[] = {
- {0x15, AC_VERB_SET_CONNECT_SEL, 0x1}, /* mic-sel: 0a,0d,14,02 */
- {0x0a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, /* HP <- 0x2 */
- {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, /* Speaker <- 0x5 */
- {0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? (<- 0x2) */
- {0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, /* CD */
- {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? */
- {0x15, AC_VERB_SET_CONNECT_SEL, 0x2 /*0x1*/ }, /* mic-sel: 0a,0d,14,02 */
- {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* HP */
- {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Speaker */
- {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* capture sw/vol -> 0x8 */
- {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, /* CD-in -> 0x6 */
{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Mic-in -> 0x9 */ {} };
Constants got from old kernel (2.6.22). With this patch sound works fine. Thank you.
Most of verbs above must be superfluous, but some of them might be needed in your case. Could you give alsa-info.sh outputs (run with --no-upload option) on both working and non-working cases?
thanks,
Takashi
Yes of course, here is my alsa-info-nosound.txt on default kernel and alsa-info-work.txt with patch (see attach).
Thanks. Could you check whether the one-liner below fixes your problem?
Takashi
--- diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 8c346ac..5988dbd 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4638,7 +4638,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec) unsigned int val = AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN; if (no_hp_sensing(spec, i)) continue; - if (presence) + if (1 /*presence*/) stac92xx_set_pinctl(codec, cfg->hp_pins[i], val); #if 0 /* FIXME */ /* Resetting the pinctl like below may lead to (a sort of) regressions
participants (1)
-
Takashi Iwai