aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-05-30 08:12:57 -0400
committerMark Brown <broonie@kernel.org>2016-05-30 13:24:41 -0400
commitcd63655e8025eb9839b8aaf503e14f89da9d4f9e (patch)
tree2d21bbebb562c90cbe1974054fa44e15426fbeb8 /sound/soc/intel/skylake
parentfdfa82ee1435dc8ff6b4c82640bd142f2d15edb1 (diff)
ASoC: Intel: Skylake: Strip manifest for Skylake platform
Future firmware updates may comes with extended manifest so invoke skl_dsp_strip_extended_manifest() to check and strip Signed-off-by: Shreyas NC <shreyas.nc@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake')
-rw-r--r--sound/soc/intel/skylake/skl-sst.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/soc/intel/skylake/skl-sst.c b/sound/soc/intel/skylake/skl-sst.c
index 13ec8d53b526..be2c42b815b7 100644
--- a/sound/soc/intel/skylake/skl-sst.c
+++ b/sound/soc/intel/skylake/skl-sst.c
@@ -72,6 +72,7 @@ static int skl_load_base_firmware(struct sst_dsp *ctx)
72{ 72{
73 int ret = 0, i; 73 int ret = 0, i;
74 struct skl_sst *skl = ctx->thread_context; 74 struct skl_sst *skl = ctx->thread_context;
75 struct firmware stripped_fw;
75 u32 reg; 76 u32 reg;
76 77
77 skl->boot_complete = false; 78 skl->boot_complete = false;
@@ -86,6 +87,12 @@ static int skl_load_base_firmware(struct sst_dsp *ctx)
86 } 87 }
87 } 88 }
88 89
90 /* check for extended manifest */
91 stripped_fw.data = ctx->fw->data;
92 stripped_fw.size = ctx->fw->size;
93
94 skl_dsp_strip_extended_manifest(&stripped_fw);
95
89 ret = skl_dsp_boot(ctx); 96 ret = skl_dsp_boot(ctx);
90 if (ret < 0) { 97 if (ret < 0) {
91 dev_err(ctx->dev, "Boot dsp core failed ret: %d", ret); 98 dev_err(ctx->dev, "Boot dsp core failed ret: %d", ret);
@@ -119,7 +126,7 @@ static int skl_load_base_firmware(struct sst_dsp *ctx)
119 goto transfer_firmware_failed; 126 goto transfer_firmware_failed;
120 } 127 }
121 128
122 ret = skl_transfer_firmware(ctx, ctx->fw->data, ctx->fw->size); 129 ret = skl_transfer_firmware(ctx, stripped_fw.data, stripped_fw.size);
123 if (ret < 0) { 130 if (ret < 0) {
124 dev_err(ctx->dev, "Transfer firmware failed%d\n", ret); 131 dev_err(ctx->dev, "Transfer firmware failed%d\n", ret);
125 goto transfer_firmware_failed; 132 goto transfer_firmware_failed;