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

Kirill Marinushkin k.marinushkin at gmail.com
Tue Feb 20 18:07:20 CET 2018


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 at gmail.com>
> Cc: Liam Girdwood <lgirdwood at gmail.com>
> Cc: Mark Brown <broonie at kernel.org>
> Cc: Jaroslav Kysela <perex at perex.cz>
> Cc: Takashi Iwai <tiwai at suse.com>
> Cc: alsa-devel at alsa-project.org
> Cc: linux-kernel at vger.kernel.org
> ---
>  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


More information about the Alsa-devel mailing list