• Kirill Marinushkin's avatar
    ASoC: topology: Add missing clock gating parameter when parsing hw_configs · 933e1c4a
    Kirill Marinushkin authored
    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. This solution is backwards compatible. The existing behaviour is
    not broken, because by default the parameter value is 0 and is ignored.
    
    snd_soc_tplg_hw_config.clock_gated = 0 => no effect
    snd_soc_tplg_hw_config.clock_gated = 1 => SND_SOC_DAIFMT_GATED
    snd_soc_tplg_hw_config.clock_gated = 2 => SND_SOC_DAIFMT_CONT
    
    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.
            pm_gate_clocks "true"   # clock can be gated
    }
    
    SectionLink."Codec" {
    
            # used for binding to the physical link
            id "0"
    
            hw_configs [
                    "CodecHWConfig"
            ]
    
            default_hw_conf_id "1"
    }
    ~~~~
    Signed-off-by: default avatarKirill Marinushkin <k.marinushkin@gmail.com>
    Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Cc: Jaroslav Kysela <perex@perex.cz>
    Cc: Takashi Iwai <tiwai@suse.de>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Pan Xiuli <xiuli.pan@linux.intel.com>
    Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com>
    Cc: linux-kernel@vger.kernel.org
    Cc: alsa-devel@alsa-project.org
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    933e1c4a
soc-topology.c 69.4 KB