At Mon, 10 Aug 2009 02:02:06 +0300, Ozan Çağlayan wrote:
Takashi Iwai wrote:
At Sun, 09 Aug 2009 15:10:31 +0300,
Could you load the module with probe_only=1 option and give alsa-info.sh output (or at least codec#* proc file)?
Ok, will provide that info too. BTW,
CPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 21 (level, low) -> IRQ 21 PCI: Setting latency timer of device 0000:00:1b.0 to 64 ** codec:0xf5846800 ** spec->dmux_nids:0x00000000 BUG: unable to handle kernel NULL pointer dereference at 00000000 IP: [<f8c7b4d5>] :snd_hda_codec_idt:stac92xx_init+0x29b/0x520 *pde = 00000000 Oops: 0000 [#1] SMP
spec->dmux_nids is NULL. Found the following commit:
Good catch. How about the patch below?
Thanks,
Takashi
--- diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index a75d6a0..7da4dc4 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -3701,7 +3701,7 @@ static int set_mic_route(struct hda_codec *codec, if (i < 0) return -1; mic->mux_idx = i; - } else { + } else if (spec->dmux->nids) { /* digital pin */ mic->mux_idx = 0; i = get_connection_index(codec, spec->dmux_nids[0], pin); @@ -4404,7 +4404,8 @@ static int stac92xx_init(struct hda_codec *codec) } if (spec->auto_mic) { /* initialize connection to analog input */ - snd_hda_codec_write_cache(codec, spec->dmux_nids[0], 0, + if (dmux->nids) + snd_hda_codec_write_cache(codec, spec->dmux_nids[0], 0, AC_VERB_SET_CONNECT_SEL, 0); if (enable_pin_detect(codec, spec->ext_mic.pin, STAC_MIC_EVENT)) stac_issue_unsol_event(codec, spec->ext_mic.pin);