* [PATCH] snd_hda_intel for F/S T4210
@ 2007-08-29 15:34 Thomas Richter
2007-08-30 15:04 ` Takashi Iwai
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Richter @ 2007-08-29 15:34 UTC (permalink / raw)
To: linux-kernel
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.
Here's the patch:
/* snip */
--- patch_sigmatel_old.c 2007-08-29 17:17:51.000000000 +0200
+++ patch_sigmatel.c 2007-08-29 17:21:25.000000000 +0200
@@ -1250,6 +1250,16 @@
nid = cfg->line_out_pins[i];
conn_len = snd_hda_get_connections(codec, nid, conn,
HDA_MAX_CONNECTIONS);
+ /* FIX THOR: For some hardware (notably the Fujiutsu/Siemens T4210
+ ** lifebook), we have nids with no pins whatsoever. Ignore
+ ** them.
+ */
+ if (conn_len == 0) {
+ snd_printk(KERN_ERR "%s: Found zero connections for pin 0x%0x "
+ "ignoring it.\n",__func__,nid);
+ continue;
+ }
+
for (j = 0; j < conn_len; j++) {
wcaps = snd_hda_param_read(codec, conn[j],
AC_PAR_AUDIO_WIDGET_CAP);
/* snip */
Greetings,
Thomas
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] snd_hda_intel for F/S T4210
2007-08-29 15:34 [PATCH] snd_hda_intel for F/S T4210 Thomas Richter
@ 2007-08-30 15:04 ` Takashi Iwai
2007-08-31 11:08 ` Takashi Iwai
0 siblings, 1 reply; 3+ messages in thread
From: Takashi Iwai @ 2007-08-30 15:04 UTC (permalink / raw)
To: Thomas Richter; +Cc: linux-kernel
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.
Please check whether the bug still exists with git.kernel.org
perex/alsa.git mm branch. If still there, build with
CONFIG_SND_DEBUG and show the autoconfig output.
thanks,
Takashi
>
> Here's the patch:
>
> /* snip */
> --- patch_sigmatel_old.c 2007-08-29 17:17:51.000000000 +0200
> +++ patch_sigmatel.c 2007-08-29 17:21:25.000000000 +0200
> @@ -1250,6 +1250,16 @@
> nid = cfg->line_out_pins[i];
> conn_len = snd_hda_get_connections(codec, nid, conn,
> HDA_MAX_CONNECTIONS);
> + /* FIX THOR: For some hardware (notably the Fujiutsu/Siemens T4210
> + ** lifebook), we have nids with no pins whatsoever. Ignore
> + ** them.
> + */
> + if (conn_len == 0) {
> + snd_printk(KERN_ERR "%s: Found zero connections for pin 0x%0x "
> + "ignoring it.\n",__func__,nid);
> + continue;
> + }
> +
> for (j = 0; j < conn_len; j++) {
> wcaps = snd_hda_param_read(codec, conn[j],
> AC_PAR_AUDIO_WIDGET_CAP);
> /* snip */
>
> Greetings,
> Thomas
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] snd_hda_intel for F/S T4210
2007-08-30 15:04 ` Takashi Iwai
@ 2007-08-31 11:08 ` Takashi Iwai
0 siblings, 0 replies; 3+ messages in thread
From: Takashi Iwai @ 2007-08-31 11:08 UTC (permalink / raw)
To: Thomas Richter; +Cc: linux-kernel
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++;
}
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-08-31 11:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-29 15:34 [PATCH] snd_hda_intel for F/S T4210 Thomas Richter
2007-08-30 15:04 ` Takashi Iwai
2007-08-31 11:08 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome