Indigos are well known for distortions when running on some buggy ENE controllers. There is a workaround in the yenta driver, but for some reason it isn't activated on CB712. However, I own a laptop with such chip and it seems that it also is affected - I can clearly hear occasional cracks, especially under heavy network load, and in Windows XP the card is completely unusable :)
This simple change fixed things for me:
--- yenta_socket.c~ 2009-12-09 20:53:14.000000000 +0100
+++ yenta_socket.c 2010-02-01 17:04:06.000000000 +0100
@@ -1358,7 +1358,7 @@ static struct pci_device_id yenta_table
CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_7610, TI12XX),
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_710, TI12XX),
- CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_712, TI12XX),
+ CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_712, ENE),
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_720, TI12XX),
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_722, TI12XX),
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1211, ENE),
I've only touched the CB712, but Echo's FAQ says that CB710 and CB720 are also affected.
On my system, ene_tune_bridge() changes register 0xC9 from 4 to 2. Changing it few times back and forth with setpci during playback with running "ping -f" confirmed that this is indeed the cause of my problem.
06:04.0 0607: 1524:1412 (rev 10)
06:04.0 CardBus bridge: ENE Technology Inc CB-712/4 Cardbus Controller (rev 10)
Subsystem: Acer Incorporated [ALI] Device 0090
Flags: bus master, medium devsel, latency 168, IRQ 16
Memory at f0102000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176
Memory window 0: 60000000-63fff000 (prefetchable)
Memory window 1: 68000000-6bfff000
I/O window 0: 00007000-000070ff
I/O window 1: 00007400-000074ff
16-bit legacy interface ports at 0001
Kernel driver in use: yenta_cardbus
Kernel modules: yenta_socket
07:00.0 0480: 1057:3410 (rev 01)
07:00.0 Multimedia controller: Motorola DSP56361 Digital Signal Processor (rev 01)
Subsystem: Echo Digital Audio Corporation Indigo IO
Flags: bus master, medium devsel, latency 192, IRQ 16
Memory at 68000000 (32-bit, non-prefetchable) [size=1M]
Kernel driver in use: Echoaudio Indigo IO
Kernel modules: snd-indigoio
hm, OK, thanks. I added it - hopefully Daniel will be able to have a think about it. I worry that the change will break someone else's card...
In future, please send patches via email, not bugzilla.
Bugfix merged f3d4ae431d819200bb61e943cb23572b10744e93 -- closing this bug.