|
@@ -533,10 +533,16 @@ static int bxt_set_dsp_D3(struct sst_dsp *ctx, unsigned int core_id)
|
|
|
|
|
|
ret = skl_ipc_set_dx(&skl->ipc, BXT_INSTANCE_ID,
|
|
|
BXT_BASE_FW_MODULE_ID, &dx);
|
|
|
- if (ret < 0)
|
|
|
+ if (ret < 0) {
|
|
|
dev_err(ctx->dev,
|
|
|
"Failed to set DSP to D3:core id = %d;Continue reset\n",
|
|
|
core_id);
|
|
|
+ /*
|
|
|
+ * In case of D3 failure, re-download the firmware, so set
|
|
|
+ * fw_loaded to false.
|
|
|
+ */
|
|
|
+ skl->fw_loaded = false;
|
|
|
+ }
|
|
|
|
|
|
if (core_id == SKL_DSP_CORE0_ID) {
|
|
|
/* disable Interrupt */
|