[PATCH 4/8] ASoC: soc-pcm: add soc_pcm_care_symmetry()
Mark Brown
broonie at kernel.org
Tue Mar 2 14:10:51 CET 2021
On Tue, Mar 02, 2021 at 10:48:07AM +0900, Kuninori Morimoto wrote:
> -static bool soc_pcm_has_symmetry(struct snd_pcm_substream *substream)
> +static void soc_pcm_care_symmetry(struct snd_pcm_substream *substream)
> {
> struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
> struct snd_soc_dai_link *link = rtd->dai_link;
> @@ -423,7 +423,8 @@ static bool soc_pcm_has_symmetry(struct snd_pcm_substream *substream)
> dai->driver->symmetric_channels ||
> dai->driver->symmetric_sample_bits;
>
> - return symmetry;
> + if (symmetry)
> + substream->runtime->hw.info |= SNDRV_PCM_INFO_JOINT_DUPLEX;
The idea makes sense but I'm not sure about the name here - perhaps
soc_pcm_update_symmetry() might work better? It's not super clear but
does look more natural.
> }
>
> static void soc_pcm_set_msb(struct snd_pcm_substream *substream, int bits)
> @@ -735,8 +736,7 @@ static int soc_pcm_open(struct snd_pcm_substream *substream)
> /* Check that the codec and cpu DAIs are compatible */
> soc_pcm_init_runtime_hw(substream);
>
> - if (soc_pcm_has_symmetry(substream))
> - runtime->hw.info |= SNDRV_PCM_INFO_JOINT_DUPLEX;
> + soc_pcm_care_symmetry(substream);
>
> ret = -EINVAL;
> if (!runtime->hw.rates) {
> @@ -1681,8 +1681,7 @@ static int dpcm_apply_symmetry(struct snd_pcm_substream *fe_substream,
> int i;
>
> /* apply symmetry for FE */
> - if (soc_pcm_has_symmetry(fe_substream))
> - fe_substream->runtime->hw.info |= SNDRV_PCM_INFO_JOINT_DUPLEX;
> + soc_pcm_care_symmetry(fe_substream);
>
> for_each_rtd_cpu_dais (fe, i, fe_cpu_dai) {
> /* Symmetry only applies if we've got an active stream. */
> @@ -1707,8 +1706,7 @@ static int dpcm_apply_symmetry(struct snd_pcm_substream *fe_substream,
> if (rtd->dai_link->be_hw_params_fixup)
> continue;
>
> - if (soc_pcm_has_symmetry(be_substream))
> - be_substream->runtime->hw.info |= SNDRV_PCM_INFO_JOINT_DUPLEX;
> + soc_pcm_care_symmetry(be_substream);
>
> /* Symmetry only applies if we've got an active stream. */
> for_each_rtd_dais(rtd, i, dai) {
> --
> 2.25.1
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20210302/2ca27106/attachment-0001.sig>
More information about the Alsa-devel
mailing list