At Sun, 6 Sep 2009 15:16:57 +0100 (BST), Mark Hills wrote:
I have an Echo Layla 3G in my workstation. It works for audio, but does not recover from ACPI suspend to RAM.
On recovery the system is fine, and the Layla exists in /proc/asound/cards. But when the Layla is used it prints this message to dmesg, multiple times:
wait_handshake(): Timeout waiting for DSP
Here are the relevant dmesg lines after awakening:
Echoaudio Echo3G 0000:03:03.0: restoring config space at offset 0xf (was 0x100, writing 0x104) Echoaudio Echo3G 0000:03:03.0: restoring config space at offset 0x4 (was 0x0, writing 0xe7d00000) Echoaudio Echo3G 0000:03:03.0: restoring config space at offset 0x3 (was 0x0, writing 0xc010) Echoaudio Echo3G 0000:03:03.0: restoring config space at offset 0x1 (was 0x2800000, writing 0x2800112) Echoaudio Echo3G 0000:03:03.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
I couldn't see anything loading the firmware. I thought unloading and loading snd-echo3g after recovery would help. This shows the firmware being loaded, but then no ALSA device is shown in /proc/asound/cards. On loading snd-echo3g:
Echoaudio Echo3G 0000:03:03.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 Echoaudio Echo3G 0000:03:03.0: firmware: requesting ea/echo3g_dsp.fw Echoaudio Echo3G 0000:03:03.0: firmware: requesting ea/loader_dsp.fw Echoaudio Echo3G 0000:03:03.0: PCI INT A disabled Echoaudio Echo3G: probe of 0000:03:03.0 failed with error -5
Is the firmware not being loaded when it should be? Or is there some extra initialisation not being done (eg. init_hw() in echo3g_dsp.c)?
This driver doesn't support PM at all. So, this behavior is expected. Try to unload at suspend and reload at resume by some script.
Takashi