[alsa-devel] [PATCH 1/4] ASoC: Intel: sst: load firmware using async callback
Vinod Koul
vinod.koul at intel.com
Thu Oct 30 11:50:56 CET 2014
We would like the DSP firmware to be available in driver as soon as possible. So
use the async callback in driver to probe to load the firmware as soon as
usermode is up
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty at intel.com>
Signed-off-by: Vinod Koul <vinod.koul at intel.com>
---
sound/soc/intel/sst/sst.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/sound/soc/intel/sst/sst.c b/sound/soc/intel/sst/sst.c
index 05aba24..ff0ff9f 100644
--- a/sound/soc/intel/sst/sst.c
+++ b/sound/soc/intel/sst/sst.c
@@ -364,6 +364,21 @@ static int intel_sst_probe(struct pci_dev *pci,
sst_set_fw_state_locked(sst_drv_ctx, SST_RESET);
+ snprintf(sst_drv_ctx->firmware_name, sizeof(sst_drv_ctx->firmware_name),
+ "%s%04x%s", "fw_sst_",
+ sst_drv_ctx->dev_id, ".bin");
+ dev_dbg(sst_drv_ctx->dev,
+ "Requesting FW %s now...\n", sst_drv_ctx->firmware_name);
+ ret = request_firmware_nowait(THIS_MODULE, 1,
+ sst_drv_ctx->firmware_name, sst_drv_ctx->dev,
+ GFP_KERNEL, sst_drv_ctx, sst_firmware_load_cb);
+
+ if (ret) {
+ dev_err(sst_drv_ctx->dev,
+ "Firmware load failed with error: %d\n", ret);
+ goto do_release_regions;
+ }
+
sst_drv_ctx->irq_num = pci->irq;
/* Register the ISR */
ret = devm_request_threaded_irq(&pci->dev, pci->irq,
--
1.7.0.4
More information about the Alsa-devel
mailing list