[alsa-devel] hard freezes with hdsp with cardbus/pci adapter card
hi all,
i have some issues with playback on one of my machines with different kernels, having my rme hammerfall hdsp connected via a cardbus/pci adapter card.
after some time (between a few seconds and several minutes) of flawless playback, the system completely freezes, magic sysrq keys are not functional either ... the freeze occurs with rt and non-rt kernels, with jack running with and without realtime scheduling.
i have the suspicion, that it is related to the combination of the hdsp with the cardbus controller of the adapter card ...
the interesting part of lspci is: 06:01.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01) Subsystem: ENE Technology Inc CB1410 Cardbus Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 168, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at fb600000 (32-bit, non-prefetchable) [size=4K] Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176 Memory window 0: c4000000-c7fff000 (prefetchable) Memory window 1: c8000000-cbfff000 I/O window 0: 0000e000-0000e0ff I/O window 1: 0000e400-0000e4ff BridgeCtl: Parity+ SERR+ ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+ 16-bit legacy interface ports at 0001 Kernel driver in use: yenta_cardbus Kernel modules: yenta_socket
07:00.0 Multimedia audio controller: Xilinx Corporation RME Hammerfall DSP (rev 0f) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 255 Interrupt: pin A routed to IRQ 17 Region 0: Memory at c8000000 (32-bit, non-prefetchable) [size=64K] Kernel driver in use: RME Hammerfall DSP Kernel modules: snd-hdsp
the irq 17 is used by these two devices only. i am not sure, how to proceed debugging this, since i cannot get any useful debugging information ...
thnx, tim
Tim,
i have the suspicion, that it is related to the combination of the hdsp with the cardbus controller of the adapter card ...
Yes. Seen it several times. Get the PCI interface is the only advice I can give.
Flo
i have the suspicion, that it is related to the combination of the hdsp with the cardbus controller of the adapter card ...
Full bootlog please.
On 08/11/2009 07:06 AM, Wolfram Sang wrote:
i have the suspicion, that it is related to the combination of the hdsp with the cardbus controller of the adapter card ...
Full bootlog please.
attached
hm, actually, i think the issue is related to the pci latency of the cardbus controller.
after changing the latency timer of the card to 0xff, i am running the system for about an hour without freeze. the new output of lspci is:
06:01.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01) Subsystem: ENE Technology Inc CB1410 Cardbus Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 255, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at fb600000 (32-bit, non-prefetchable) [size=4K] Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176 Memory window 0: c4000000-c7fff000 (prefetchable) Memory window 1: c8000000-cbfff000 I/O window 0: 0000e000-0000e0ff I/O window 1: 0000e400-0000e4ff BridgeCtl: Parity+ SERR+ ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+ 16-bit legacy interface ports at 0001 Kernel driver in use: yenta_cardbus Kernel modules: yenta_socket
i am not sure, whether it is related, but the hdsp driver sets its latency timer to 0xff as well, commented with:
/* From Martin Bjoernsen : "It is important that the card's latency timer register in the PCI configuration space is set to a value much larger than 0 by the computer's BIOS or the driver. The windows driver always sets this 8 bit register [...] to its maximum 255 to avoid problems with some computers." */
maybe the ene bridge doesn't like to have devices connected, with a higher latency timer value, that it is using itself?
tim
Hi Tim,
hm, actually, i think the issue is related to the pci latency of the cardbus controller.
Looks like it:
http://lkml.indiana.edu/hypermail/linux/kernel/0404.1/0602.html
Do you know if the increased latency is needed for all bridges, not just ENE? (I'd assume so...)
Regards,
Wolfram
On 08/11/2009 11:25 AM, Wolfram Sang wrote:
Hi Tim,
hm, actually, i think the issue is related to the pci latency of the cardbus controller.
Looks like it:
http://lkml.indiana.edu/hypermail/linux/kernel/0404.1/0602.html
Do you know if the increased latency is needed for all bridges, not just ENE? (I'd assume so...)
i remember that issue, it had different symptoms (distorted sound) ... the ene bridge seems to be the only cardbus bridge, that requires the increased latency, but maybe other controllers are just more robust and don't completely freeze the system
cheers, tim
hm, actually, i think the issue is related to the pci latency of the cardbus controller.
Looks like it:
http://lkml.indiana.edu/hypermail/linux/kernel/0404.1/0602.html
Do you know if the increased latency is needed for all bridges, not just ENE? (I'd assume so...)
i remember that issue, it had different symptoms (distorted sound) ... the ene bridge seems to be the only cardbus bridge, that requires the increased latency, but maybe other controllers are just more robust and don't completely freeze the system
hm, i guess, it is not that easy ... having the hdsp running at 44.1khz, the machine ran for several hours, but when i switch the sampling rate to 96khz, the machine freezes quickly.
also playing with the pci latency settings of cardbus bridge and hdsp didn't change this. from my understanding the only difference between 44.1khz and 96khz in terms of the higher bandwidth ...
tim
participants (3)
-
Florian Faber
-
Tim Blechmann
-
Wolfram Sang