diff options
author | Senthilnathan Veppur <senthilnathanx.veppur@intel.com> | 2016-07-13 23:35:25 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-07-14 11:32:51 -0400 |
commit | c78722676e92dd434de35c7569d6c3f25879621b (patch) | |
tree | 523b43b034c0b7874cf669161106fc098b1a84f1 /sound/soc/intel | |
parent | 894a16db293c5383f1d9c819909a27bd6738efde (diff) |
ASoC: Intel: Skylake: Fix fw reload failure
FW reload had two issues:
- We need to disable the core 0 on when fw fails
- Before loading firmware mark boot flag as false
This patch fixes these two
Signed-off-by: Senthilnathan Veppur <senthilnathanx.veppur@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')
-rw-r--r-- | sound/soc/intel/skylake/bxt-sst.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/intel/skylake/bxt-sst.c b/sound/soc/intel/skylake/bxt-sst.c index 9c3750f49c21..16e2ed97d71a 100644 --- a/sound/soc/intel/skylake/bxt-sst.c +++ b/sound/soc/intel/skylake/bxt-sst.c | |||
@@ -139,7 +139,7 @@ static int sst_bxt_prepare_fw(struct sst_dsp *ctx, | |||
139 | base_fw_load_failed: | 139 | base_fw_load_failed: |
140 | ctx->dsp_ops.cleanup(ctx->dev, &ctx->dmab, stream_tag); | 140 | ctx->dsp_ops.cleanup(ctx->dev, &ctx->dmab, stream_tag); |
141 | skl_dsp_core_power_down(ctx, SKL_DSP_CORE_MASK(1)); | 141 | skl_dsp_core_power_down(ctx, SKL_DSP_CORE_MASK(1)); |
142 | skl_dsp_disable_core(ctx, SKL_DSP_CORE_MASK(1)); | 142 | skl_dsp_disable_core(ctx, SKL_DSP_CORE0_MASK); |
143 | return ret; | 143 | return ret; |
144 | } | 144 | } |
145 | 145 | ||
@@ -232,6 +232,7 @@ static int bxt_set_dsp_D0(struct sst_dsp *ctx, unsigned int core_id) | |||
232 | unsigned int core_mask = SKL_DSP_CORE_MASK(core_id); | 232 | unsigned int core_mask = SKL_DSP_CORE_MASK(core_id); |
233 | 233 | ||
234 | if (skl->fw_loaded == false) { | 234 | if (skl->fw_loaded == false) { |
235 | skl->boot_complete = false; | ||
235 | ret = bxt_load_base_firmware(ctx); | 236 | ret = bxt_load_base_firmware(ctx); |
236 | if (ret < 0) | 237 | if (ret < 0) |
237 | dev_err(ctx->dev, "reload fw failed: %d\n", ret); | 238 | dev_err(ctx->dev, "reload fw failed: %d\n", ret); |