[alsa-devel] 2.6.28-rc5 broke ALSA headphone output for my Toughbooks.

Takashi Iwai tiwai at suse.de
Fri Jan 9 08:51:58 CET 2009


At Thu, 8 Jan 2009 13:22:41 -0500,
Kyler Laird wrote:
> 
> On Thu, Jan 08, 2009 at 06:54:03PM +0100, Takashi Iwai wrote:
> 
> > Could you add dump_stack() in stac92xx_unsol_event() and check the
> > code path?
> 
> Jan  8 13:19:12 ruff kernel: HDA Intel 0000:00:1b.0: PCI INT A disabled
> Jan  8 13:19:12 ruff kernel: HDA Intel 0000:00:1b.0: power state changed by ACPI to D0
> Jan  8 13:19:12 ruff kernel: HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> Jan  8 13:19:12 ruff kernel: HDA Intel 0000:00:1b.0: setting latency timer to 64
> Jan  8 13:19:12 ruff kernel: (Kyler) stac92xx_unsol_event: 3221225472
> Jan  8 13:19:12 ruff kernel: Pid: 13602, comm: modprobe Not tainted 2.6.28 #1
> Jan  8 13:19:12 ruff kernel: Call Trace:
> Jan  8 13:19:12 ruff kernel:  [<e0a30af3>] stac92xx_unsol_event+0x33/0x380 [snd_hda_intel]
> Jan  8 13:19:12 ruff kernel:  [<e0a303b0>] stac92xx_init+0x120/0x490 [snd_hda_intel]

Weird.  I thought this path is active only when hp_detect != 0.
Could you check whether it's really correctly patched, e.g. by the
patch like below?

It seems applying my previous patch on 2.6.28 puts the code into a
wrong place.


Takashi

---
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index b77f330..9982e4b 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -3745,6 +3745,7 @@ static int stac92xx_init(struct hda_codec *codec)
 
 	/* set up pins */
 	if (spec->hp_detect) {
+		printk(KERN_DEBUG "XXX stac92xx_init -- hp_detect is ON!\n");
 		/* Enable unsolicited responses on the HP widget */
 		for (i = 0; i < cfg->hp_outs; i++)
 			enable_pin_detect(codec, cfg->hp_pins[i],
@@ -4129,6 +4130,11 @@ static int patch_stac9200(struct hda_codec *codec)
 		return err;
 	}
 
+	if (spec->board_config == STAC_9200_PANASONIC) {
+		printk(KERN_DEBUG "XXX panasonic quirk enabled\n");
+		spec->hp_detect = 0;
+	}
+
 	codec->patch_ops = stac92xx_patch_ops;
 
 	return 0;


More information about the Alsa-devel mailing list