From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753272AbYKKRDd (ORCPT ); Tue, 11 Nov 2008 12:03:33 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751670AbYKKRDY (ORCPT ); Tue, 11 Nov 2008 12:03:24 -0500 Received: from mx2.suse.de ([195.135.220.15]:58669 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751623AbYKKRDY convert rfc822-to-8bit (ORCPT ); Tue, 11 Nov 2008 12:03:24 -0500 Date: Tue, 11 Nov 2008 18:03:22 +0100 Message-ID: From: Takashi Iwai To: Valdis.Kletnieks@vt.edu Cc: Andrew Morton , perex@perex.cz, linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org Subject: Re: 2.6.28-rc2-mm1 - sound semi-busted on Dell Latitude D820 In-Reply-To: References: <4411.1226345758@turing-police.cc.vt.edu> User-Agent: Wanderlust/2.12.0 (Your Wildest Dreams) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (=?ISO-8859-4?Q?Sanj=F2?=) APEL/10.6 Emacs/22.3 (x86_64-suse-linux-gnu) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At Tue, 11 Nov 2008 08:47:54 +0100, I wrote: > > At Mon, 10 Nov 2008 14:35:58 -0500, > Valdis.Kletnieks@vt.edu wrote: > > > > Sometime between -mmotm1017 and -rc2-mm1, something odd happened to the > > sound subsystem. On my Dell Latitude D820, audio works OK if it's sitting > > there standalone, or in its docking station. > > > > However, when I plug in headphones, it goes silent. > > To confirm a regression, could you copy sound/pci/hda/patch_sigmatel.c > from 2.6.27 kernel and check the driver works? Does the same problem > exist in 2.6.28-rc kernel? Could you try the patch below? There is another patch for a missing capture mux control, but in your case, it doesn't matter because you didn't change the value. I'll post that patch later, too. thanks, Takashi === >>From 4f1e6bc3646ab50b8181555ab7e6eeab68b8632a Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 11 Nov 2008 16:47:24 +0100 Subject: [PATCH] ALSA: hda - Fix input pin initialization for STAC/IDT codecs The input pins are sometimes not initialized properly because of the optimization check of the current pinctl code. Force to initialize the mic input pins so that they can be set up properly even if they were in a weird state. But keep other input pins if already set up as input, since this could be an extra mic pin. Reference: Novell bnc#443738 https://bugzilla.novell.com/show_bug.cgi?id=443738 Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_sigmatel.c | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 1627756..a511601 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -3653,14 +3653,18 @@ static int stac92xx_init(struct hda_codec *codec) for (i = 0; i < AUTO_PIN_LAST; i++) { hda_nid_t nid = cfg->input_pins[i]; if (nid) { - unsigned int pinctl = snd_hda_codec_read(codec, nid, - 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - /* if PINCTL already set then skip */ - if (pinctl & AC_PINCAP_IN) - continue; - pinctl = AC_PINCTL_IN_EN; - if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC) - pinctl |= stac92xx_get_vref(codec, nid); + unsigned int pinctl; + if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC) { + /* for mic pins, force to initialize */ + pinctl = stac92xx_get_vref(codec, nid); + } else { + pinctl = snd_hda_codec_read(codec, nid, 0, + AC_VERB_GET_PIN_WIDGET_CONTROL, 0); + /* if PINCTL already set then skip */ + if (pinctl & AC_PINCTL_IN_EN) + continue; + } + pinctl |= AC_PINCTL_IN_EN; stac92xx_auto_set_pinctl(codec, nid, pinctl); } } -- 1.6.0.4