From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mohit Sinha Date: Thu, 16 Nov 2017 23:01:21 +0530 Subject: [PATCH] ASoC: Intel: Skylake: Add delay during DSP core start 1msec delay is required in power-up sequence of DSP core. Power-up sequence for DSP core is as follows: 1) power up core 2) unreset core 3) unstall core 4) send IPC ~1msec wait is required between unstall core and before sending IPC to ensure proper propagation of signals. Change-Id: Ie7c4b47d4b4ce6f869178a5fd9940f6af84b13d2 Signed-off-by: Mohit Sinha Reviewed-on: Reviewed-by: audio_build Reviewed-by: B, Jayachandran Reviewed-by: Prusty, Subhransu S Reviewed-by: Pawse, GuruprasadX Reviewed-by: Tewani, Pradeep D Reviewed-by: Kp, Jeeja Reviewed-by: Kale, Sanyog R Tested-by: Sm, Bhadur A --- sound/soc/intel/skylake/skl-sst-dsp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sound/soc/intel/skylake/skl-sst-dsp.c b/sound/soc/intel/skylake/skl-sst-dsp.c index 4b16e0002cd4..b34f7b73e24e 100644 --- a/sound/soc/intel/skylake/skl-sst-dsp.c +++ b/sound/soc/intel/skylake/skl-sst-dsp.c @@ -17,6 +17,7 @@ */ #include +#include #include "../common/sst-dsp.h" #include "../common/sst-ipc.h" #include "../common/sst-dsp-priv.h" @@ -206,6 +207,9 @@ int skl_dsp_start_core(struct sst_dsp *ctx, unsigned int core_mask) if (ret < 0) return ret; + /* delay to ensure proper signal propagation after unreset/unstall */ + usleep_range(1000, 1500); + if (!is_skl_dsp_core_enable(ctx, core_mask)) { skl_dsp_reset_core(ctx, core_mask); dev_err(ctx->dev, "DSP start core failed: core_mask %x\n", -- https://clearlinux.org