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
next prev 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: linkBe 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.