[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

> 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 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.



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) {
+		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