ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open()

Message ID 20221104132213.121847-1-rf@opensource.cirrus.com
State New
Headers
Series ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open() |

Commit Message

Richard Fitzgerald Nov. 4, 2022, 1:22 p.m. UTC
  The DAI tx_mask and rx_mask are set by snd_soc_dai_set_tdm_slot()
and used by later code that depends on the TDM settings. So
__soc_pcm_open() should not be obliterating those mask values.

The code in __soc_pcm_hw_params() uses these masks to calculate the
active channels so that only the AIF_IN/AIF_OUT widgets for the
active TDM slots are enabled. The zeroing of the masks in
__soc_pcm_open() disables this functionality so all AIF widgets
were enabled even for channels that are not assigned to a TDM slot.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 2e5894d73789 ("ASoC: pcm: Add support for DAI multicodec")
---
 sound/soc/soc-pcm.c | 5 -----
 1 file changed, 5 deletions(-)
  

Comments

Mark Brown Nov. 11, 2022, 5:15 p.m. UTC | #1
On Fri, 4 Nov 2022 13:22:13 +0000, Richard Fitzgerald wrote:
> The DAI tx_mask and rx_mask are set by snd_soc_dai_set_tdm_slot()
> and used by later code that depends on the TDM settings. So
> __soc_pcm_open() should not be obliterating those mask values.
> 
> The code in __soc_pcm_hw_params() uses these masks to calculate the
> active channels so that only the AIF_IN/AIF_OUT widgets for the
> active TDM slots are enabled. The zeroing of the masks in
> __soc_pcm_open() disables this functionality so all AIF widgets
> were enabled even for channels that are not assigned to a TDM slot.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open()
      commit: 39bd801d6908900e9ab0cdc2655150f95ddd4f1a

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
  

Patch

diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index d8e4677f3002..493f003273d0 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -822,11 +822,6 @@  static int __soc_pcm_open(struct snd_soc_pcm_runtime *rtd,
 		ret = snd_soc_dai_startup(dai, substream);
 		if (ret < 0)
 			goto err;
-
-		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-			dai->tx_mask = 0;
-		else
-			dai->rx_mask = 0;
 	}
 
 	/* Dynamic PCM DAI links compat checks use dynamic capabilities */