mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 08:31:37 +00:00
ASoC: soc-pcm: fix hw->formats cleared by soc_pcm_hw_init() for dpcm
The hw->formats may be set by snd_dmaengine_pcm_refine_runtime_hwparams() in component's startup()/open(), but soc_pcm_hw_init() will init hw->formats in dpcm_runtime_setup_fe() after component's startup()/open(), which causes the valuable hw->formats to be cleared. So need to store the hw->formats before initialization, then restore it after initialization. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1678346017-3660-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
dda5c809d4
commit
083a25b18d
@ -1661,10 +1661,14 @@ static void dpcm_runtime_setup_fe(struct snd_pcm_substream *substream)
|
||||
struct snd_pcm_hardware *hw = &runtime->hw;
|
||||
struct snd_soc_dai *dai;
|
||||
int stream = substream->stream;
|
||||
u64 formats = hw->formats;
|
||||
int i;
|
||||
|
||||
soc_pcm_hw_init(hw);
|
||||
|
||||
if (formats)
|
||||
hw->formats &= formats;
|
||||
|
||||
for_each_rtd_cpu_dais(fe, i, dai) {
|
||||
struct snd_soc_pcm_stream *cpu_stream;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user