Commit 244eb888 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Vinod Koul
Browse files

soundwire: intel: remove stream handling from .prepare and .hw_free



Now that the stream is handled at the dai-link level (in the machine
driver), we can remove the stream handling at the dai level. We still
need these callbacks to perform dai-level resource handling
(i.e. addition/removal of a master).

Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200903204739.31206-5-yung-chuan.liao@linux.intel.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent e1c3a7f0
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -951,7 +951,7 @@ static int intel_prepare(struct snd_pcm_substream *substream,
	struct sdw_intel *sdw = cdns_to_intel(cdns);
	struct sdw_cdns_dma_data *dma;
	int ch, dir;
	int ret;
	int ret = 0;

	dma = snd_soc_dai_get_dma_data(dai, substream);
	if (!dma) {
@@ -987,13 +987,8 @@ static int intel_prepare(struct snd_pcm_substream *substream,
					  dma->hw_params,
					  sdw->instance,
					  dma->pdi->intel_alh_id);
		if (ret)
			goto err;
	}

	ret = sdw_prepare_stream(dma->stream);

err:
	return ret;
}

@@ -1009,12 +1004,12 @@ 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;
	}

	/*
	 * The sdw stream state will transition to RELEASED when stream->
	 * master_list is empty. So the stream state will transition to
	 * DEPREPARED for the first cpu-dai and to RELEASED for the last
	 * cpu-dai.
	 */
	ret = sdw_stream_remove_master(&cdns->bus, dma->stream);
	if (ret < 0) {
		dev_err(dai->dev, "remove master from stream %s failed: %d\n",