ACPI (_PRS has invalid type 7) problem / regression

From: Ion-Mihai Tetcu <itetcu_at_apropo.ro>
Date: Mon, 22 Mar 2004 19:26:54 +0200
Hi,


Two days ago I've posted on current_at_ my problem about sound:

When I try to play something, I'm getting 
pcm0:play:0: play interrupt timeout, channel dead 
and just noise with sources from 18 Mar; the motherboard is a Gigabyte
GA-7VT600-L (VIA KT600 / 8237), on-board sound.

I think the problem is acpi routing related, namely :
-ioapic0: routing intpin 22 (IRQ 22) to cluster 0
+ioapic0: routing intpin 11 (IRQ 11) to cluster 0
-pcm0: <VIA VT8233X> port 0xe400-0xe4ff irq 22 at device 17.5 on pci0
+pcm0: <VIA VT8233X> port 0xe400-0xe4ff irq 11 at device 17.5 on pci0

Booting with acpi disabled "helps". Debug info (as per handbook
instructions) can be found at: http://people.tecnik93.com/acpi/

The change must have happen between 2004_03_04 and 2004_03_18.

I wonder if this helps:
>  njl         2004/03/20 12:47:09 PST
> 
>    FreeBSD src repository
> 
>    Modified files:
>      sys/dev/acpica       acpi_pcib.c 
>    Log:
>    Fix loop termination condition for parsing resources in _PRS buffers.
>    This completes the effort to handle dependent functions, which are used
>    in some machines for irq link resources.  Also, clean up some nearby
>    comments while I'm at it.
>    
>    Revision  Changes    Path
>    1.38      +18 -19    src/sys/dev/acpica/acpi_pcib.c
 


 Dmesg snip:

 pcib0: matched entry for 0.17.INTC (source \\_SB_.PCI0.ALKC)
 pcib0: _PRS has invalid type 7
 found-> vendor=0x1106, dev=0x3059, revid=0x60
         bus=0, slot=17, func=5
         class=04-01-00, hdrtype=0x00, mfdev=0
         cmdreg=0x0001, statreg=0x0210, cachelnsz=0 (dwords)
         lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
         intpin=c, irq=11
         powerspec 2  supports D0 D1 D2 D3  current D0
         map[10]: type 4, range 32, base 0000e800, size  8, enabled
         map[14]: type 1, range 32, base e2000000, size  8, enabled

 pcm0: <VIA VT8233X> port 0xe400-0xe4ff irq 11 at device 17.5 on pci0
 pcm0: <Avance Logic ALC655 AC97 Codec (id = 0x414c4760)>
 pcm0: Codec features 5 bit master volume, no 3D Stereo Enhancement
 pcm0: Primary codec extended features reserved 1, center DAC, surround DAC, LFE DAC, reserved 5
 pcm0: sndbuf_setmap 27b000, 1000; 0xc4407000 -> 27b000
 pcm0: sndbuf_setmap 2c0000, 1000; 0xc440c000 -> 2c0000
 pcm0: sndbuf_setmap 2ac000, 1000; 0xc4438000 -> 2ac000
 pcm0: sndbuf_setmap 28a000, 1000; 0xc4436000 -> 28a000
 pcm0: sndbuf_setmap 288000, 1000; 0xc4434000 -> 288000
 pcm0: sndbuf_setmap 266000, 1000; 0xc4432000 -> 266000

 pciconf shows:
 pcm0_at_pci0:17:5: class=0x040100 card=0xa0021458 chip=0x30591106 rev=0x60 hdr=0x00
     vendor   = 'VIA Technologies Inc'
     device   = 'VT8233/33A AC97 Enhanced Audio Controller'
     class    = multimedia
     subclass = audio

Bellow is a diff between the "working: system dmeg and the new one.
BTW, why does "TSC" frequency differ ?

bash-2.05b$ diff -u  dmesg_old dmesg_new
--- dmesg_old   Mon Mar 22 16:16:01 2004
+++ dmesg_new_r Mon Mar 22 17:00:27 2004
_at__at_ -1,21 +1,21 _at__at_
 Copyright (c) 1992-2004 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
-FreeBSD 5.2-CURRENT #0: Fri Mar  5 00:15:37 EET 2004
-    itetcu_at_it.buh.cameradicommercio.ro:/usr/obj/usr/src/sys/KSE_ULE_UP_apic_R_2004_03_04
+FreeBSD 5.2-CURRENT #1: Mon Mar 22 16:35:11 EET 2004
+    itetcu_at_it.buh.cameradicommercio.ro:/usr/obj/usr/src/sys/KSE_ULE_UP_apic_R_2004_03_18
 WARNING: WITNESS option enabled, expect reduced performance.
-Preloaded elf kernel "/boot/kernel.old/kernel" at 0xc0865000.
-Preloaded elf module "/boot/kernel.old/ipfw.ko" at 0xc0865248.
-Preloaded elf module "/boot/kernel.old/if_rl.ko" at 0xc08652f8.
-Preloaded elf module "/boot/kernel.old/miibus.ko" at 0xc08653a8.
-Preloaded elf module "/boot/kernel.old/snd_via8233.ko" at 0xc0865458.
-Preloaded elf module "/boot/kernel.old/snd_pcm.ko" at 0xc086550c.
-Preloaded elf module "/boot/kernel.old/dummynet.ko" at 0xc08655bc.
-Preloaded elf module "/boot/kernel.old/acpi.ko" at 0xc0865670.
-Calibrating clock(s) ... i8254 clock: 1193269 Hz
+Preloaded elf kernel "/boot/kernel/kernel" at 0xc0863000.
+Preloaded elf module "/boot/kernel/ipfw.ko" at 0xc0863244.
+Preloaded elf module "/boot/kernel/if_rl.ko" at 0xc08632f0.
+Preloaded elf module "/boot/kernel/miibus.ko" at 0xc086339c.
+Preloaded elf module "/boot/kernel/snd_via8233.ko" at 0xc0863448.
+Preloaded elf module "/boot/kernel/snd_pcm.ko" at 0xc08634f8.
+Preloaded elf module "/boot/kernel/dummynet.ko" at 0xc08635a4.
+Preloaded elf module "/boot/kernel/acpi.ko" at 0xc0863654.
+Calibrating clock(s) ... i8254 clock: 1193268 Hz
 CLK_USE_I8254_CALIBRATION not specified - using default frequency
 Timecounter "i8254" frequency 1193182 Hz quality 0
-Calibrating TSC clock ... TSC clock: 2040352396 Hz
+Calibrating TSC clock ... TSC clock: 2040351163 Hz
 CPU: AMD Athlon(tm) XP 2400+ (2040.35-MHz 686-class CPU)
   Origin = "AuthenticAMD"  Id = 0x681  Stepping = 1
   Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
_at__at_ -86,6 +86,7 _at__at_
 mem: <memory & I/O>
 Pentium Pro MTRR support enabled
 null: <null device, zero device>
+cpu0 on motherboard
 npx0: [FAST]
 npx0: <math processor> on motherboard
 npx0: INT 16 interface
_at__at_ -268,14 +269,13 _at__at_
        powerspec 2  supports D0 D3  current D0
        map[10]: type 4, range 32, base 0000e400, size  8, enabled
 pcib0: matched entry for 0.17.INTC (source \\_SB_.PCI0.ALKC)
-pcib0: possible interrupts:  22
-pcib0: slot 17 INTC routed to irq 22 via \\_SB_.PCI0.ALKC
+pcib0: _PRS has invalid type 7
 found->        vendor=0x1106, dev=0x3059, revid=0x60
        bus=0, slot=17, func=5
        class=04-01-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0001, statreg=0x0210, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
-       intpin=c, irq=22
+       intpin=c, irq=11
        powerspec 2  supports D0 D1 D2 D3  current D0
        map[10]: type 4, range 32, base 0000e800, size  8, enabled
        map[14]: type 1, range 32, base e2000000, size  8, enabled
_at__at_ -329,22 +329,22 _at__at_
 ata1: [MPSAFE]
 isab0: <PCI-ISA bridge> at device 17.0 on pci0
 isa0: <ISA bus> on isab0
-pcm0: <VIA VT8233X> port 0xe400-0xe4ff irq 22 at device 17.5 on pci0
+pcm0: <VIA VT8233X> port 0xe400-0xe4ff irq 11 at device 17.5 on pci0
 pcm0: <Avance Logic ALC655 AC97 Codec (id = 0x414c4760)>
 pcm0: Codec features 5 bit master volume, no 3D Stereo Enhancement
 pcm0: Primary codec extended features reserved 1, center DAC, surround DAC, LFE DAC, reserved 5
-pcm0: sndbuf_setmap 29f000, 1000; 0xc440b000 -> 29f000
+pcm0: sndbuf_setmap 2bf000, 1000; 0xc440b000 -> 2bf000
 pcm0: sndbuf_setmap 2ad000, 1000; 0xc4439000 -> 2ad000
 pcm0: sndbuf_setmap 28b000, 1000; 0xc4437000 -> 28b000
 pcm0: sndbuf_setmap 289000, 1000; 0xc4435000 -> 289000
 pcm0: sndbuf_setmap 287000, 1000; 0xc4433000 -> 287000
 pcm0: sndbuf_setmap 285000, 1000; 0xc4431000 -> 285000
 rl0: <RealTek 8139 10/100BaseTX> port 0xe800-0xe8ff mem 0xe2000000-0xe20000ff irq 18 at device 19.0 on pci0
-rl0: Ethernet address: 00:0d:61:b3:6f:9d
 miibus0: <MII bus> on rl0
 rlphy0: <RealTek internal media interface> on miibus0
 rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 rl0: bpf attached
+rl0: Ethernet address: 00:0d:61:b3:6f:9d
 unknown: not probed (disabled)
 unknown: not probed (disabled)
 fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
_at__at_ -405,8 +405,8 _at__at_
 vga: vga0 already exists; skipping it
 isa_probe_children: disabling PnP devices
 isa_probe_children: probing non-PnP devices
-pmtimer0 on isa0
 orm0: <Option ROM> at iomem 0xc0000-0xccfff on isa0
+pmtimer0 on isa0
 sc0: <System console> on isa0
 sc0: VGA <16 virtual consoles, flags=0x200>
 sc0: fb0, kbd0, terminal emulator: sc (syscons terminal)
_at__at_ -448,7 +448,7 _at__at_
 isa_probe_children: probing PnP devices
 Device configuration finished.
 procfs registered
-Timecounter "TSC" frequency 2040352396 Hz quality 800
+Timecounter "TSC" frequency 2040351163 Hz quality 800
 Timecounters tick every 1.000 msec
 ipfw2 initialized, divert disabled, rule-based forwarding enabled, default to deny, logging disabled
 DUMMYNET initialized (011031)
_at__at_ -468,12 +468,12 _at__at_
 ioapic0: routing intpin 7 (IRQ 7) to cluster 0
 ioapic0: routing intpin 8 (IRQ 8) to cluster 0
 ioapic0: routing intpin 9 (IRQ 9) to cluster 0
+ioapic0: routing intpin 11 (IRQ 11) to cluster 0
 ioapic0: routing intpin 12 (IRQ 12) to cluster 0
 ioapic0: routing intpin 13 (IRQ 13) to cluster 0
 ioapic0: routing intpin 14 (IRQ 14) to cluster 0
 ioapic0: routing intpin 15 (IRQ 15) to cluster 0
 ioapic0: routing intpin 18 (IRQ 18) to cluster 0
-ioapic0: routing intpin 22 (IRQ 22) to cluster 0
 [0] f:00 typ:165 s(CHS):0/1/1 e(CHS):1023/254/63 s:63 l:20964762
 [1] f:00 typ:165 s(CHS):1023/255/63 e(CHS):1023/254/63 s:20964825 l:163573830
 [2] f:80 typ:165 s(CHS):1023/255/63 e(CHS):1023/254/63 s:184538655 l:20964825




-- 
IOnut
Unregistered ;) FreeBSD user
Received on Mon Mar 22 2004 - 08:24:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:48 UTC