Re: i810 sound starts and stops for 2.4.XX and i845PE chipset

From: edward.kuns@rockwellfirstpoint.com
Date: Tue Dec 17 2002 - 12:16:26 EST


Alan Cox <alan@lxorguk.ukuu.org.uk> wrote on 12/16/2002 04:21:42 PM:

> On Mon, 2002-12-16 at 21:03, edward.kuns@rockwellfirstpoint.com wrote:
> At a first guess it may be IRQ routing. If you build a kernel with
> apic/local apic support does that work any better ?

Sadly, no, it doesn't help. But you're absolutely right that it must be
IRQ routing. Here is additional information from experimentation. This
kernel is derived from the Red Hat 2.4.18-18.8.0 kernel, with the
i810_audio.c replaced with the version 0.24 from Alan's 2.4.20-ac2, and I
ran "make xconfig" to add APIC support. My config file is attached to this
message.

When I run Chromium (as a great test of whether sound works, grin) and
watch /proc/interrupts, as long as sound is audibly playing I watch the
interrupt counter for IRQ 17 (labelled "Intel ICH4") increase. When the
sound disappears but should be playing, that interrupt counter stays put,
no increase. When the sound reappears, the interrupt counter begins
increasing again as it should. There is no sudden jump in value, so it's
not like "lost" interrupts suddenly get delivered. (Which I know would
make no sense in hardware, but still thought I'd point that out. The
hardware I'm familiar with in terms of drivers and kernels and interrupts
is Motorola 68k family. Intel is thus far alien to me!)

After recompiling APIC support into the kernel, I see the following dmesg
upon bootup:

6
PCI->APIC IRQ transform: (B0,I31,P1) -> 17
PCI->APIC IRQ transform: (B0,I31,P1) -> 17
PCI->APIC IRQ transform: (B1,I0,P0) -> 16
PCI->APIC IRQ transform: (B2,I0,P0) -> 18
PCI->APIC IRQ transform: (B2,I2,P0) -> 22
PCI->APIC IRQ transform: (B2,I7,P0) -> 16
PCI->APIC IRQ transform: (B2,I7,P1) -> 18
PCI->APIC IRQ transform: (B2,I7,P2) -> 21
PCI->APIC IRQ transform: (B2,I8,P0) -> 20
PCI->APIC IRQ transform: (B2,I12,P0) -> 18

Remember that all of the "md" messages I get (I use RAID5 for my /home
partition) wipe out the kernel's circular message buffer so the above is
missing the top part. Following the above part is the normal boot stuff
with nothing to do with APIC. Next, here is /proc/interrupts with the
newer kernel:

           CPU0
  0: 301241 IO-APIC-edge timer
  1: 1441 IO-APIC-edge keyboard
  2: 0 XT-PIC cascade
  8: 1 IO-APIC-edge rtc
 14: 494 IO-APIC-edge ide0
 15: 2498 IO-APIC-edge ide1
 16: 34105 IO-APIC-level usb-ohci, usb-uhci, nvidia
 17: 7696 IO-APIC-level Intel ICH4
 18: 55676 IO-APIC-level ide2, aic7xxx, usb-ohci, usb-uhci
 19: 0 IO-APIC-level usb-uhci
 20: 7 IO-APIC-level eth0
 21: 0 IO-APIC-level ehci-hcd
 23: 0 IO-APIC-level ehci-hcd
NMI: 0
LOC: 301191
ERR: 0
MIS: 0

Next, the full set of i810 messages from when sound is enabled:

i810: Intel ICH4 found at IO 0xd800 and 0xd400, MEM 0xec002000 and
0xec003000, IRQ 17
i810: Intel ICH4 mmio at 0xe1c03000 and 0xe1c05000
i810_audio: Primary codec has ID 0
i810_audio: Audio Controller supports 6 channels.
i810_audio: Defaulting to base 2 channel mode.
i810_audio: Resetting connection 0
i810_audio: Connection 0 with codec id 0
ac97_codec: AC97 Audio codec, id: 0x414c:0x4720 (ALC650)
i810_audio: AC'97 codec 0, new EID value = 0x05c7
i810_audio: AC'97 codec 0, DAC map configured, total channels = 6

Next /proc/iomem:

00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000d8000-000da7ff : Extension ROM
000db000-000e03ff : Extension ROM
000f0000-000fffff : System ROM
00100000-1ffeffff : System RAM
  00100000-00236d22 : Kernel code
  00236d23-0032cca3 : Kernel data
1fff0000-1fff2fff : ACPI Non-volatile Storage
1fff3000-1fffffff : ACPI Tables
20000000-200003ff : Intel Corp. 82801DB IDE U100
d0000000-d7ffffff : PCI device 8086:2560 (Intel Corp.)
d8000000-e7ffffff : PCI Bus #01
  d8000000-dfffffff : nVidia Corporation NV1x
  e0000000-e007ffff : nVidia Corporation NV1x
e8000000-e9ffffff : PCI Bus #01
  e8000000-e8ffffff : nVidia Corporation NV1x
eb000000-eb003fff : Promise Technology, Inc. PDC20276 IDE
eb004000-eb004fff : NEC Corporation USB
  eb004000-eb004fff : usb-ohci
eb005000-eb005fff : NEC Corporation USB (#2)
  eb005000-eb005fff : usb-ohci
eb006000-eb0060ff : NEC Corporation USB 2.0
  eb006000-eb0060ff : ehci-hcd
eb007000-eb007fff : PCI device 8086:103a (Intel Corp.)
  eb007000-eb007fff : eepro100
eb008000-eb008fff : Adaptec AIC-7892B U160/m
  eb008000-eb008fff : aic7xxx
ec000000-ec0003ff : Intel Corp. 82801DB USB EHCI Controller
  ec000000-ec0003ff : ehci-hcd
ec002000-ec0021ff : Intel Corp. 82801DB AC'97 Audio
  ec002000-ec0021ff : ich_audio MMBAR
ec003000-ec0030ff : Intel Corp. 82801DB AC'97 Audio
  ec003000-ec0030ff : ich_audio MBBAR
fec00000-ffffffff : reserved

next /proc/ioports:

00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
02f8-02ff : serial(auto)
0376-0376 : ide1
0378-037a : parport0
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
0cf8-0cff : PCI conf1
5000-501f : Intel Corp. 82801DB SMBus
9000-90ff : Adaptec AIC-7892B U160/m
9400-9407 : US Robotics/3Com 56K FaxModem Model 5610
  9400-9407 : serial(auto)
9800-983f : PCI device 8086:103a (Intel Corp.)
  9800-983f : eepro100
9c00-9c07 : Promise Technology, Inc. PDC20276 IDE
  9c00-9c07 : ide2
a000-a003 : Promise Technology, Inc. PDC20276 IDE
  a002-a002 : ide2
a400-a407 : Promise Technology, Inc. PDC20276 IDE
a800-a803 : Promise Technology, Inc. PDC20276 IDE
ac00-ac0f : Promise Technology, Inc. PDC20276 IDE
  ac00-ac07 : ide2
  ac08-ac0f : ide3
b000-b01f : Intel Corp. 82801DB USB (Hub #2)
  b000-b01f : usb-uhci
b400-b41f : Intel Corp. 82801DB USB (Hub #3)
  b400-b41f : usb-uhci
b800-b81f : Intel Corp. 82801DB USB (Hub #1)
  b800-b81f : usb-uhci
01f0-0000 : Intel Corp. 82801DB IDE U100
03f4-0000 : Intel Corp. 82801DB IDE U100
0170-0000 : Intel Corp. 82801DB IDE U100
0374-0000 : Intel Corp. 82801DB IDE U100
cc00-cc0f : Intel Corp. 82801DB IDE U100
  cc00-cc07 : ide0
  cc08-cc0f : ide1
d400-d4ff : Intel Corp. 82801DB AC'97 Audio
  d400-d4ff : Intel ICH4
d800-d83f : Intel Corp. 82801DB AC'97 Audio
  d800-d83f : Intel ICH4

Any ideas on what I can test next? Thanks! Again, this all worked
perfectly for me on an i845G board, but I'm having this problem on an
i845PE board. I'm guessing something changed.

      Eddie

(See attached file: config)

--
Edward Kuns
Technical Staff Member
Rockwell FirstPoint Contact
edward.kuns@rockwellfirstpoint.com
www.rockwellfirstpoint.com


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Dec 23 2002 - 22:00:17 EST