]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: Intel: Skylake: Fix fw reload failure
authorSenthilnathan Veppur <senthilnathanx.veppur@intel.com>
Thu, 14 Jul 2016 03:35:25 +0000 (09:05 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 14 Jul 2016 15:32:51 +0000 (16:32 +0100)
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>
sound/soc/intel/skylake/bxt-sst.c

index 9c3750f49c21c3c4d69ee6dbfb1aeab4e05ad023..16e2ed97d71aacc272972c9483f7f1848538ea73 100644 (file)
@@ -139,7 +139,7 @@ static int sst_bxt_prepare_fw(struct sst_dsp *ctx,
 base_fw_load_failed:
        ctx->dsp_ops.cleanup(ctx->dev, &ctx->dmab, stream_tag);
        skl_dsp_core_power_down(ctx, SKL_DSP_CORE_MASK(1));
-       skl_dsp_disable_core(ctx, SKL_DSP_CORE_MASK(1));
+       skl_dsp_disable_core(ctx, SKL_DSP_CORE0_MASK);
        return ret;
 }
 
@@ -232,6 +232,7 @@ static int bxt_set_dsp_D0(struct sst_dsp *ctx, unsigned int core_id)
        unsigned int core_mask = SKL_DSP_CORE_MASK(core_id);
 
        if (skl->fw_loaded == false) {
+               skl->boot_complete = false;
                ret = bxt_load_base_firmware(ctx);
                if (ret < 0)
                        dev_err(ctx->dev, "reload fw failed: %d\n", ret);