ASoC: davinci-mcasp: Fix TDM slot rx/tx mask associations
PATCH 1/1 ASoC: davinci-mcasp: Fix TDM slot rx/tx mask associations
Fixes the associations between the tx_mask and rx_mask and the associated playback / capture streams during setting of the TDM slot. With this patch in place it is now possible for example to only populate tx_mask (leaving rx_mask as 0) for output-only codecs to control the TDM slot(s) the McASP serial port uses for transmit. Before that, this scenario would incorrectly rely on the rx_mask for this.
--- sound/soc/davinci/davinci-mcasp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
sound/soc/davinci/davinci-mcasp.c +2 -2
@@ -681,8 +681,8 @@ static int davinci_mcasp_set_tdm_slot(struct snd_soc_dai *dai, } mcasp->tdm_slots = slots; - mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = rx_mask; - mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = rx_mask; mcasp->slot_width = slot_width;return davinci_mcasp_set_ch_constraints (mcasp);
Signature · 1 line
1.9.1
For what little there is to review.
I only had HW that worked with symmetric masks, so I did not hit this myself. Should have hacked something to codec end to be able to test asymetric masks at McASP end.
Thanks,
Jyri
Quoted 28 lines · Andreas Dannenberg
Fixes the associations between the
tx_maskandrx_maskand the associated playback / capture streams during setting of the TDM slot. With this patch in place it is now possible for example to only populatetx_mask(leavingrx_maskas 0) for output-only codecs to control the TDM slot(s) the McASP serial port uses for transmit. Before that, this scenario would incorrectly rely on therx_maskfor this.Signed-off-by Andreas Dannenberg <[email protected]>--- sound/soc/davinci/davinci-mcasp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)sound/soc/davinci/davinci-mcasp.c +2
-2@@ -681,8 +681,8 @@ static int davinci_mcasp_set_tdm_slot(struct snd_soc_dai *dai, } mcasp->tdm_slots = slots; - mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = rx_mask; - mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = rx_mask; mcasp->slot_width = slot_width;return davinci_mcasp_set_ch_constraints (mcasp);
Quoted 8 lines · Andreas Dannenberg
Fixes the associations between the
tx_maskandrx_maskand the associated playback / capture streams during setting of the TDM slot. With this patch in place it is now possible for example to only populatetx_mask(leavingrx_maskas 0) for output-only codecs to control the TDM slot(s) the McASP serial port uses for transmit. Before that, this scenario would incorrectly rely on therx_maskfor this.Signed-off-by Andreas Dannenberg <[email protected]>
Quoted 20 lines
--- sound/soc/davinci/davinci-mcasp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)sound/soc/davinci/davinci-mcasp.c +2
-2@@ -681,8 +681,8 @@ static int davinci_mcasp_set_tdm_slot(struct snd_soc_dai *dai, } mcasp->tdm_slots = slots; - mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = rx_mask; - mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = rx_mask; mcasp->slot_width = slot_width;return davinci_mcasp_set_ch_constraints (mcasp);
Signature · 1 line
Péter
Mark Brown
maintainerApplied "ASoC: davinci-mcasp: Fix TDM slot rx/tx mask associations" to the asoc tree
In reply to Andreas DannenbergThe patch
ASoC: davinci-mcasp: Fix TDM slot rx/tx mask associations
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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
Quoted 1 line
From
1bdd593247ee5a74eb58828a4cf18bdc8a5f1baaMon Sep 17 00:00:00 2001
From: Andreas Dannenberg <[email protected]>
Date: Mon, 9 Nov 2015 12:19:19 -0600
Subject: [PATCH] ASoC: davinci-mcasp: Fix TDM slot rx/tx mask associations
Fixes the associations between the tx_mask and rx_mask and the associated playback / capture streams during setting of the TDM slot. With this patch in place it is now possible for example to only populate tx_mask (leaving rx_mask as 0) for output-only codecs to control the TDM slot(s) the McASP serial port uses for transmit. Before that, this scenario would incorrectly rely on the rx_mask for this.
--- sound/soc/davinci/davinci-mcasp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
sound/soc/davinci/davinci-mcasp.c +2 -2
@@ -681,8 +681,8 @@ static int davinci_mcasp_set_tdm_slot(struct snd_soc_dai *dai, } mcasp->tdm_slots = slots; - mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = rx_mask; - mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_PLAYBACK ] = tx_mask; + mcasp->tdm_mask[SNDRV_PCM_STREAM_CAPTURE ] = rx_mask; mcasp->slot_width = slot_width;return davinci_mcasp_set_ch_constraints (mcasp);
Signature · 1 line
2.6.2