[alsa-devel] No recording on hda-intel (AD1981HD)
Takashi Iwai
tiwai at suse.de
Thu Feb 7 13:09:24 CET 2008
At Wed, 6 Feb 2008 12:09:35 +0100,
Grzegorz Chwesewicz wrote:
>
> From Andrew Morton:
>
> "Recording the bug in the alsa bugtracker is good, and Takashi is actively
> working on the bug, and he is the best guy to do that.
>
> So I don't think anything else really needs to be done here - please work
> with him on solving this?"
>
> ######################################
>
> Hi, Takashi, so can You help ? Below is my letter to LKML (in case You haven't
> read it yet).
Don't worry, I've been reading it, but had too little time to track
down.
> Problem description:
>
> I have a problem with recording on HP nx6325 notebook (hda-intel with AD1981HD
> codec). Playback works fine, but after 5-10 min. of recording microphone
> stops working (playback works all the time). Unloading and loading sound
> modules fixes problem, but only for another 5-10 minutes. This problem exists
> from more than a year (at least from 2.6.17.13 kernel). In [1] we came to
> conclusion that this problem is ralated to IRQ sharing [2] (HDA Intel is on
> the same IRQ as sata_sil).
>
> How to reproduce the problem:
>
> 1) on one console run arecord and see the output (You should see some garbage)
> 2) on another console run cat /etc/*
> 3) at once arecord on the first console gives no output
>
> So, doing lot of hdd I/O occurs problem with mic.
>
> What had been done:
>
> 1) I tried to boot Fedora 8 livecd and unload sata_sil, so that hda_intel was
> the only device using IRQ. After that microphone was working all the time (I
> left recording for all night, and in the morning I had almost 2h voip chat
> using Twinkle). So when sata_sil is unloaded, and hda-intel is not sharing
> the IRQ, the mic. is working all the time. Look at [3] to
> see /proc/interrupts output when laptop is booted from livecd, and mic works.
>
> 2) I tried to load hda-intel with enable_msi=1 (my RS480 chip is on blacklist,
> but I've removed it). Module loads and playback works ok, but problem with
> mic still exists. Difference here is that when recording stops to work the
> playback also stops to work (without MSI only mic stops to work). Look at [4]
> to see /proc/interrupts output when module is loaded with enable_msi=1.
>
> Question:
>
> What information I need to provide to help resolving the problem ? Where to
> start, because I've run out of ideas :) ?
This is a pretty nasty bug. Appreantly this seems specific to ATI
chipset, and I'm not sure whether it's AD1981HD specific, too.
(Due to the fact that it's related with IRQ, I guess rather not
specific to the codec chip.)
It's nice that you already tried MSI as I suggsted.
Could you check whether the irq handler still gets called? For
example, try the patch below and see whether the message appears.
thanks,
Takashi
diff -r 17f90f301932 pci/hda/hda_intel.c
--- a/pci/hda/hda_intel.c Thu Feb 07 12:06:32 2008 +0100
+++ b/pci/hda/hda_intel.c Thu Feb 07 12:54:48 2008 +0100
@@ -922,6 +922,10 @@ static irqreturn_t azx_interrupt(int irq
status = azx_readl(chip, INTSTS);
if (status == 0) {
spin_unlock(&chip->reg_lock);
+ if (chip->msi) {
+ printk(KERN_DEBUG "XXX hda-intel: status=0\n");
+ return IRQ_HANDLED;
+ }
return IRQ_NONE;
}
More information about the Alsa-devel
mailing list