[alsa-devel] Issue with creative Xfi PCIe ca0110-IBG

Takashi Iwai tiwai at suse.de
Tue Oct 13 12:39:08 CEST 2009


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


More information about the Alsa-devel mailing list