All of lore.kernel.org
 help / color / mirror / Atom feed
From: jeeja.kp@intel.com
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de, patches.audio@intel.com, broonie@kernel.org,
	liam.r.girdwood@intel.com, Jeeja KP <jeeja.kp@intel.com>
Subject: [PATCH 04/10] ASoC: Intel: bxtn: Update DSP core state in D0
Date: Tue,  7 Mar 2017 23:44:00 +0530	[thread overview]
Message-ID: <1488910446-26415-5-git-send-email-jeeja.kp@intel.com> (raw)
In-Reply-To: <1488910446-26415-1-git-send-email-jeeja.kp@intel.com>

From: Jeeja KP <jeeja.kp@intel.com>

In system suspend, firmware needs to be re-downloaded as IMR is cleared.
When firmware is downloaded in D0, core state is not set to running
state causing instability with subsequent D0-D3 cycles.

So set the core state correctly during D0 and check the DSP core state
if not in reset to set the DSP to D3.

Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
---
 sound/soc/intel/skylake/bxt-sst.c     | 1 +
 sound/soc/intel/skylake/skl-sst-dsp.c | 6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/sound/soc/intel/skylake/bxt-sst.c b/sound/soc/intel/skylake/bxt-sst.c
index d9cd67d..c6f18b5 100644
--- a/sound/soc/intel/skylake/bxt-sst.c
+++ b/sound/soc/intel/skylake/bxt-sst.c
@@ -428,6 +428,7 @@ static int bxt_set_dsp_D0(struct sst_dsp *ctx, unsigned int core_id)
 				return ret;
 			}
 		}
+		skl->cores.state[core_id] = SKL_DSP_RUNNING;
 		return ret;
 	}
 
diff --git a/sound/soc/intel/skylake/skl-sst-dsp.c b/sound/soc/intel/skylake/skl-sst-dsp.c
index c3deefa..0833272 100644
--- a/sound/soc/intel/skylake/skl-sst-dsp.c
+++ b/sound/soc/intel/skylake/skl-sst-dsp.c
@@ -355,12 +355,13 @@ int skl_dsp_get_core(struct sst_dsp *ctx, unsigned int core_id)
 		ret = ctx->fw_ops.set_state_D0(ctx, core_id);
 		if (ret < 0) {
 			dev_err(ctx->dev, "unable to get core%d\n", core_id);
-			return ret;
+			goto out;
 		}
 	}
 
 	skl->cores.usage_count[core_id]++;
 
+out:
 	dev_dbg(ctx->dev, "core id %d state %d usage_count %d\n",
 			core_id, skl->cores.state[core_id],
 			skl->cores.usage_count[core_id]);
@@ -379,7 +380,8 @@ int skl_dsp_put_core(struct sst_dsp *ctx, unsigned int core_id)
 		return -EINVAL;
 	}
 
-	if (--skl->cores.usage_count[core_id] == 0) {
+	if ((--skl->cores.usage_count[core_id] == 0) &&
+		(skl->cores.state[core_id] != SKL_DSP_RESET)) {
 		ret = ctx->fw_ops.set_state_D3(ctx, core_id);
 		if (ret < 0) {
 			dev_err(ctx->dev, "unable to put core %d: %d\n",
-- 
2.5.0

  parent reply	other threads:[~2017-03-07 18:02 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-07 18:13 [PATCH 00/10] ASoC: Intel: Skylake: Driver updates jeeja.kp
2017-03-07 18:13 ` [PATCH 01/10] ASoC: Intel: Skylake: Fix to delete DSP pipe after stopping pipe jeeja.kp
2017-03-09  6:17   ` Vinod Koul
2017-03-07 18:13 ` [PATCH 02/10] ASoC: Intel: Skylake: Fix not to stop src pipe in pre pmd event handler jeeja.kp
2017-03-15 18:13   ` Applied "ASoC: Intel: Skylake: Fix not to stop src pipe in pre pmd event handler" to the asoc tree Mark Brown
2017-03-07 18:13 ` [PATCH 03/10] ASoC: Intel: bxtn: Disable interrupt when DSP is in D3 jeeja.kp
2017-03-15 18:13   ` Applied "ASoC: Intel: bxtn: Disable interrupt when DSP is in D3" to the asoc tree Mark Brown
2017-03-07 18:14 ` jeeja.kp [this message]
2017-03-15 18:13   ` Applied "ASoC: Intel: bxtn: Update DSP core state in D0" " Mark Brown
2017-03-07 18:14 ` [PATCH 05/10] ASoC: Intel: bxtn: Reload the firmware in case of D3 failure jeeja.kp
2017-03-15 18:13   ` Applied "ASoC: Intel: bxtn: Reload the firmware in case of D3 failure" to the asoc tree Mark Brown
2017-03-07 18:14 ` [PATCH 06/10] ASoC: Intel: Skylake: Remove BE prepare ops jeeja.kp
2017-03-15 18:13   ` Applied "ASoC: Intel: Skylake: Remove BE prepare ops" to the asoc tree Mark Brown
2017-03-07 18:14 ` [PATCH 07/10] ASoC: Intel: Skylake: Disable notifications at boot after DSP FW init jeeja.kp
2017-03-09  6:17   ` Vinod Koul
2017-03-15 18:13   ` Applied "ASoC: Intel: Skylake: Disable notifications at boot after DSP FW init" to the asoc tree Mark Brown
2017-03-07 18:14 ` [PATCH 08/10] ASoC: Intel: Skylake: Remove get dsp_ops in cleanup routine jeeja.kp
2017-03-10  4:40   ` kbuild test robot
2017-03-07 18:14 ` [PATCH 09/10] ASoC: Intel: Skylake: Fix module load when module size > DMA buffer size jeeja.kp
2017-03-07 18:14 ` [PATCH 10/10] ASoC: Intel: Skylake: Fix parameter overwrite for KPB Module jeeja.kp
2017-03-15 18:13   ` Applied "ASoC: Intel: Skylake: Fix parameter overwrite for KPB Module" to the asoc tree Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1488910446-26415-5-git-send-email-jeeja.kp@intel.com \
    --to=jeeja.kp@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=liam.r.girdwood@intel.com \
    --cc=patches.audio@intel.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.