Unverified Commit 13012809 authored by Shengjiu Wang's avatar Shengjiu Wang Committed by Mark Brown
Browse files

ASoC: soc-generic-dmaengine-pcm: Fix error handling



Remove the return value checking, that is to align with the code
before adding snd_dmaengine_pcm_refine_runtime_hwparams function.

Otherwise it causes a regression on the HiKey board:

[   17.721424] hi6210_i2s f7118000.i2s: ASoC: can't open component f7118000.i2s: -6

Fixes: e957204e ("ASoC: pcm_dmaengine: Extract snd_dmaengine_pcm_refine_runtime_hwparams")
Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
Reported-by: default avatarJohn Stultz <john.stultz@linaro.org>
Link: https://lore.kernel.org/r/1579505286-32085-1-git-send-email-shengjiu.wang@nxp.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent af4bac11
Loading
Loading
Loading
Loading
+9 −7
Original line number Original line Diff line number Diff line
@@ -117,7 +117,6 @@ dmaengine_pcm_set_runtime_hwparams(struct snd_soc_component *component,
	struct dma_chan *chan = pcm->chan[substream->stream];
	struct dma_chan *chan = pcm->chan[substream->stream];
	struct snd_dmaengine_dai_dma_data *dma_data;
	struct snd_dmaengine_dai_dma_data *dma_data;
	struct snd_pcm_hardware hw;
	struct snd_pcm_hardware hw;
	int ret;


	if (pcm->config && pcm->config->pcm_hardware)
	if (pcm->config && pcm->config->pcm_hardware)
		return snd_soc_set_runtime_hwparams(substream,
		return snd_soc_set_runtime_hwparams(substream,
@@ -138,12 +137,15 @@ dmaengine_pcm_set_runtime_hwparams(struct snd_soc_component *component,
	if (pcm->flags & SND_DMAENGINE_PCM_FLAG_NO_RESIDUE)
	if (pcm->flags & SND_DMAENGINE_PCM_FLAG_NO_RESIDUE)
		hw.info |= SNDRV_PCM_INFO_BATCH;
		hw.info |= SNDRV_PCM_INFO_BATCH;


	ret = snd_dmaengine_pcm_refine_runtime_hwparams(substream,
	/**
	 * FIXME: Remove the return value check to align with the code
	 * before adding snd_dmaengine_pcm_refine_runtime_hwparams
	 * function.
	 */
	snd_dmaengine_pcm_refine_runtime_hwparams(substream,
						  dma_data,
						  dma_data,
						  &hw,
						  &hw,
						  chan);
						  chan);
	if (ret)
		return ret;


	return snd_soc_set_runtime_hwparams(substream, &hw);
	return snd_soc_set_runtime_hwparams(substream, &hw);
}
}