aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-05-30 08:13:01 -0400
committerMark Brown <broonie@kernel.org>2016-05-30 13:24:41 -0400
commit3467a64dded3bcdbff8c3c9db2b1f1af20a9e295 (patch)
treec6c5f1b8c9c14efb0fcc075b32100fae0550f8ef
parent06711051d2e02f54a3ba4c2c0f4ce096f45437b1 (diff)
ASoC: Intel: Skylake: Find uuids for Broxton
Broxton uses different offset in manifest for parsing module table. So invoke common parsing utility from broxton using broxton offset. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/intel/skylake/bxt-sst.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/bxt-sst.c b/sound/soc/intel/skylake/bxt-sst.c
index 0dd921349663..46235b93e4f8 100644
--- a/sound/soc/intel/skylake/bxt-sst.c
+++ b/sound/soc/intel/skylake/bxt-sst.c
@@ -130,6 +130,8 @@ static int sst_transfer_fw_host_dma(struct sst_dsp *ctx)
130 return ret; 130 return ret;
131} 131}
132 132
133#define BXT_ADSP_FW_BIN_HDR_OFFSET 0x2000
134
133static int bxt_load_base_firmware(struct sst_dsp *ctx) 135static int bxt_load_base_firmware(struct sst_dsp *ctx)
134{ 136{
135 struct firmware stripped_fw; 137 struct firmware stripped_fw;
@@ -146,6 +148,9 @@ static int bxt_load_base_firmware(struct sst_dsp *ctx)
146 if (ctx->fw == NULL) 148 if (ctx->fw == NULL)
147 goto sst_load_base_firmware_failed; 149 goto sst_load_base_firmware_failed;
148 150
151 ret = snd_skl_parse_uuids(ctx, BXT_ADSP_FW_BIN_HDR_OFFSET);
152 if (ret < 0)
153 goto sst_load_base_firmware_failed;
149 154
150 stripped_fw.data = ctx->fw->data; 155 stripped_fw.data = ctx->fw->data;
151 stripped_fw.size = ctx->fw->size; 156 stripped_fw.size = ctx->fw->size;
@@ -283,6 +288,7 @@ int bxt_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
283 288
284 skl->dev = dev; 289 skl->dev = dev;
285 skl_dev.thread_context = skl; 290 skl_dev.thread_context = skl;
291 INIT_LIST_HEAD(&skl->uuid_list);
286 292
287 skl->dsp = skl_dsp_ctx_init(dev, &skl_dev, irq); 293 skl->dsp = skl_dsp_ctx_init(dev, &skl_dev, irq);
288 if (!skl->dsp) { 294 if (!skl->dsp) {
@@ -323,6 +329,7 @@ EXPORT_SYMBOL_GPL(bxt_sst_dsp_init);
323 329
324void bxt_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx) 330void bxt_sst_dsp_cleanup(struct device *dev, struct skl_sst *ctx)
325{ 331{
332 skl_freeup_uuid_list(ctx);
326 skl_ipc_free(&ctx->ipc); 333 skl_ipc_free(&ctx->ipc);
327 ctx->dsp->cl_dev.ops.cl_cleanup_controller(ctx->dsp); 334 ctx->dsp->cl_dev.ops.cl_cleanup_controller(ctx->dsp);
328 335