All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: linux-kernel@vger.kernel.org, tiwai@suse.de, broonie@kernel.org,
	vkoul@kernel.org, gregkh@linuxfoundation.org, jank@cadence.com,
	srinivas.kandagatla@linaro.org, slawomir.blauciak@intel.com,
	Bard liao <yung-chuan.liao@linux.intel.com>,
	Rander Wang <rander.wang@linux.intel.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	Sanyog Kale <sanyog.r.kale@intel.com>
Subject: [RFC PATCH 09/12] soundwire: intel: free all resources on hw_free()
Date: Mon, 16 Sep 2019 16:42:48 -0500	[thread overview]
Message-ID: <20190916214251.13130-10-pierre-louis.bossart@linux.intel.com> (raw)
In-Reply-To: <20190916214251.13130-1-pierre-louis.bossart@linux.intel.com>

From: Rander Wang <rander.wang@linux.intel.com>

Make sure all calls to the SoundWire stream API are done and involve
callback

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 drivers/soundwire/intel.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index ee81b1c8d860..452c59b0de16 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -829,6 +829,7 @@ static int
 intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
 {
 	struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
+	struct sdw_intel *sdw = cdns_to_intel(cdns);
 	struct sdw_cdns_dma_data *dma;
 	int ret;
 
@@ -836,12 +837,28 @@ intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
 	if (!dma)
 		return -EIO;
 
+	ret = sdw_deprepare_stream(dma->stream);
+	if (ret) {
+		dev_err(dai->dev, "sdw_deprepare_stream: failed %d", ret);
+		return ret;
+	}
+
 	ret = sdw_stream_remove_master(&cdns->bus, dma->stream);
-	if (ret < 0)
+	if (ret < 0) {
 		dev_err(dai->dev, "remove master from stream %s failed: %d\n",
 			dma->stream->name, ret);
+		return ret;
+	}
 
-	return ret;
+	ret = intel_free_stream(sdw, substream, dai, sdw->instance);
+	if (ret < 0) {
+		dev_err(dai->dev, "intel_free_stream: failed %d", ret);
+		return ret;
+	}
+
+	sdw_release_stream(dma->stream);
+
+	return 0;
 }
 
 static void intel_shutdown(struct snd_pcm_substream *substream,
-- 
2.20.1


WARNING: multiple messages have this Message-ID (diff)
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	tiwai@suse.de, gregkh@linuxfoundation.org,
	linux-kernel@vger.kernel.org,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	vkoul@kernel.org, broonie@kernel.org,
	srinivas.kandagatla@linaro.org, jank@cadence.com,
	slawomir.blauciak@intel.com,
	Sanyog Kale <sanyog.r.kale@intel.com>,
	Bard liao <yung-chuan.liao@linux.intel.com>,
	Rander Wang <rander.wang@linux.intel.com>
Subject: [alsa-devel] [RFC PATCH 09/12] soundwire: intel: free all resources on hw_free()
Date: Mon, 16 Sep 2019 16:42:48 -0500	[thread overview]
Message-ID: <20190916214251.13130-10-pierre-louis.bossart@linux.intel.com> (raw)
In-Reply-To: <20190916214251.13130-1-pierre-louis.bossart@linux.intel.com>

From: Rander Wang <rander.wang@linux.intel.com>

Make sure all calls to the SoundWire stream API are done and involve
callback

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 drivers/soundwire/intel.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index ee81b1c8d860..452c59b0de16 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -829,6 +829,7 @@ static int
 intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
 {
 	struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
+	struct sdw_intel *sdw = cdns_to_intel(cdns);
 	struct sdw_cdns_dma_data *dma;
 	int ret;
 
@@ -836,12 +837,28 @@ intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
 	if (!dma)
 		return -EIO;
 
+	ret = sdw_deprepare_stream(dma->stream);
+	if (ret) {
+		dev_err(dai->dev, "sdw_deprepare_stream: failed %d", ret);
+		return ret;
+	}
+
 	ret = sdw_stream_remove_master(&cdns->bus, dma->stream);
-	if (ret < 0)
+	if (ret < 0) {
 		dev_err(dai->dev, "remove master from stream %s failed: %d\n",
 			dma->stream->name, ret);
+		return ret;
+	}
 
-	return ret;
+	ret = intel_free_stream(sdw, substream, dai, sdw->instance);
+	if (ret < 0) {
+		dev_err(dai->dev, "intel_free_stream: failed %d", ret);
+		return ret;
+	}
+
+	sdw_release_stream(dma->stream);
+
+	return 0;
 }
 
 static void intel_shutdown(struct snd_pcm_substream *substream,
-- 
2.20.1

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2019-09-16 21:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-16 21:42 [RFC PATCH 00/12] soundwire/SOF: updated interfaces, functional integration Pierre-Louis Bossart
2019-09-16 21:42 ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 01/12] ASoC: soc-acpi: add link_mask field Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-10-08 10:52   ` Applied "ASoC: soc-acpi: add link_mask field" to the asoc tree Mark Brown
2019-10-08 10:52     ` [alsa-devel] " Mark Brown
2019-09-16 21:42 ` [RFC PATCH 02/12] ASoC: SOF: support alternate list of machines Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-10-08 10:52   ` Applied "ASoC: SOF: support alternate list of machines" to the asoc tree Mark Brown
2019-10-08 10:52     ` [alsa-devel] " Mark Brown
2019-09-16 21:42 ` [RFC PATCH 03/12] soundwire: intel: update stream callbacks for hwparams/free stream operations Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 04/12] ASoC: SOF: Intel: add SoundWire configuration interface Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 05/12] ASoC: SOF: Intel: add build support for SoundWire Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 06/12] soundwire: intel: add prepare support in sdw dai driver Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 07/12] soundwire: intel: add trigger " Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 08/12] soundwire: intel: add sdw_stream_setup helper for .startup callback Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` Pierre-Louis Bossart [this message]
2019-09-16 21:42   ` [alsa-devel] [RFC PATCH 09/12] soundwire: intel: free all resources on hw_free() Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 10/12] ASoC: SOF: IPC: dai-intel: move ALH declarations in header file Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 11/12] ASoC: SOF: Intel: hda: add SoundWire stream config/free callbacks Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart
2019-09-16 21:42 ` [RFC PATCH 12/12] ASoC: SOF: Intel: hda: initial SoundWire machine driver autodetect Pierre-Louis Bossart
2019-09-16 21:42   ` [alsa-devel] " Pierre-Louis Bossart

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=20190916214251.13130-10-pierre-louis.bossart@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jank@cadence.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rander.wang@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=sanyog.r.kale@intel.com \
    --cc=slawomir.blauciak@intel.com \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=tiwai@suse.de \
    --cc=vkoul@kernel.org \
    --cc=yung-chuan.liao@linux.intel.com \
    /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.