Problem with Echo Audio card on Ricoh CardBus

Yon Mercury swirlee at stickist.com
Thu Nov 25 13:00:42 EST 2004


Hi everyone,

I've been working with the developer of the ALSA sound drivers for the Echo
line of Audio cards under Linux. We're trying to get the Indigo IO CardBus
card working with little success. 

The problem appears to be in the CardBus bridge. The driver loads DSP into the
Card successfully but fails shortly thereafter. We set some values in the card
and wait for a handshake via the card's comm page but nothing comes.
Apparently this is because the comm page is in system memory and the card
writes to it via DMA. So we suspect that the card's attempts to write to the
comm page are not getting thru.

That's our theory anyway. Here's an excerpt from dmesg:

Distro is Agnula (debian-based distro).
Kernel is 2.4.25 recompiled from sources with lowlatency and preempt patches.
PCMCIA-CS is compiled in kernel, not from pcmcia-sources. 
 
Linux Kernel Card Services 3.1.22
 options:  [pci] [cardbus] [pm]
 PCI: Found IRQ 10 for device 00:0f.0
 PCI: Found IRQ 10 for device 00:0f.1
 PCI: Sharing IRQ 10 with 00:0d.0
 Yenta ISA IRQ mask 0x0ab8, PCI irq 10
 Socket status: 30000820
 Yenta ISA IRQ mask 0x0ab8, PCI irq 10
 Socket status: 30000006
 cs: cb_alloc(bus 2): vendor 0x1057, device 0x3410
 PCI: Enabling device 02:00.0 (0000 -> 0002)
 cs: IO port probe 0x0100-0x04ff: excluding 0x4d0-0x4d7
 cs: IO port probe 0x0800-0x08ff: clean.
 cs: IO port probe 0x0c00-0x0cff: clean.
 cs: IO port probe 0x0a00-0x0aff: clean.
 ALSA echoaudio.c:1900: Echoaudio driver starting...
 ALSA echoaudio.c:1829: chip=c8e68014
 ALSA echoaudio.c:1852: pci=c9888c00 irq=10 subdev=00a0 Init hardware...
 ALSA indigoio_dsp.c:39: init_hw() - Indigo IO
 ALSA echoaudio_dsp.c:397: load_dsp: Set bad_board to TRUE
 ALSA echoaudio_dsp.c:364: Resident loader successfully installed
 ALSA echoaudio_dsp.c:188: Read serial number 00a07ff0 00a3bb83 000319a0
00e4df3c 007a46e1
 ALSA echoaudio_dsp.c:521: load_dsp: Set bad_board to FALSE
 ALSA echoaudio_dsp.c:739: restore_dsp_settings
 rds1
 rds2
 rds6
 ALSA echoaudio_dsp.c:62: wait_handshake(): Timeout waiting for DSP
 ALSA echoaudio.c:1864: init_hw err=fffffffb
 ALSA echoaudio.c:1772: Stop DSP...
 ALSA echoaudio_dsp.c:995: rest_in_peace() open=0
 ALSA echoaudio_dsp.c:955: stop_transport 0
 ALSA echoaudio_dsp.c:62: wait_handshake(): Timeout waiting for DSP
 ALSA echoaudio.c:1777: Stopped.
 ALSA echoaudio.c:1785: MMIO freed.
 ALSA echoaudio.c:1792: Chip freed.
 ALSA echoaudio.c:2075: Echoaudio soundcard not found or device busy


The Echo card works fine on this system under Windows. For debugging, we
checked the values of the CardBus bridge (Ricoh RL5c476 II) PCI registers on
Windows and Linux and compared them. Some differences, but I'm not proficient
enough to interpret them. Can anyone help sort this out?

Here are the values:

Linux
-----

localhost:~# lspci -s 00:0f.0 -xxx
0000:00:0f.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
00: 80 11 76 04 07 00 10 02 80 00 07 06 00 a8 82 00
10: 00 00 00 10 dc 00 00 22 00 02 05 b0 00 00 40 10
20: 00 f0 7f 10 00 00 80 10 00 f0 bf 10 00 40 00 00
30: fc 40 00 00 00 44 00 00 fc 44 00 00 0a 01 00 05
40: cf 10 9a 10 01 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 01 00 82 08 00 03 00 00 63 04 63 04 00 00 00 30
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: cf 10 9a 10 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
e0: 00 c0 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

localhost:~# lspci -s 00:0f.1 -xxx
0000:00:0f.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
00: 80 11 76 04 07 00 10 02 80 00 07 06 00 a8 82 00
10: 00 10 00 10 dc 00 00 02 00 06 09 b0 00 00 c0 10
20: 00 f0 ff 10 00 00 00 11 00 f0 3f 11 00 48 00 00
30: fc 48 00 00 00 4c 00 00 fc 4c 00 00 0a 02 80 05
40: cf 10 9a 10 01 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 01 00 82 08 00 03 00 00 63 04 63 04 00 00 00 30
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: cf 10 9a 10 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
e0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Windows
-------

__ Device __     CardBus Bridge
                                                                             
                                                                             
 00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F   Refresh    : ON        
 00 80 11 76 04 07 00 10 02 80 00 07 06 00 40 82 00                          
 10 00 00 00 00 DC 00 00 02 00 02 02 B0 00 00 10 0C   Rev ID        : 80    
 20 00 F0 1F 0C 00 00 00 00 00 00 00 00 FC FF 00 00   Int Line (IRQ): 0A    
 30 00 00 00 00 00 00 00 00 00 00 00 00 0A 01 00 04   Int Pin       : 01    
 40 CF 10 9A 10 01 00 00 00 00 00 00 00 00 00 00 00   Latency Timer : 40    
 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   Sub.Vendor ID : FFFC  
 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   Subsystem ID  : 0000  
 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                          
 80 00 00 82 08 00 03 00 00 63 04 63 04 00 00 00 30   #0: 00000000 FFFFF000  
 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   #1: 020000DC 020000DC  
 A0 00 00 00 00 00 00 00 00 00 00 0F 00 00 00 00 00   #2: B0020200 F8FFFFFF  
 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   #3: 0C100000 FFFFF000  
 C0 CF 10 9A 10 00 00 00 00 00 00 00 00 00 00 00 00   #4: 0C1FF000 FFFFF000  
 D0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 FE   #5: 00000000 FFFFF000  
 E0 00 C0 C0 24 00 00 00 00 00 00 00 00 00 00 00 00                          
 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ROM: 00000000          
                                                                             
 Type: PCI        Bus: 00  Device: 0F  Function: 00                          
 Type value to modify.                                                      

 __ Device __     CardBus Bridge

 30 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F   Refresh    : ON
 00 80 11 76 04 07 00 10 02 80 00 07 06 00 40 82 00
 10 00 10 00 0C DC 00 00 02 00 03 03 B0 00 F0 FF FF   Rev ID        : 80
 20 00 00 00 00 00 F0 FF FF 00 00 00 00 FC FF FF FF   Int Line (IRQ): 0A
 30 00 00 00 00 FC FF 00 00 00 00 00 00 0A 02 80 04   Int Pin       : 02
 40 CF 10 9A 10 01 00 00 00 00 00 00 00 00 00 00 00   Latency Timer : 40
 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   Sub.Vendor ID : FFFC
 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   Subsystem ID  : FFFF
 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80 00 00 82 08 00 03 00 00 63 04 63 04 00 00 00 30   #0: 0C001000 FFFFF000
 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   #1: 020000DC 020000DC
 A0 00 00 00 00 00 00 00 00 00 00 0F 00 00 00 00 00   #2: B0030300 F8FFFFFF
 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   #3: FFFFF000 FFFFF000
 C0 CF 10 9A 10 00 00 00 00 00 00 00 00 00 00 00 00   #4: 00000000 FFFFF000
 D0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 FE   #5: FFFFF000 FFFFF000
 E0 00 40 C0 24 00 00 00 00 00 00 00 00 00 00 00 00
 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ROM: 00000000

 Type: PCI        Bus: 00  Device: 0F  Function: 01


Thank You!
-JP Mercury




More information about the linux-pcmcia mailing list