From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933143AbXHaLIj (ORCPT ); Fri, 31 Aug 2007 07:08:39 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932550AbXHaLIc (ORCPT ); Fri, 31 Aug 2007 07:08:32 -0400 Received: from mx2.suse.de ([195.135.220.15]:58917 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932542AbXHaLIb (ORCPT ); Fri, 31 Aug 2007 07:08:31 -0400 Date: Fri, 31 Aug 2007 13:08:29 +0200 Message-ID: From: Takashi Iwai To: Thomas Richter Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH] snd_hda_intel for F/S T4210 In-Reply-To: References: User-Agent: Wanderlust/2.15.5 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (=?ISO-8859-4?Q?Sanj=F2?=) APEL/10.6 MULE XEmacs/21.5 (beta28) (fuki) (+CVS-20070806) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org At Thu, 30 Aug 2007 17:04:14 +0200, I wrote: > > At Wed, 29 Aug 2007 17:34:19 +0200, > Thomas Richter wrote: > > > > Hi folks, > > > > the patch below, to be applied to sound/pci/hda/patch_sigmatel.c fixes the audio > > output on the Fujiutsu/Siemens lifebook T4210 (and probably on others). It is > > suitable for the kernel 2.6.23-rc4 (and probably others). > > > > Without the patch, audio fails and the hda driver fails to load with > > > > No available DAC for pin 0x0 > > > > However, the indicated pin has no connections in first place and thus should be ignored. > > With the patch applied audio output works fine. > > The problem is that nid = 0 is used. So, your patch just hides > another bug. Just looking at the code, the suspicious part is the automatic addition of shared I/O pins. Does the patch below fix? Takashi diff -r e7c9355af3ff sound/pci/hda/patch_sigmatel.c --- a/sound/pci/hda/patch_sigmatel.c Fri Aug 31 12:52:19 2007 +0200 +++ b/sound/pci/hda/patch_sigmatel.c Fri Aug 31 13:05:22 2007 +0200 @@ -1479,7 +1479,8 @@ static int stac92xx_add_dyn_out_pins(str case 3: /* add line-in as side */ if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 3) { - cfg->line_out_pins[3] = cfg->input_pins[AUTO_PIN_LINE]; + cfg->line_out_pins[cfg->line_outs] = + cfg->input_pins[AUTO_PIN_LINE]; spec->line_switch = 1; cfg->line_outs++; } @@ -1487,12 +1488,14 @@ static int stac92xx_add_dyn_out_pins(str case 2: /* add line-in as clfe and mic as side */ if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 2) { - cfg->line_out_pins[2] = cfg->input_pins[AUTO_PIN_LINE]; + cfg->line_out_pins[cfg->line_outs] = + cfg->input_pins[AUTO_PIN_LINE]; spec->line_switch = 1; cfg->line_outs++; } if (cfg->input_pins[AUTO_PIN_MIC] && num_dacs > 3) { - cfg->line_out_pins[3] = cfg->input_pins[AUTO_PIN_MIC]; + cfg->line_out_pins[cfg->line_outs] = + cfg->input_pins[AUTO_PIN_MIC]; spec->mic_switch = 1; cfg->line_outs++; } @@ -1500,12 +1503,14 @@ static int stac92xx_add_dyn_out_pins(str case 1: /* add line-in as surr and mic as clfe */ if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 1) { - cfg->line_out_pins[1] = cfg->input_pins[AUTO_PIN_LINE]; + cfg->line_out_pins[cfg->line_outs] = + cfg->input_pins[AUTO_PIN_LINE]; spec->line_switch = 1; cfg->line_outs++; } if (cfg->input_pins[AUTO_PIN_MIC] && num_dacs > 2) { - cfg->line_out_pins[2] = cfg->input_pins[AUTO_PIN_MIC]; + cfg->line_out_pins[cfg->line_outs] = + cfg->input_pins[AUTO_PIN_MIC]; spec->mic_switch = 1; cfg->line_outs++; }