[Sound-open-firmware] [PATCH] ASOC: topology: Fix hw_config setting for DAI

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Mon Feb 12 18:49:10 CET 2018



On 02/12/2018 12:12 AM, Xiuli Pan wrote:
> From: Pan Xiuli <xiuli.pan at linux.intel.com>
>
> DAI is codec here in topology pipeline, thus we should not change
> the settinga into oppsite value, as the tplg file is written from
> the codec view.
commit message to be redone.
This should be "the ASoC conventions are wrt. the codec, fix the 
bclk/fsync ownership accordingly"

>
> Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
>
> ---
> Test with:
> Mininow max rt5651
> SOF master: 019637ab250daa53c15da0a0a98c54f1c58d8ca3
> SOF-Tool master: 33e4b0cc6f6a44e3e7ee849c04c515a5537242c7
> https://github.com/plbossart/sound/tree/topic/sof-v4.14:
> 6fa721a8b7c6567eea0a2181bf9a3d2a12c31b00
>
> Work with patch of SOF-Tool:
> topology: m4: add default_hw_conf_id
> ---
>   sound/soc/soc-topology.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
> index e471352..df3bcf0 100644
> --- a/sound/soc/soc-topology.c
> +++ b/sound/soc/soc-topology.c
> @@ -2018,11 +2018,11 @@ static void set_link_hw_format(struct snd_soc_dai_link *link,
>   		/* clock signal polarity */
>   		invert_bclk = hw_config->invert_bclk;
>   		invert_fsync = hw_config->invert_fsync;
> -		if (!invert_bclk && !invert_fsync)
> +		if (invert_bclk && invert_fsync)
>   			link->dai_fmt |= SND_SOC_DAIFMT_NB_NF;
> -		else if (!invert_bclk && invert_fsync)
> +		else if (invert_bclk && invert_fsync)

Doesn't look right, it's the same test as above.
besides, none of those initial tests seem problematic in the first place.
>   			link->dai_fmt |= SND_SOC_DAIFMT_NB_IF;
> -		else if (invert_bclk && !invert_fsync)
> +		else if (!invert_bclk && invert_fsync)
>   			link->dai_fmt |= SND_SOC_DAIFMT_IB_NF;
>   		else
>   			link->dai_fmt |= SND_SOC_DAIFMT_IB_IF;
> @@ -2030,11 +2030,11 @@ static void set_link_hw_format(struct snd_soc_dai_link *link,
>   		/* clock masters */
>   		bclk_master = hw_config->bclk_master;
>   		fsync_master = hw_config->fsync_master;
> -		if (!bclk_master && !fsync_master)
> +		if (bclk_master && fsync_master)
>   			link->dai_fmt |= SND_SOC_DAIFMT_CBM_CFM;
> -		else if (bclk_master && !fsync_master)
> -			link->dai_fmt |= SND_SOC_DAIFMT_CBS_CFM;
>   		else if (!bclk_master && fsync_master)
> +			link->dai_fmt |= SND_SOC_DAIFMT_CBS_CFM;
> +		else if (bclk_master && !fsync_master)
>   			link->dai_fmt |= SND_SOC_DAIFMT_CBM_CFS;
>   		else
>   			link->dai_fmt |= SND_SOC_DAIFMT_CBS_CFS;
This part looks ok.




More information about the Sound-open-firmware mailing list