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).
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 :) ?
References: [1] https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2449
######################################
[2] cat /proc/interrupts (IRQ sharing) CPU0 CPU1 0: 71953009 0 local-APIC-edge-fasteoi timer 1: 36662 1 IO-APIC-edge i8042 8: 1 1 IO-APIC-edge rtc 12: 147 1 IO-APIC-edge i8042 14: 49 2 IO-APIC-edge ide0 16: 681511809 679908107 IO-APIC-fasteoi sata_sil, HDA Intel 18: 29 1 IO-APIC-fasteoi 19: 430379 1 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 20: 0 1 IO-APIC-fasteoi sdhci:slot0, yenta 21: 1231834 9 IO-APIC-fasteoi acpi 23: 2273726 1 IO-APIC-fasteoi eth0 NMI: 0 0 Non-maskable interrupts LOC: 0 71952388 Local timer interrupts RES: 44883365 19180072 Rescheduling interrupts CAL: 57631 790 function call interrupts TLB: 7262 11762 TLB shootdowns TRM: 0 0 Thermal event interrupts SPU: 0 0 Spurious interrupts ERR: 37465 MIS: 0
[ceho@ensima-hp ~]$ cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
[ceho@ensima-hp ~]$ uname -a Linux ensima-hp 2.6.24 #7 SMP PREEMPT Mon Feb 4 20:34:21 CET 2008 i686 AMD Turion(tm) 64 X2 Mobile Technology TL-56 AuthenticAMD GNU/Linux
######################################
[3] [fedora@localhost ~]$ cat /proc/interrupts CPU0 CPU1 0: 3014988 0 local-APIC-edge-fasteoi timer 1: 0 1881 IO-APIC-edge i8042 8: 0 1 IO-APIC-edge rtc 12: 0 151 IO-APIC-edge i8042 14: 2 17391 IO-APIC-edge libata 15: 0 0 IO-APIC-edge libata 16: 1 49 IO-APIC-fasteoi yenta, firewire_ohci, tifm_7xx1, sdhci:slot0 17: 0 23001 IO-APIC-fasteoi ohci_hcd:usb1, ohci_hcd:usb2, ehci_hcd:usb3 18: 0 260787 IO-APIC-fasteoi HDA Intel 20: 0 297695 IO-APIC-fasteoi eth1 21: 3 2304 IO-APIC-fasteoi acpi NMI: 0 0 LOC: 0 3014807 ERR: 15 MIS: 0
[fedora@localhost ~]$ cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Oct 23 06:09:18 2007 UTC).
[fedora@localhost ~]$ uname -a Linux localhost.localdomain 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 13:55:12 EDT 2007 i686 athlon i386 GNU/Linux
######################################
[4] cat /proc/interrupts CPU0 CPU1 0: 51997092 0 local-APIC-edge-fasteoi timer 1: 50850 2 IO-APIC-edge i8042 8: 1 1 IO-APIC-edge rtc 12: 792 2 IO-APIC-edge i8042 14: 9331 2 IO-APIC-edge ide0 16: 0 1 IO-APIC-fasteoi yenta, sdhci:slot0 17: 3449488 190200 IO-APIC-fasteoi eth0 18: 492896 6 IO-APIC-fasteoi sata_sil 20: 457421 1 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 21: 181549 9 IO-APIC-fasteoi acpi 220: 50035 1136607 PCI-MSI-edge HDA Intel NMI: 0 0 Non-maskable interrupts LOC: 0 51994900 Local timer interrupts RES: 3435250 2342689 Rescheduling interrupts CAL: 9842 2528 function call interrupts TLB: 11148 18295 TLB shootdowns TRM: 0 0 Thermal event interrupts SPU: 0 0 Spurious interrupts ERR: 113 MIS: 0
######################################