On 2018年05月24日 10:25, Ranjani Sridharan wrote:
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@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?
it should be aligned with the definition in machine driver. it do be consistent in machine driver, and they are also same with SSP port number in machine driver(although they could be different, such as the change in this same patch for byt...).
another point is, I am planing to add PCMs for all 6 SSP ports soon, after that, you will still see that the ids here are exactly same with port number.
Thanks, ~Keyon
/* Back End DAI links */ { /* SSP0 - BT */ .name = "SSP0-Codec", .id = 0, .cpu_dai_name = "SSP0 Pin", .codec_name = "snd-soc-dummy", .codec_dai_name = "snd-soc-dummy-dai", .platform_name = "0000:00:0e.0", .ignore_suspend = 1, .dpcm_capture = 1, .dpcm_playback = 1, .no_pcm = 1, }, { /* SSP1 - HDMI-In */ .name = "SSP1-Codec", .id = 1, .cpu_dai_name = "SSP1 Pin", .codec_name = "snd-soc-dummy", .codec_dai_name = "snd-soc-dummy-dai", .platform_name = "0000:00:0e.0", .ignore_suspend = 1, .dpcm_capture = 1, .no_pcm = 1, }, { /* SSP2 - Dirana */ .name = "SSP2-Codec", .id = 2, .cpu_dai_name = "SSP2 Pin", .codec_name = "snd-soc-dummy", .codec_dai_name = "snd-soc-dummy-dai", .platform_name = "0000:00:0e.0", .ignore_suspend = 1, .dpcm_capture = 1, .dpcm_playback = 1, .no_pcm = 1, .be_hw_params_fixup = bxt_tdf8532_ssp2_fixup, }, { /* SSP3 - Modem */ .name = "SSP3-Codec", .id = 3, .cpu_dai_name = "SSP3 Pin", .codec_name = "snd-soc-dummy", .codec_dai_name = "snd-soc-dummy-dai", .platform_name = "0000:00:0e.0", .ignore_suspend = 1, .dpcm_capture = 1, .dpcm_playback = 1, .no_pcm = 1, }, { /* SSP4 - Amplifier */ .name = "SSP4-Codec", .id = 4, .cpu_dai_name = "SSP4 Pin", .codec_name = "i2c-INT34C3:00", .codec_dai_name = "tdf8532-hifi", .platform_name = "0000:00:0e.0", .ignore_suspend = 1, .dpcm_playback = 1, .no_pcm = 1, }, { /* SSP5 - TestPin */ .name = "SSP5-Codec", .id = 5, .cpu_dai_name = "SSP5 Pin", .codec_name = "snd-soc-dummy", .codec_dai_name = "snd-soc-dummy-dai", .platform_name = "0000:00:0e.0", .ignore_suspend = 1, .dpcm_capture = 1, .dpcm_playback = 1, .no_pcm = 1, },
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),