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:
Takashi Iwai wrote:
At Fri, 09 Oct 2009 11:19:04 +0200, Guillem Solà wrote:
Hi,
I have a Creative XFi PCIe with ca0110-IBG chip. It's primary use is audio input for streaming on a brand new Dell server with RHEL. I have been testing latest kernel 2.6.31 through it's releases candidates and the card stoped working on 2.6.31-rc6, so now I'm stuck at 2.6.31-rc5. With rc5 I made a 2 weeks test and it went flawlessly.
There's another guy who referenced this issue on http://mailman.alsa-project.org/pipermail/alsa-devel/2009-September/020876.h... and Takashi Iwai said that there is a communication error between the codec and the controller.
Any workaround? Is there a bug created related to this issue?
I tried to "extract" the alsa-driver on 2.6.31-rc5 and install it 2.6.31 final without success. Also tried to get old snapshots from alsa-driver and alsa-kmirror but I cannot compile them. Any place where get some info about how to create
Then some codes added after rc5 regressed? The candidates are not so many but a few:
deadff1665491afce124a8ff83f00f784161f660 ALSA: hda: track CIRB/CORB command/response states for each codec
a678cdee25a387c8fc3b2754974695412baf1d85 ALSA: hda: take cmd_mutex in probe_codec()
cdb1fbf23181c133fb24f12ad14ccea7dc399599 ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_io
c32649feb4573b31f0a2bfdf35cbe1351256c764 ALSA: hda: read CORBWP inside reg_lock
feb273404f15d86098cb0e81e46330d5c1e22b1b ALSA: hda: remember last command for each codec
The suspicious changes are the first one and the third one. But, anyway, it'd be helpful if you can bisect these.
If you can use git, git-bisect would be the best to try. Do bisect only for changes in sound/pci/hda directory between 2.6.31-rc5 and rc6.
thanks,
Takashi
Ok I read how to do bisect with git and so on. Also take latest alsa from git.
Now the question is do I have to do bisect from alsa-kernel? (that's what I'm trying now) but that implies recompile kernel in every step, isn't it?
If you can build the kernel by yourself, and you already find that 2.6.31-rc5 works as is, I recommend you to bisect the kernel tree.
As mentioned, the commits to bisect are only for sound/pci/hda directory, and there aren't so many. You can just rebuild the module with "make M=sound/pci/hda" during bisecting.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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