Distribution: Fedora Core 2 Hardware Environment: HP zx5000 laptop, ATI IXP150 Soundcard on ATIIXP Chipset Software Environment: Alsa 1.05 Problem Description: I'm not a very experienced linux user, but posted the following after being told to do so by the author of the ATI IXP150 driver (Takashi Iwao) who said it's an ACPI problem. He was correct, it works fine if I disable ACPI. He said it may be an IRQ routing problem. My soundcard is detected fine and works, but there is a problem: With ACPI, the sound in any game as well as other sounds (such as those when I receive messages on gaim) sorts of "freezes" until I move the mouse. If I keep moving the mouse while the sound is coming out, there is no problem. The problem arises of the mouse is not being moved. For example, if someone send me a message in gaim, the sound keeps repeating until I move the mouse. I have attached the outputs from dmesg, lsmod and lspci. You may notice some strange messages in the dmesg. Also, I tried recompiling a newer kernel from source, but same problem. Output of dmesg: [root@localhost etc]# dmesg Linux version 2.6.5-1.358 (bhcompile@bugs.build.redhat.com) (gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)) #1 Sat May 8 09:04:50 EDT 2004 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f800 (usable) BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000d0000 - 00000000000d8000 (reserved) BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000002ff70000 (usable) BIOS-e820: 000000002ff70000 - 000000002ff7d000 (ACPI data) BIOS-e820: 000000002ff7d000 - 000000002ff80000 (ACPI NVS) BIOS-e820: 000000002ff80000 - 0000000030000000 (reserved) BIOS-e820: 000000003ff80000 - 0000000040000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved) 0MB HIGHMEM available. 767MB LOWMEM available. zapping low mappings. On node 0 totalpages: 196464 DMA zone: 4096 pages, LIFO batch:1 Normal zone: 192368 pages, LIFO batch:16 HighMem zone: 0 pages, LIFO batch:1 DMI present. ACPI: RSDP (v000 PTLTD ) @ 0x000f66a0 ACPI: RSDT (v001 PTLTD RSDT 0x06040000 LTP 0x00000000) @ 0x2ff791b0 ACPI: FADT (v001 HP Chinook 0x06040000 ATI 0x000f4240) @ 0x2ff7ce7d ACPI: SSDT (v001 PTLTD ACPIPST1 0x06040000 LTP 0x00000001) @ 0x2ff7cef1 ACPI: MADT (v001 PTLTD APIC 0x06040000 LTP 0x00000000) @ 0x2ff7cfa6 ACPI: DSDT (v001 HP SB200 0x06040000 INTL 0x20030509) @ 0x00000000 ACPI: PM-Timer IO Port: 0x8008 Built 1 zonelists Kernel command line: ro root=LABEL=/ mapped 4G/4G trampoline to ffff3000. Initializing CPU#0 CPU 0 irqstacks, hard=02345000 soft=02344000 PID hash table entries: 4096 (order 12: 32768 bytes) Detected 2800.547 MHz processor. Using pmtmr for high-res timesource Console: colour VGA+ 80x25 Memory: 775972k/785856k available (1540k kernel code, 9120k reserved, 599k data, 144k init, 0k highmem) Calibrating delay loop... 5554.17 BogoMIPS Security Scaffold v1.0.0 initialized SELinux: Initializing. SELinux: Starting in permissive mode There is already a security framework initialized, register_security failed. Failure registering capabilities with the kernel selinux_register_security: Registering secondary module capability Capability LSM initialized Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 CPU: Trace cache: 12K uops, L1 D cache: 8K CPU: L2 cache: 512K CPU: After all inits, caps: bfebf3ff 00000000 00000000 00000080 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU#0: Intel P4/Xeon Extended MCE MSRs (12) available CPU: Intel Mobile Intel(R) Pentium(R) 4 CPU 2.80GHz stepping 09 Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX NET: Registered protocol family 16 PCI: PCI BIOS revision 2.10 entry at 0xfd968, last bus=2 PCI: Using configuration type 1 mtrr: v2.0 (20020519) ACPI: Subsystem revision 20040326 ACPI: IRQ9 SCI: Edge set to Level Trigger. ACPI: Interpreter enabled ACPI: Using PIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) PCI: Ignoring BAR0-3 of IDE controller 0000:00:14.1 Transparent bridge - 0000:00:14.4 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT] ACPI: PCI Interrupt Link [LNK0] (IRQs 5 *10 11) ACPI: PCI Interrupt Link [LNK1] (IRQs 5 *10 11) ACPI: PCI Interrupt Link [LNK2] (IRQs *5 10 11) ACPI: PCI Interrupt Link [LNK3] (IRQs 5 10 *11) ACPI: Embedded Controller [EC0] (gpe 6) Linux Plug and Play Support v0.97 (c) Adam Belay usbcore: registered new driver usbfs usbcore: registered new driver hub ACPI: PCI Interrupt Link [LNK3] enabled at IRQ 11 ACPI: PCI Interrupt Link [LNK0] enabled at IRQ 10 ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 10 ACPI: PCI Interrupt Link [LNK2] enabled at IRQ 5 PCI: Using ACPI for IRQ routing PCI: if you experience problems, try using option 'pci=noacpi' or even 'acpi=off' apm: BIOS not found. audit: initializing netlink socket (disabled) audit(1086213780.806:0): initialized Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) SELinux: Registering netfilter hooks Initializing Cryptographic API pci_hotplug: PCI Hot Plug PCI Core version: 0.5 ACPI: Processor [CPU0] (supports C1 C2) ACPI: Thermal Zone [THRM] (46 C) isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Real Time Clock Driver v1.12 Linux agpgart interface v0.100 (c) Dave Jones agpgart: Detected Ati IGP9100/M chipset agpgart: Maximum main memory to use for agp memory: 690M agpgart: AGP aperture is 32M @ 0xea000000 Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize divert: not allocating divert_blk for non-ethernet device lo Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx ATIIXP: IDE controller at PCI slot 0000:00:14.1 ATIIXP: chipset revision 0 ATIIXP: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x8060-0x8067, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0x8068-0x806f, BIOS settings: hdc:DMA, hdd:pio hda: FUJITSU MHT2060AH, ATA DISK drive Using cfq io scheduler ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hdc: HL-DT-STCD-RW/DVD DRIVE GCC-4241N, ATAPI CD/DVD-ROM drive ide1 at 0x170-0x177,0x376 on irq 15 hda: max request size: 128KiB hda: 117210240 sectors (60011 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100) hda: hda1 hda2 hda3 hda4 < hda5 > hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, DMA Uniform CD-ROM driver Revision: 3.20 ide-floppy driver 0.99.newide usbcore: registered new driver hiddev usbcore: registered new driver hid drivers/usb/input/hid-core.c: v2.0:USB HID core driver mice: PS/2 mouse device common for all mice i8042.c: Detected active multiplexing controller, rev 1.1. serio: i8042 AUX0 port at 0x60,0x64 irq 12 serio: i8042 AUX1 port at 0x60,0x64 irq 12 atkbd.c: Unknown key pressed (raw set 0, code 0x17e on isa0060/serio2). atkbd.c: Use 'setkeycodes 7e <keycode>' to make it known. serio: i8042 AUX2 port at 0x60,0x64 irq 12 atkbd.c: Unknown key pressed (raw set 0, code 0x17e on isa0060/serio3). atkbd.c: Use 'setkeycodes 7e <keycode>' to make it known. serio: i8042 AUX3 port at 0x60,0x64 irq 12 input: PS/2 Generic Mouse on isa0060/serio4 serio: i8042 KBD port at 0x60,0x64 irq 1 input: AT Translated Set 2 keyboard on isa0060/serio0 md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27 NET: Registered protocol family 2 IP: routing cache hash table of 8192 buckets, 64Kbytes TCP: Hash tables configured (established 262144 bind 65536) Initializing IPsec netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 ACPI: (supports S0 S3 S4 S5) checking if image is initramfs...it isn't (no cpio magic); looks like an initrd Freeing initrd memory: 183k freed md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. RAMDISK: Compressed image found at block 0 VFS: Mounted root (ext2 filesystem). kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. Freeing unused kernel memory: 144k freed SELinux: Disabled at runtime. SELinux: Unregistering netfilter hooks ACPI: AC Adapter [ACAD] (on-line) ACPI: Battery Slot [BAT1] (battery present) ACPI: Power Button (FF) [PWRF] ACPI: Lid Switch [LID] ehci_hcd 0000:02:07.2: EHCI Host Controller ehci_hcd 0000:02:07.2: irq 11, pci mem 3283cc00 ehci_hcd 0000:02:07.2: new USB bus registered, assigned bus number 1 ehci_hcd 0000:02:07.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29 hub 1-0:1.0: USB hub found hub 1-0:1.0: 5 ports detected ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ohci_hcd: block sizes: ed 64 td 64 ohci_hcd 0000:00:13.0: OHCI Host Controller ohci_hcd 0000:00:13.0: irq 11, pci mem 32851000 ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected ohci_hcd 0000:00:13.1: OHCI Host Controller ohci_hcd 0000:00:13.1: irq 11, pci mem 32853000 ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3 hub 3-0:1.0: USB hub found hub 3-0:1.0: 3 ports detected ohci_hcd 0000:02:07.0: OHCI Host Controller ohci_hcd 0000:02:07.0: irq 10, pci mem 32855000 ohci_hcd 0000:02:07.0: new USB bus registered, assigned bus number 4 hub 4-0:1.0: USB hub found hub 4-0:1.0: 3 ports detected ohci_hcd 0000:02:07.1: OHCI Host Controller ohci_hcd 0000:02:07.1: irq 5, pci mem 32857000 ohci_hcd 0000:02:07.1: new USB bus registered, assigned bus number 5 hub 5-0:1.0: USB hub found hub 5-0:1.0: 2 ports detected usb 4-1: new low speed USB device using address 2 input: USB HID v1.00 Mouse [Microsoft Microsoft 3-Button Mouse with IntelliEye?] on usb-0000:02:07.0-1 EXT3 FS on hda5, internal journal device-mapper: 4.1.0-ioctl (2003-12-10) initialised: dm@uk.sistina.com cdrom: open failed. Adding 786232k swap on /dev/hda3. Priority:-1 extents:1 IA-32 Microcode Update Driver: v1.13 <tigran@veritas.com> microcode: No suitable data for cpu 0 parport0: PC-style at 0x378 [PCSPP,EPP] SCSI subsystem initialized inserting floppy driver for 2.6.5-1.358 floppy0: no floppy controllers found 8139too Fast Ethernet driver 0.9.27 divert: allocating divert_blk for eth0 eth0: RealTek RTL8139 at 0xa000, 00:02:3f:20:9e:12, IRQ 11 eth0: Identified 8139 chip type 'RTL-8101' divert: freeing divert_blk for eth0 ip_tables: (C) 2000-2002 Netfilter core team 8139too Fast Ethernet driver 0.9.27 divert: allocating divert_blk for eth0 eth0: RealTek RTL8139 at 0xa000, 00:02:3f:20:9e:12, IRQ 11 eth0: Identified 8139 chip type 'RTL-8101' ip_tables: (C) 2000-2002 Netfilter core team eth0: link up, 100Mbps, half-duplex, lpa 0x40A1 Linux Kernel Card Services options: [pci] [cardbus] [pm] Yenta: CardBus bridge found at 0000:02:04.0 [103c:006b] Yenta: ISA IRQ mask 0x00d8, PCI irq 10 Socket status: 30000006 Yenta: CardBus bridge found at 0000:02:04.1 [103c:006b] Yenta: ISA IRQ mask 0x00d8, PCI irq 10 Socket status: 30000006 cs: IO port probe 0x0c00-0x0cff: excluding 0xc00-0xc07 0xc10-0xc17 0xc50-0xc57 0xc68-0xc6f 0xcd0-0xcd7 cs: IO port probe 0x0100-0x04ff: excluding 0x200-0x20f 0x378-0x37f 0x408-0x40f 0x4d0-0x4d7 cs: IO port probe 0x0a00-0x0aff: clean. parport0: PC-style at 0x378 [PCSPP,EPP] lp0: using parport0 (polling). lp0: console ready NET: Registered protocol family 10 Disabled Privacy Extensions on device 022db720(lo) IPv6 over IPv4 tunneling driver divert: not allocating divert_blk for non-ethernet device sit0 eth0: no IPv6 routers present irq 5: nobody cared! (screaming interrupt?) Call Trace: [<021070c9>] __report_bad_irq+0x2b/0x67 [<02107161>] note_interrupt+0x43/0x66 [<02107327>] do_IRQ+0x109/0x169 [<02107073>] handle_IRQ_event+0x1d/0x48 [<02107311>] do_IRQ+0xf3/0x169 ======================= [<0211af64>] __do_softirq+0x2c/0x73 [<021078f5>] do_softirq+0x46/0x4d ======================= [<0210737b>] do_IRQ+0x15d/0x169 [<021b213d>] acpi_processor_idle+0xd3/0x1c5 [<0210408c>] cpu_idle+0x1f/0x34 [<02318612>] start_kernel+0x174/0x176 handlers: [<0221522d>] (usb_hcd_irq+0x0/0x4b) Disabling IRQ #5 atiixp: codec read timeout atiixp: codec read timeout atiixp: codec read timeout atiixp: codec read timeout -------------------------------------------------- Output of lsmod [root@localhost etc]# lsmod Module Size Used by snd_pcm_oss 40740 0 snd_mixer_oss 13824 3 snd_pcm_oss snd_atiixp 12580 3 snd_ac97_codec 50436 1 snd_atiixp snd_pcm 68872 2 snd_pcm_oss,snd_atiixp snd_timer 17156 1 snd_pcm snd 38372 8 snd_pcm_oss,snd_mixer_oss,snd_atiixp,snd_ac97_codec,snd_pcm,snd_timer sn d_page_alloc 7940 2 snd_atiixp,snd_pcm soundcore 6112 3 snd ipv6 184288 8 parport_pc 19392 1 lp 8236 0 parport 29640 2 parport_pc,lp autofs4 10624 0 ds 12292 4 yenta_socket 15104 0 pcmcia_core 46792 2 ds,yenta_socket sunrpc 101064 1 8139too 17792 0 mii 3584 1 8139too sg 27552 0 scsi_mod 91344 1 sg microcode 4768 0 dm_mod 33184 0 joydev 6976 0 ohci_hcd 14748 0 ehci_hcd 21896 0 button 4504 0 battery 6924 0 asus_acpi 8472 0 ac 3340 0 ext3 102376 1 jbd 40216 1 ext3 --------------------------------------------------------------- Output of lspci 00:00.0 Host bridge: ATI Technologies Inc: Unknown device 5833 (rev 02) 00:01.0 PCI bridge: ATI Technologies Inc: Unknown device 5838 00:13.0 USB Controller: ATI Technologies Inc: Unknown device 4347 (rev 01) 00:13.1 USB Controller: ATI Technologies Inc: Unknown device 4348 (rev 01) 00:14.0 SMBus: ATI Technologies Inc ATI SMBus (rev 16) 00:14.1 IDE interface: ATI Technologies Inc: Unknown device 4349 00:14.3 ISA bridge: ATI Technologies Inc: Unknown device 434c 00:14.4 PCI bridge: ATI Technologies Inc: Unknown device 4342 00:14.5 Multimedia audio controller: ATI Technologies Inc IXP150 AC'97 Audio Controller 00:14.6 Modem: ATI Technologies Inc: Unknown device 434d (rev 01) 01:05.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10] 02:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) 02:02.0 Network controller: Broadcom Corporation BCM94306 802.11g (rev 03) 02:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 02:04.0 CardBus bridge: Texas Instruments: Unknown device ac54 (rev 01) 02:04.1 CardBus bridge: Texas Instruments: Unknown device ac54 (rev 01) 02:04.2 System peripheral: Texas Instruments: Unknown device 8201 (rev 01) 02:07.0 USB Controller: NEC Corporation USB (rev 43) 02:07.1 USB Controller: NEC Corporation USB (rev 43) 02:07.2 USB Controller: NEC Corporation USB 2.0 (rev 04) **I can't give any other outputs since I've recompiled the kernel without ACPI and there is NO chance that I'll go back to that incredible pain, but I hope this helps the ACPI developers to fix it**
If you are able boot an ACPI-enabled kernel, linux 2.6.9 or newer and you still see problems, then please re-open and attach (don't paste) the dmesg output (so that I can actually read it), and paste in the output from cat /proc/interrupts, and lspci -vv.
Created attachment 4320 [details] Output of dmesg
Created attachment 4321 [details] Output of /proc/interrupts
Created attachment 4322 [details] Output of lspci -vv
Tried on kernel 2.6.9 (Fedora Core 3) and get the IRQ problem when there is any sound. From what I've got in the last couple of days it disables IRQ 5, which is used by ndiswrapper for my wireless card. So I can't use the network anymore! Have attached output of dmesg, /proc/interrupts and lspci -vv as asked by Len Brown. IS there any temporary solution (patch or anything) until kernel is fixed? Do you think it'll fix temporarily if I remove alsa from the kernel? I need to use the network, please help!!
It appears that atiixp sound device shares IRQ5 with the USB mouse. USB is enabled first. But just as atiixp is being enabled, USB on IRQ5 dies because it is receiving interrupts that it can't handle. If you wiggle the mouse, this allows the USB mouse to claim some of those interrupts on IRQ5 and thus survive. atiixp, in the meantime is erroneously looking for interrupts up on IRQ 10. Please attach the output from acpidmp, available in /usr/sbin or in pmtools here: http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/ I can use this to confirm the interrupt mapping is correct, but based on the dmesg, it appears that Linux did not change the interrupt mapping from what the BIOS set up, so it looks good so far. Please disable the snd_printf(... atiixp: codec read timeout (...)" messages and re-collect the dmesg -s64000 from the failure case. Please attach the dmesg and /proc/interrupts from the "acpi=off" case. I expect they'll show atiixp on IRQ10, the question is if there is some sort of ATI quirk running to make that work. BTW. you may be able to get USB off of IRQ5 by adding cmdline parameter "acpi_irq_isa=5" and "acpi_irq_balance" -- but that would be a workaround hiding the bug rather than a fix.
Created attachment 4352 [details] "dmesg -s64000" from the failure case
Created attachment 4353 [details] output from acpidmp
Created attachment 4354 [details] dmesg for acpi=off
Created attachment 4355 [details] /proc/interrupts from acpi=off
Len: I've attached everything you wanted. For the dmesg (failure case) I did not know how to disble the snd_printf() and could not find out how to do it. If you still need it then please tell how to disable it. Hopefully you can fix it. Last few days I've got several people replying to my thread in a forum, these people with atiixp all having the same problem. I'll try the workaround now.
Tried the workaround cmdline parameters you gave. Now according to /proc/interrupts the USB has been removed from IRQ 5. The dmesg no longer complaints about screaming IRQs. However, the mouse wiggling has become much worse. In fact without the workaround, in 2.6.9 I don't rally need to wiggle the mouse but it would bring down the network. Tell me if you need any outputs from the workaround case. Thanks.
Did you enable IOAPIC (select config APIC and IOAPIC) make your system work?
Turned on IOAPIC and have not been able to recreate error last few days, so it must have fixed the IRQ problem! Anyway I have attached the output of /proc/interrupts if anyone wants to have a look. Thanks for the fix, David Shaohua!!
Created attachment 4420 [details] cat /proc/interrupts
looks like enabling the IOAPIC fixed the problem. Fortunately, almost all the distros enable the IOAPIC these days. Please re-open if you want to debug the PIC-mode failure or if you have a problem with 2.6.22.stable or later.
unrelated to the issue in this bug report, but of historical, or perhaps academic, significance... the DSDT for this HP zx5000 laptop implements the optional ACPI 2.0 _GTS (Going to Sleep) method: Method (_GTS, 1, NotSerialized) { Store (0x01, \_SB.PCI0.LPC0.PWSC) Store (0x00, \_SB.PCI0.LPC0.EC0.THEN) Store (0x00, \_SB.PCI0.LPC0.EC0.DUTY) If (LEqual (Arg0, 0x03)) { Store (0x01, \_SB.PCI0.P2P.USB0.USS0) Store (0x01, \_SB.PCI0.P2P.USB1.USS1) Store (0x01, \_SB.PCI0.P2P.USB2.USS2) } } ...which appears to tickle some ATI chipset registers on entry to suspend. Curiously, the DSDT does not implement a matching _BFS method. This is the 1st implementation of _GTS I've seen.