[alsa-devel] Issue with creative Xfi PCIe ca0110-IBG
Takashi Iwai
tiwai at suse.de
Tue Oct 13 13:31:22 CEST 2009
At Tue, 13 Oct 2009 13:28:05 +0200,
Guillem Solà wrote:
>
> Takashi Iwai wrote:
> > At Tue, 13 Oct 2009 12:26:29 +0200,
> > Guillem Solà wrote:
> >
> >> Takashi Iwai wrote:
> >>
> >>> At Tue, 13 Oct 2009 11:59:14 +0200,
> >>> Guillem Solà wrote:
> >>>
> >>>
> >>>> Takashi Iwai wrote:
> >>>>
> >>>>
> >>>>> At Tue, 13 Oct 2009 10:48:48 +0200,
> >>>>> Guillem Solà wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Takashi Iwai wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> At Fri, 09 Oct 2009 18:05:28 +0200,
> >>>>>>> Guillem Solà wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> Takashi Iwai wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> At Fri, 09 Oct 2009 16:15:00 +0200,
> >>>>>>>>> Guillem Solà wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> Ok Think I Finally get it :-)
> >>>>>>>>
> >>>>>>>> those are the latest steps I did, AFAIK it was the first commit after
> >>>>>>>> 2.6.31-rc5 as you said "The suspicious changes are the first one and the
> >>>>>>>> third one."
> >>>>>>>>
> >>>>>>>> deadff1665491afce124a8ff83f00f784161f660 is first bad commit
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>> Thanks! That's what I expected (and worried)...
> >>>>>>>
> >>>>>>> What happens if you apply the patch below to the latest alsa driver
> >>>>>>> (or 2.6.31-rc6)?
> >>>>>>>
> >>>>>>>
> >>>>>>> Takashi
> >>>>>>>
> >>>>>>> ---
> >>>>>>> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> >>>>>>> index d0effa3..81663a7 100644
> >>>>>>> --- a/sound/pci/hda/hda_intel.c
> >>>>>>> +++ b/sound/pci/hda/hda_intel.c
> >>>>>>> @@ -566,6 +566,7 @@ static void azx_free_cmd_io(struct azx *chip)
> >>>>>>>
> >>>>>>> static unsigned int azx_command_addr(u32 cmd)
> >>>>>>> {
> >>>>>>> +#if 0 /* XXX */
> >>>>>>> unsigned int addr = cmd >> 28;
> >>>>>>>
> >>>>>>> if (addr >= AZX_MAX_CODECS) {
> >>>>>>> @@ -574,6 +575,9 @@ static unsigned int azx_command_addr(u32 cmd)
> >>>>>>> }
> >>>>>>>
> >>>>>>> return addr;
> >>>>>>> +#else
> >>>>>>> + return 0;
> >>>>>>> +#endif
> >>>>>>> }
> >>>>>>>
> >>>>>>> static unsigned int azx_response_addr(u32 res)
> >>>>>>> @@ -818,6 +822,7 @@ static unsigned int azx_get_response(struct hda_bus *bus,
> >>>>>>> unsigned int addr)
> >>>>>>> {
> >>>>>>> struct azx *chip = bus->private_data;
> >>>>>>> + addr = 0; /* XXX */
> >>>>>>> if (chip->single_cmd)
> >>>>>>> return azx_single_get_response(bus, addr);
> >>>>>>> else
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>> I tried the patch you have attached, it patched well (I checked it) but
> >>>>>> seems to not work
> >>>>>>
> >>>>>> After make I tried to modprobe snd-hda-intel-ca0110 and I saw in dmesg:
> >>>>>>
> >>>>>> hda-intel: Invalid position buffer, using LPIB read method instead.
> >>>>>> alsactl[8292]: segfault at 0 ip (null) sp bfa83f1c error 14 in
> >>>>>> ld-2.5.so[54c000+1a000]
> >>>>>> HDA Intel 0000:05:00.0: PCI INT A disabled
> >>>>>>
> >>>>>> and after reboot:
> >>>>>>
> >>>>>> HDA Intel 0000:05:00.0: PCI INT A -> GSI 38 (level, low) -> IRQ 38
> >>>>>> hda-intel: spurious response 0x1102000a:0x1, last cmd=0x000000
> >>>>>> hda-intel: azx_get_response timeout, switching to polling mode: last
> >>>>>> cmd=0x100f0000
> >>>>>> hda-intel: Codec #1 probe error; disabling it...
> >>>>>> hda-intel: spurious response 0x1102000a:0x1, last cmd=0x000000
> >>>>>> hda_intel: azx_get_response timeout, switching to single_cmd mode: last
> >>>>>> cmd=0x100f0000
> >>>>>> hda-intel: no codecs initialized
> >>>>>> HDA Intel 0000:05:00.0: PCI INT A disabled
> >>>>>>
> >>>>>> It seems something went wrong
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>> It's not a right fix but a band-aid. With that patch, load with
> >>>>> probe_mask=0x01 option.
> >>>>>
> >>>>>
> >>>>> Takashi
> >>>>> _______________________________________________
> >>>>> Alsa-devel mailing list
> >>>>> Alsa-devel at alsa-project.org
> >>>>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >>>>>
> >>>>>
> >>>>>
> >>>> uhmm... don't know if I'm doing something wrong but
> >>>>
> >>>> modprobe snd-hda-codec-ca0110 probe_mask=0x01
> >>>>
> >>>> says:
> >>>>
> >>>> FATAL: Error inserting snd_hda_codec_ca0110
> >>>> (/lib/modules/2.6.31-rc6/extra/snd-hda-codec-ca0110.ko): Unknown symbol
> >>>> in module, or unknown parameter (see dmesg)
> >>>>
> >>>> in dmesg
> >>>> snd_hda_codec_ca0110: Unknown parameter `probe_mask'
> >>>>
> >>>> probe_mask option isn't only for snd-hda-intel?
> >>>>
> >>>>
> >>> Yes. Load it like
> >>>
> >>> modprobe snd-hda-intel probe_mask=0x01
> >>>
> >>> The codec modules will be loaded automatically by that.
> >>>
> >>>
> >>> Takashi
> >>> _______________________________________________
> >>> Alsa-devel mailing list
> >>> Alsa-devel at alsa-project.org
> >>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >>>
> >>>
> >> I did it too without success, hda-intel seems not to load automatically
> >> snd-hda-codec-ca0110
> >>
> >> (dmesg)
> >> HDA Intel 0000:05:00.0: PCI INT A -> GSI 38 (level, low) -> IRQ 38
> >> hda-intel: no codecs initialized
> >> HDA Intel 0000:05:00.0: PCI INT A disabled
> >>
> >
> > Without the patch, which slot was detected? It's possible that the
> > h/w communication stack is already disturbed somehow...
> >
> >
> > Takashi
> >
> >
> Hi,
>
> Without the patch it seems that lspci shows the same slot, isn't it?
It's not about the PCI slot but the codec address in HD-audio bus.
> 05:00.0 Audio device: Creative Labs [SB X-Fi Xtreme Audio] CA0110-IBG
> Subsystem: Creative Labs Unknown device 0018
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+
> Stepping- SERR+ FastB2B-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR-
> Latency: 32 (500ns min, 5000ns max)
> Interrupt: pin A routed to IRQ 38
> Region 0: Memory at df9fc000 (32-bit, non-prefetchable) [size=16K]
> Capabilities: [dc] Power Management version 3
> Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
> PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 PME-Enable- DSel=0 DScale=0 PME-ze=16K]
> Capabilities: [dc] Power Management version 3
>
> output from alsa-info.sh
>
> http://www.alsa-project.org/db/?f=7cd29b83a727482af373c50d7d8b5e2edb10f738
It shows the address 1. So, my patch doesn't work, as it assumes
address 0. Replace it with 1, and pass probe_mask=0x02.
Takashi
More information about the Alsa-devel
mailing list