[Sound-open-firmware] [PATCH] topology: dai: add link_id for dai_link matching in DAI_CONFIG

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Thu May 24 04:25:01 CEST 2018


On Thu, 2018-05-24 at 10:08 +0800, Keyon Jie wrote:
> This is used for the matching with snd_soc_dai_link.id in BE
> dai_links.
> 
> Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
> ---
> Test with:
> APL-MRB with tdf8532 codec
> Linux topic/sof-v4.14: 0de0fcb1d077c3c2c3b06a6c64e85f14b7e75c0b
> SOF master: e5dab2ada6ef98dbc6224863110cc86b5839ea01
> Tool master: b4f3670870ba5a933c3ec58a51b59ff9ef8b3588
> ---
>  topology/m4/dai.m4                      | 11 ++++++-----
>  topology/sof-apl-nocodec.m4             |  2 +-
>  topology/sof-apl-tdf8532.m4             |  4 ++--
>  topology/sof-bdw-rt286.m4               |  2 +-
>  topology/sof-bdw-rt5640.m4              |  2 +-
>  topology/sof-byt-da7213.m4              |  2 +-
>  topology/sof-byt-nocodec.m4             |  2 +-
>  topology/sof-byt-rt5640.m4              |  2 +-
>  topology/sof-byt-rt5645.m4              |  2 +-
>  topology/sof-byt-rt5651.m4              |  2 +-
>  topology/sof-cht-max98090.m4            |  2 +-
>  topology/sof-cht-nocodec.m4             |  2 +-
>  topology/sof-cnl-rt274.m4               |  2 +-
>  topology/sof-hsw-rt5640.m4              |  2 +-
>  topology/test/test-capture-ssp.m4       |  2 +-
>  topology/test/test-playback-ssp.m4      |  2 +-
>  topology/test/test-ssp.m4               |  2 +-
>  topology/test/test-tone-playback-ssp.m4 |  2 +-
>  18 files changed, 24 insertions(+), 23 deletions(-)
> 
> diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4
> index 0b030af..ba6cba4 100644
> --- a/topology/m4/dai.m4
> +++ b/topology/m4/dai.m4
> @@ -140,17 +140,17 @@ define(`DAI_TDM',
>  dnl DAI Config)
>  define(`N_DAI_CONFIG', `DAICONFIG.'$1)
>  
> -dnl DAI_CONFIG(type, idx, name, format, valid bits, mclk, bclk,
> fsync, tdm)
> +dnl DAI_CONFIG(type, idx, link_id, name, format, valid bits, mclk,
> bclk, fsync, tdm)
>  define(`DAI_CONFIG',
>  `SectionHWConfig."'$1$2`" {'
>  `'
>  `	id		"'$2`"'
> -`	format		"'$4`"'
> +`	format		"'$5`"'
>  `'
> -`	'$6
>  `	'$7
>  `	'$8
>  `	'$9
> +`	'$10
>  `}'
>  `SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples_str" {'
>  `	tokens "sof_dai_tokens"'
> @@ -164,14 +164,15 @@ define(`DAI_CONFIG',
>  `SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples" {'
>  `	tokens "sof_dai_tokens"'
>  `	tuples."word" {'
> -`		SOF_TKN_DAI_SAMPLE_BITS'	STR($5)
> +`		SOF_TKN_DAI_SAMPLE_BITS'	STR($6)
>  `	}'
>  `}'
>  `SectionData."'N_DAI_CONFIG($1$2)`_data" {'
>  `	tuples "'N_DAI_CONFIG($1$2)`_tuples"'
>  `}'
>  `'
> -`SectionBE."'$3`" {'
> +`SectionBE."'$4`" {'
> +`	id "'$3`"'
>  `	index "0"'
>  `	default_hw_conf_id	"'$2`"'
>  `'
> diff --git a/topology/sof-apl-nocodec.m4 b/topology/sof-apl-
> nocodec.m4
> index 9c4286b..68380e4 100644
> --- a/topology/sof-apl-nocodec.m4
> +++ b/topology/sof-apl-nocodec.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, NoCodec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-apl-tdf8532.m4 b/topology/sof-apl-
> tdf8532.m4
> index 11299cd..b897346 100644
> --- a/topology/sof-apl-tdf8532.m4
> +++ b/topology/sof-apl-tdf8532.m4
> @@ -76,13 +76,13 @@ PCM_DUPLEX_ADD(Port2, 4, 1, 1, PIPELINE_PCM_2,
> PIPELINE_PCM_3)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 4, SSP4-Codec, DSP_B, 32,
> +DAI_CONFIG(SSP, 4, 4, SSP4-Codec, DSP_B, 32,
>  	DAI_CLOCK(mclk, 24576000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 12288000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
>  	DAI_TDM(8, 32, 15, 15))
>  
> -DAI_CONFIG(SSP, 2, SSP2-Codec, I2S, 16,
> +DAI_CONFIG(SSP, 2, 2, SSP2-Codec, I2S, 16,
>  	DAI_CLOCK(mclk, 24576000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 1536000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),

Keyon, shouldnt we be consistent here? It looks like you're using the
port number as ID when there are more than DAI definitions but 0
otherwise?
> diff --git a/topology/sof-bdw-rt286.m4 b/topology/sof-bdw-rt286.m4
> index a13a49c..098d4c8 100644
> --- a/topology/sof-bdw-rt286.m4
> +++ b/topology/sof-bdw-rt286.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 0, Codec, I2S, 24,
> +DAI_CONFIG(SSP, 0, 0, Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 24000000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-bdw-rt5640.m4 b/topology/sof-bdw-rt5640.m4
> index 007944a..bbbbbe4 100644
> --- a/topology/sof-bdw-rt5640.m4
> +++ b/topology/sof-bdw-rt5640.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 0, Codec, I2S, 24,
> +DAI_CONFIG(SSP, 0, 0, Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 24000000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-byt-da7213.m4 b/topology/sof-byt-da7213.m4
> index ecf90c6..e3c7952 100644
> --- a/topology/sof-byt-da7213.m4
> +++ b/topology/sof-byt-da7213.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, SSP2-Codec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, SSP2-Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-byt-nocodec.m4 b/topology/sof-byt-
> nocodec.m4
> index efa321b..5c65fb0 100644
> --- a/topology/sof-byt-nocodec.m4
> +++ b/topology/sof-byt-nocodec.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, NoCodec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-byt-rt5640.m4 b/topology/sof-byt-rt5640.m4
> index ae54969..7fae6f0 100644
> --- a/topology/sof-byt-rt5640.m4
> +++ b/topology/sof-byt-rt5640.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, SSP2-Codec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, SSP2-Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-byt-rt5645.m4 b/topology/sof-byt-rt5645.m4
> index 364121f..7b81cbd 100644
> --- a/topology/sof-byt-rt5645.m4
> +++ b/topology/sof-byt-rt5645.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, SSP2-Codec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, SSP2-Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-byt-rt5651.m4 b/topology/sof-byt-rt5651.m4
> index be3d994..91324ae 100644
> --- a/topology/sof-byt-rt5651.m4
> +++ b/topology/sof-byt-rt5651.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 3, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, SSP2-Codec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, SSP2-Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-cht-max98090.m4 b/topology/sof-cht-
> max98090.m4
> index 7ba4df7..5fb7802 100644
> --- a/topology/sof-cht-max98090.m4
> +++ b/topology/sof-cht-max98090.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, SSP2-Codec, I2S, 16,
> +DAI_CONFIG(SSP, 2, 0, SSP2-Codec, I2S, 16,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 1920000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-cht-nocodec.m4 b/topology/sof-cht-
> nocodec.m4
> index a0eb9cd..bd4d969 100644
> --- a/topology/sof-cht-nocodec.m4
> +++ b/topology/sof-cht-nocodec.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 2, NoCodec, I2S, 24,
> +DAI_CONFIG(SSP, 2, 0, NoCodec, I2S, 24,
>  	DAI_CLOCK(mclk, 19200000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-cnl-rt274.m4 b/topology/sof-cnl-rt274.m4
> index 36cd91f..01cd203 100644
> --- a/topology/sof-cnl-rt274.m4
> +++ b/topology/sof-cnl-rt274.m4
> @@ -64,7 +64,7 @@ PCM_DUPLEX_ADD(Passthrough, 3, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 0, SSP0-Codec, DSP_B, 24,
> +DAI_CONFIG(SSP, 0, 0, SSP0-Codec, DSP_B, 24,
>  	DAI_CLOCK(mclk, 24000000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 4800000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/sof-hsw-rt5640.m4 b/topology/sof-hsw-rt5640.m4
> index 85b8209..28d5c6a 100644
> --- a/topology/sof-hsw-rt5640.m4
> +++ b/topology/sof-hsw-rt5640.m4
> @@ -93,7 +93,7 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # BE configurations - overrides config in ACPI if present
>  #
> -DAI_CONFIG(SSP, 0, Codec, I2S, 24,
> +DAI_CONFIG(SSP, 0, 0, Codec, I2S, 24,
>  	DAI_CLOCK(mclk, 24000000, codec_mclk_in),
>  	DAI_CLOCK(bclk, 2400000, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/test/test-capture-ssp.m4 b/topology/test/test-
> capture-ssp.m4
> index 6d666dc..67f0da9 100644
> --- a/topology/test/test-capture-ssp.m4
> +++ b/topology/test/test-capture-ssp.m4
> @@ -68,7 +68,7 @@ PCM_CAPTURE_ADD(Passthrough, 3, 0, 0,
> PIPELINE_PCM_2)
>  #
>  # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample
> conatiner on SSP TEST_SSP_PORT
>  #
> -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, TEST_SSP_MODE,
> TEST_SSP_DATA_BITS,
> +DAI_CONFIG(SSP, TEST_SSP_PORT, 0, TEST_DAI_LINK_NAME, TEST_SSP_MODE,

For the test m4's, could we please pass the id from tplg-build.sh. It
will be much easier if/when we want to change it. 

> TEST_SSP_DATA_BITS,
>  	DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in),
>  	DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/test/test-playback-ssp.m4 b/topology/test/test-
> playback-ssp.m4
> index 5ee1b53..22943b0 100644
> --- a/topology/test/test-playback-ssp.m4
> +++ b/topology/test/test-playback-ssp.m4
> @@ -68,7 +68,7 @@ PCM_PLAYBACK_ADD(Passthrough, 3, 0, 0,
> PIPELINE_PCM_1)
>  #
>  # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample
> conatiner on SSP TEST_SSP_PORT
>  #
> -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, TEST_SSP_MODE,
> TEST_SSP_DATA_BITS,
> +DAI_CONFIG(SSP, TEST_SSP_PORT, 0, TEST_DAI_LINK_NAME, TEST_SSP_MODE,
> TEST_SSP_DATA_BITS,
>  	DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_slave),
>  	DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/test/test-ssp.m4 b/topology/test/test-ssp.m4
> index 1bdce2f..0b305e1 100644
> --- a/topology/test/test-ssp.m4
> +++ b/topology/test/test-ssp.m4
> @@ -86,7 +86,7 @@ PCM_DUPLEX_ADD(Passthrough, 3, 0, 0,
> PIPELINE_PCM_1, PIPELINE_PCM_2)
>  #
>  # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample
> conatiner on SSP TEST_SSP_PORT
>  #
> -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, TEST_SSP_MODE,
> TEST_SSP_DATA_BITS,
> +DAI_CONFIG(SSP, TEST_SSP_PORT, 0, TEST_DAI_LINK_NAME, TEST_SSP_MODE,
> TEST_SSP_DATA_BITS,
>  	DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in),
>  	DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),
> diff --git a/topology/test/test-tone-playback-ssp.m4
> b/topology/test/test-tone-playback-ssp.m4
> index 069ad64..b08447a 100644
> --- a/topology/test/test-tone-playback-ssp.m4
> +++ b/topology/test/test-tone-playback-ssp.m4
> @@ -56,7 +56,7 @@ DAI_ADD(sof/pipe-dai-playback.m4,
>  #
>  # TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample
> conatiner on SSP TEST_SSP_PORT
>  #
> -DAI_CONFIG(SSP, TEST_SSP_PORT, TEST_DAI_LINK_NAME, I2S,
> TEST_SSP_DATA_BITS,
> +DAI_CONFIG(SSP, TEST_SSP_PORT, 0, TEST_DAI_LINK_NAME, I2S,
> TEST_SSP_DATA_BITS,
>  	DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in),
>  	DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave),
>  	DAI_CLOCK(fsync, 48000, codec_slave),


More information about the Sound-open-firmware mailing list