[alsa-devel] Can't resume from suspend because firmware is not found ?!?
I tested suspend/resume on a laptop because I failed to make it work on my G4 (grr!!). Suspend work, resume does not. From dmesg (below) it looks like the soundcard driver is asked to resume before the ATA driver, thus is cannot load the firmware. Am I overlooking something ? Suggestions ?
---- Echoaudio Indigo IOx 0000:07:00.0: resume Echoaudio Indigo IOx 0000:07:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 Echoaudio Indigo IOx 0000:07:00.0: enabling bus mastering ALSA echoaudio.c:2177: res res1 Echoaudio Indigo IOx 0000:07:00.0: firmware: requesting ea/indigo_iox_dsp.fw PM: Adding info for No Bus:0000:07:00.0 ata4.00: ACPI cmd ef/03:0c:00:00:00:a0 filtered out ata4.00: ACPI cmd ef/03:42:00:00:00:a0 filtered out ata4.00: configured for UDMA/33 ata2: SATA link down (SStatus 0 SControl 300) ata3: SATA link down (SStatus 0 SControl 300) ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: _GTF unexpected object type 0x1 ata1.00: _GTF unexpected object type 0x1 ata1.00: configured for UDMA/100 tg3: eth0: Link is up at 10 Mbps, half duplex. tg3: eth0: Flow control is off for TX and off for RX. PM: Removing info for No Bus:0000:07:00.0 ALSA echoaudio.c:47: get_firmware(): Firmware not available (-2) pm_op(): pci_pm_resume+0x0/0x79 returns -2 PM: Device 0000:07:00.0 failed to resume: error -2 ----
At Sat, 12 Sep 2009 22:38:00 +0200, Giuliano Pochini wrote:
I tested suspend/resume on a laptop because I failed to make it work on my G4 (grr!!). Suspend work, resume does not. From dmesg (below) it looks like the soundcard driver is asked to resume before the ATA driver, thus is cannot load the firmware. Am I overlooking something ? Suggestions ?
You can't load the firmware file in resume phase because the system isn't yet ready at this stage. Either postpone it or keep the old firmware and reuse it.
Takashi
Echoaudio Indigo IOx 0000:07:00.0: resume Echoaudio Indigo IOx 0000:07:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 Echoaudio Indigo IOx 0000:07:00.0: enabling bus mastering ALSA echoaudio.c:2177: res res1 Echoaudio Indigo IOx 0000:07:00.0: firmware: requesting ea/indigo_iox_dsp.fw PM: Adding info for No Bus:0000:07:00.0 ata4.00: ACPI cmd ef/03:0c:00:00:00:a0 filtered out ata4.00: ACPI cmd ef/03:42:00:00:00:a0 filtered out ata4.00: configured for UDMA/33 ata2: SATA link down (SStatus 0 SControl 300) ata3: SATA link down (SStatus 0 SControl 300) ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: _GTF unexpected object type 0x1 ata1.00: _GTF unexpected object type 0x1 ata1.00: configured for UDMA/100 tg3: eth0: Link is up at 10 Mbps, half duplex. tg3: eth0: Flow control is off for TX and off for RX. PM: Removing info for No Bus:0000:07:00.0 ALSA echoaudio.c:47: get_firmware(): Firmware not available (-2) pm_op(): pci_pm_resume+0x0/0x79 returns -2 PM: Device 0000:07:00.0 failed to resume: error -2
-- Giuliano. _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Mon, 14 Sep 2009 11:39:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sat, 12 Sep 2009 22:38:00 +0200, Giuliano Pochini wrote:
I tested suspend/resume on a laptop because I failed to make it work on my G4 (grr!!). Suspend work, resume does not. From dmesg (below) it looks like the soundcard driver is asked to resume before the ATA driver, thus is cannot load the firmware. Am I overlooking something ? Suggestions ?
You can't load the firmware file in resume phase because the system isn't yet ready at this stage. Either postpone it or keep the old firmware and reuse it.
*sigh* Ok, I'll try to find a workaround. I don't want to keep the firmware in memory. Is there a way to know if resume is still in progress or when it is possible to load the firmware ? I could -as last resort- load the firmware in the prepare callback.
At Wed, 16 Sep 2009 00:27:42 +0200, Giuliano Pochini wrote:
On Mon, 14 Sep 2009 11:39:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sat, 12 Sep 2009 22:38:00 +0200, Giuliano Pochini wrote:
I tested suspend/resume on a laptop because I failed to make it work on my G4 (grr!!). Suspend work, resume does not. From dmesg (below) it looks like the soundcard driver is asked to resume before the ATA driver, thus is cannot load the firmware. Am I overlooking something ? Suggestions ?
You can't load the firmware file in resume phase because the system isn't yet ready at this stage. Either postpone it or keep the old firmware and reuse it.
*sigh* Ok, I'll try to find a workaround. I don't want to keep the firmware in memory.
Is it so high volume? This is the easiest solution in general.
Takashi
On Wed, 16 Sep 2009 07:58:24 +0200 Takashi Iwai tiwai@suse.de wrote:
You can't load the firmware file in resume phase because the system isn't yet ready at this stage. Either postpone it or keep the old firmware and reuse it.
*sigh* Ok, I'll try to find a workaround. I don't want to keep the firmware in memory.
Is it so high volume? This is the easiest solution in general.
16KB to 150KB, depending on the card. Most cards need more than one firmware and some of them have to reload the firmware during mormal operation, so I also have to write a very simple cache manager. If possible, I would prefer not to waste that memory.
participants (2)
-
Giuliano Pochini
-
Takashi Iwai