[ALSA] Don't use request_firmware if internal firmwares are defined
Don't use request_firmware() if the internal firmwares are defined via Kconfig. Otherwise it results in a significant delay at loading time (minutes). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
committed by
Jaroslav Kysela
parent
f223a9fc3d
commit
b7dd2b349a
@@ -256,21 +256,21 @@ snd_wavefront_fx_start (snd_wavefront_t *dev)
|
||||
{
|
||||
unsigned int i;
|
||||
int err;
|
||||
const struct firmware *firmware;
|
||||
const struct firmware *firmware = NULL;
|
||||
|
||||
if (dev->fx_initialized)
|
||||
return 0;
|
||||
|
||||
#ifdef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
|
||||
firmware = &yss225_registers_firmware;
|
||||
#else
|
||||
err = request_firmware(&firmware, "yamaha/yss225_registers.bin",
|
||||
dev->card->dev);
|
||||
if (err < 0) {
|
||||
#ifdef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
|
||||
firmware = &yss225_registers_firmware;
|
||||
#else
|
||||
err = -1;
|
||||
goto out;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i + 1 < firmware->size; i += 2) {
|
||||
if (firmware->data[i] >= 8 && firmware->data[i] < 16) {
|
||||
@@ -293,9 +293,8 @@ snd_wavefront_fx_start (snd_wavefront_t *dev)
|
||||
err = 0;
|
||||
|
||||
out:
|
||||
#ifdef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
|
||||
if (firmware != &yss225_registers_firmware)
|
||||
#ifndef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
|
||||
release_firmware(firmware);
|
||||
#endif
|
||||
release_firmware(firmware);
|
||||
return err;
|
||||
}
|
||||
|
Reference in New Issue
Block a user