Bug 37111

Summary: via82cxxx: timeout after AC97 codec write
Product: [Retired] Red Hat Linux Reporter: Leigh L. Klotz, Jr. <klotz>
Component: kernelAssignee: Michael K. Johnson <johnsonm>
Status: CLOSED WORKSFORME QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-04-23 01:13:30 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Leigh L. Klotz, Jr. 2001-04-22 23:47:11 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.4.3llk1 i686)


When I attempt to use sound on my machine, it hangs for a long time and
prints out messages about via82cxxx timeouts.  I've looked at 28334, but
it's not that because this bug happens during module loading of via82cxxx
driver.


Reproducible: Always
Steps to Reproduce:
1. Install RedHat Linux 7.1 on an Intel Pentium MMX P150 with laptop
install (arch i586). Remove laptop drive and put into I-Opener with AMD
K6-III+ processor (arch also i586)
Let kudzu do its stuff on boot.  No errors seen.  The only oddity here that
is different from a normal install is moving from an Intel to and AMD
version of an i586 arch.  However, this is how I installed 6.2 and 7.0 and
sound worked in them.  (I am presently recompling the 
 kernel supplied with RedHat 7.1, with the K6 flag set, to make sure it is
not that.)  This is a fresh install, not an upgrade.  No /etc/isapnp.conf
file is present.

2. Attempt to use sound (sndconfig, or just do startx with gnome as
default)
Same errors can be achieved by doing "modprobe via82cxxx_audio" directly
instead of
running a program that uses sound.

	

Actual Results:  Get timeout errors on via82cxxx.  Eventually command
(sndconfig, startx, whatever uses the sound chip) exits.


Expected Results:  Sound should have worked, as it did with RedHat 7.0.


Four things: /var/log/messages, /proc/interrupts, lspci -vv,
/etc/modules.conf

# tail -xxx /var/log/messages
Apr 20 17:03:04 pais131-183 kernel: via82cxxx: timeout waiting on AC97
codec
Apr 20 17:22:41 pais131-183 kernel: Via 686a audio driver 1.1.14b
Apr 20 17:22:41 pais131-183 kernel: PCI: Found IRQ 11 for device 00:07.5
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0xAA0000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x2A, 0x1)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0xAA0000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: Codec rate locked at 48Khz
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x0, 0x0)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout waiting on AC97
codec
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0x800000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x3C, 0x0)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0xBC0000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0xFC0000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0xFE0000)
Apr 20 17:22:41 pais131-183 kernel: ac97_codec: AC97  codec, id:
0x0000:0x0000 (Unknown)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0x800000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x2, 0x2020)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0x820000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x2, 0x1515)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x18, 0xA0A)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0xA, 0xA)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x10, 0xA0A)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0xE, 0x8000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x12, 0xA0A)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x1C, 0xA0A)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x16, 0xA0A)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0xC, 0xA)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x6, 0x15)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x14, 0xA0A)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout while reading AC97
codec (0xAA0000)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: timeout after AC97 codec
write (0x2A, 0x1)
Apr 20 17:22:41 pais131-183 kernel: via82cxxx: board #1 at 0xDC00, IRQ 11


# /sbin/lspci -vv
00:00.0 Host bridge: VIA Technologies, Inc. VT8501 [Apollo MVP4] (rev 03)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR+
        Latency: 0
        Region 0: Memory at d8000000 (32-bit, prefetchable) [size=64M]
        Capabilities: [a0] AGP version 2.0
                Status: RQ=7 SBA+ 64bit- FW- Rate=x1,x2
                Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>

00:01.0 PCI bridge: VIA Technologies, Inc. VT8501 [Apollo MVP4 AGP]
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR+
        Latency: 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        Memory behind bridge: dc000000-dfffffff
        BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-

00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South]
(rev 1b)
        Subsystem: VIA Technologies, Inc. VT82C686/A PCI to ISA Bridge
        Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr-
Stepping+ SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0

00:07.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
(prog-if 8a [Master SecP PriP])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32
        Region 4: I/O ports at d000 [size=16]
        Capabilities: [c0] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:07.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 0e) (prog-if
00 [UHCI])
        Subsystem: Unknown device 0925:1234
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32, cache line size 08
        Interrupt: pin D routed to IRQ 15
        Region 4: I/O ports at d400 [size=32]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:07.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 0e) (prog-if
00 [UHCI])
        Subsystem: Unknown device 0925:1234
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32, cache line size 08
        Interrupt: pin D routed to IRQ 15
        Region 4: I/O ports at d800 [size=32]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
(rev 20)
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

00:07.5 Multimedia audio controller: VIA Technologies, Inc. AC97 Audio
Controller (rev 21)
        Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Interrupt: pin C routed to IRQ 11
        Region 0: I/O ports at dc00 [size=256]
        Region 1: I/O ports at e000 [size=4]
        Region 2: I/O ports at e400 [size=4]
        Capabilities: [c0] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i7d (rev
5c) (prog-if 00 [VGA])
        Subsystem: Trident Microsystems: Unknown device 8400
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32
        Interrupt: pin A routed to IRQ 15
        Region 0: Memory at dd800000 (32-bit, non-prefetchable) [size=8M]
        Region 1: Memory at de000000 (32-bit, non-prefetchable) [size=128K]
        Region 2: Memory at dd000000 (32-bit, non-prefetchable) [size=8M]
        Expansion ROM at <unassigned> [disabled] [size=64K]
        Capabilities: [80] AGP version 1.0
                Status: RQ=32 SBA+ 64bit- FW- Rate=x1,x2
                Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>
        Capabilities: [90] Power Management version 1
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

# cat /proc/interrupts
           CPU0       
  0:     487910          XT-PIC  timer
  1:       7309          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  5:          2          XT-PIC  MS Sound System
  8:          3          XT-PIC  rtc
 11:          0          XT-PIC  via82cxxx
 12:         22          XT-PIC  PS/2 Mouse
 14:      38111          XT-PIC  ide0
 15:     153433          XT-PIC  usb-uhci, usb-uhci
NMI:          0 
ERR:          0

# cat /etc/modules.conf
alias parport_lowlevel parport_pc
alias sound-slot-0 via82cxxx_audio
post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null
2>&1 || :
pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null
2>&1 || :
alias sound-slot-1 opl3sa2
post-install sound-slot-1 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null
2>&1 || :
pre-remove sound-slot-1 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null
2>&1 || :
alias usb-controller usb-uhci
alias eth0 pegasus

Comment 1 Leigh L. Klotz, Jr. 2001-04-23 01:13:25 UTC
I just tried with a fresh Redhat 7.1 kernel compiled for K6-III arch and got the
same problem.


Comment 2 Leigh L. Klotz, Jr. 2001-04-24 18:09:58 UTC
I re-ran sndconfig and this time it decided that sound-slot-0 was opl3sa3 not
via82cxxx_audio
and now sound works.  So I dunno why sndconfig produced via82cxxx_audio one time
and
opl3sa3 another (this is still with the stock RedHat 7.1 kernel, not my
compilation of it as I briefly ran).

Anyway, I'm resolving this as WORKSFORME since it now no longer fails.