Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH] ASoC: davinci-mcasp: Fix TDM slot rx/tx mask associations

18 views
Skip to first unread message

Andreas Dannenberg

unread,
Nov 9, 2015, 1:20:07 PM11/9/15
to
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.

Signed-off-by: Andreas Dannenberg <danne...@ti.com>
---
sound/soc/davinci/davinci-mcasp.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index 4495a40..caa0beb 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -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);
--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Jyri Sarha

unread,
Nov 9, 2015, 4:40:08 PM11/9/15
to
Reviewed-by: Jyri Sarha <jsa...@ti.com>

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

On 11/09/15 20:19, Andreas Dannenberg wrote:
> 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.
>
> Signed-off-by: Andreas Dannenberg <danne...@ti.com>
> ---
> sound/soc/davinci/davinci-mcasp.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
> index 4495a40..caa0beb 100644
> --- a/sound/soc/davinci/davinci-mcasp.c
> +++ b/sound/soc/davinci/davinci-mcasp.c
> @@ -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);
>

--

Peter Ujfalusi

unread,
Nov 10, 2015, 3:00:07 AM11/10/15
to
On 11/09/2015 08:19 PM, Andreas Dannenberg wrote:
> 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.
>
> Signed-off-by: Andreas Dannenberg <danne...@ti.com>

Acked-by: Peter Ujfalusi <peter.u...@ti.com>

> ---
> sound/soc/davinci/davinci-mcasp.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
> index 4495a40..caa0beb 100644
> --- a/sound/soc/davinci/davinci-mcasp.c
> +++ b/sound/soc/davinci/davinci-mcasp.c
> @@ -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);
>


--
Péter
0 new messages