Re: [PATCH 2/2] ASoC: topology: Add missing clock gating parameter when parsing hw_configs

From: Kirill Marinushkin
Date: Tue Feb 20 2018 - 12:07:17 EST


On 02/19/18 07:05, Kirill Marinushkin wrote:
> Clock gating parameter is a part of `dai_fmt`. It is supported by
> `alsa-lib` when creating a topology binary file, but ignored by kernel
> when loading this topology file.
>
> After applying this commit, the clock gating parameter is not ignored any
> more. The old behaviour is not broken, as by default the parameter value
> is 0.
>
> For example, the following config, based on
> alsa-lib/src/conf/topology/broadwell/broadwell.conf, is now supported:
>
> ~~~~
> SectionHWConfig."CodecHWConfig" {
> id "1"
> format "I2S" # physical audio format.
> bclk "master" # Platform is master of bit clock
> fsync "master" # platform is master of fsync
> pm_cont_clock "true" # clock is continuous, and can not be gated
> }
>
> SectionLink."Codec" {
>
> # used for binding to the physical link
> id "0"
>
> hw_configs [
> "CodecHWConfig"
> ]
>
> default_hw_conf_id "1"
> }
> ~~~~
>
> Signed-off-by: Kirill Marinushkin <k.marinushkin@xxxxxxxxx>
> Cc: Liam Girdwood <lgirdwood@xxxxxxxxx>
> Cc: Mark Brown <broonie@xxxxxxxxxx>
> Cc: Jaroslav Kysela <perex@xxxxxxxx>
> Cc: Takashi Iwai <tiwai@xxxxxxxx>
> Cc: alsa-devel@xxxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> ---
> sound/soc/soc-topology.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
> index 01a50413c66f..21bd4f96348d 100644
> --- a/sound/soc/soc-topology.c
> +++ b/sound/soc/soc-topology.c
> @@ -1981,6 +1981,12 @@ static void set_link_hw_format(struct snd_soc_dai_link *link,
>
> link->dai_fmt = hw_config->fmt & SND_SOC_DAIFMT_FORMAT_MASK;
>
> + /* clock gating */
> + if (hw_config->clock_cont)
> + link->dai_fmt |= SND_SOC_DAIFMT_CONT;
> + else
> + link->dai_fmt |= SND_SOC_DAIFMT_GATED;
> +
> /* clock signal polarity */
> invert_bclk = hw_config->invert_bclk;
> invert_fsync = hw_config->invert_fsync;

This patch is outdated. Patch v2 is sent in a different thread to replace it.

Best Regards,
Kirill