diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 7507465740ea..8b6ad40c7916 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -20,13 +20,15 @@ set(TPLGS "sof-cht-nocodec\;sof-cht-nocodec\;-DPLATFORM=cht-nocodec\;-DSSP_NUM=2" "sof-cht-nocodec\;sof-byt-nocodec\;-DPLATFORM=byt-nocodec\;-DSSP_NUM=2" "sof-bdw-nocodec\;sof-bdw-nocodec" + + ## HDaudio codec topologies "sof-hda-generic\;sof-hda-generic\;-DCHANNELS=0\;-DHSPROC=volume\;-DDYNAMIC=1" "sof-hda-generic\;sof-hda-generic-1ch\;-DCHANNELS=2\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" "sof-hda-generic\;sof-hda-generic-2ch\;-DCHANNELS=2\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" "sof-hda-generic\;sof-hda-generic-3ch\;-DCHANNELS=4\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" "sof-hda-generic\;sof-hda-generic-4ch\;-DCHANNELS=4\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" - "sof-hda-generic-kwd\;sof-hda-generic-2ch-kwd\;-DCHANNELS=2\;-DDYNAMIC=1" - "sof-hda-generic-kwd\;sof-hda-generic-4ch-kwd\;-DCHANNELS=4\;-DDYNAMIC=1" + ## end HDaudio codec topologies + "sof-hda-generic-idisp\;sof-hda-generic-idisp\;-DCHANNELS=0\;-DDYNAMIC=1" "sof-hda-generic-idisp\;sof-hda-generic-idisp-2ch\;-DCHANNELS=2\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" "sof-hda-generic-idisp\;sof-hda-generic-idisp-4ch\;-DCHANNELS=4\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" @@ -88,6 +90,19 @@ set(TPLGS "sof-cavs-nocodec\;sof-ehl-nocodec\;-DPLATFORM=ehl\;-DDYNAMIC=1" "sof-cavs-nocodec\;sof-adl-nocodec\;-DPLATFORM=adl\;-DDMIC_48k_CORE_ID=1\;-DSSP0_CORE_ID=2\;-DSSP1_CORE_ID=3\;-DDYNAMIC=1" "sof-icl-dmic-4ch\;sof-icl-dmic-4ch" + "sof-cml-rt5682\;sof-cml-rt5682\;-DPLATFORM=cml\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-whl-rt5682\;-DPLATFORM=whl\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-icl-rt5682\;-DPLATFORM=icl\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682-kwd\;sof-cml-rt5682-kwd\;-DPLATFORM=cml" + "sof-cml-rt5682-kwd\;sof-whl-rt5682-kwd\;-DPLATFORM=whl" + "sof-cml-rt5682-kwd\;sof-icl-rt5682-kwd\;-DPLATFORM=icl" + "sof-cml-demux-rt5682\;sof-cml-demux-rt5682\;-DPLATFORM=cml" + "sof-cml-demux-rt5682\;sof-whl-demux-rt5682\;-DPLATFORM=whl" + "sof-cml-rt5682-max98357a\;sof-cml-rt5682-max98357a\;-DPLATFORM=cml" + "sof-cml-demux-rt5682-max98357a\;sof-cml-demux-rt5682-max98357a\;-DPLATFORM=cml" + "sof-cml-rt1011-rt5682\;sof-cml-rt1011-rt5682\;-DPLATFORM=cml\;-DPPROC=volume" + + ## SoundWire topologies # sof-icl-r700 is kept for compatibility with CI and previous versions of the kernel. "sof-icl-rt700\;sof-icl-rt700\;-DCHANNELS=4\;-DPLATFORM=icl\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" "sof-icl-rt700\;sof-icl-rt700-4ch\;-DCHANNELS=4\;-DPLATFORM=icl\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" @@ -107,28 +122,20 @@ set(TPLGS "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l0-rt1308-l12-rt715-l3\;-DPLATFORM=adl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DMIC_LINK=3" "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l0-rt1316-l12-rt714-l3\;-DPLATFORM=adl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=3" "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l0-rt1316-l13-rt714-l2\;-DPLATFORM=adl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=3\;-DEXT_AMP_REF\;-DMIC_LINK=2" - "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt1316-l2-mono-rt714-l0\;-DPLATFORM=adl\;-DMONO\;-DNOJACK\;-DAMP_1_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=0" - "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt1316-l12-rt714-l0\;-DPLATFORM=adl\;-DNOJACK\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=0" - "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt1316-l2-mono-rt714-l3\;-DPLATFORM=adl\;-DMONO\;-DNOJACK\;-DAMP_1_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=3" "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l2-rt1316-l01-rt714-l3\;-DPLATFORM=adl\;-DUAJ_LINK=2\;-DAMP_1_LINK=0\;-DAMP_2_LINK=1\;-DEXT_AMP_REF\;-DMIC_LINK=3" "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l2-rt1316-l01\;-DPLATFORM=adl\;-DUAJ_LINK=2\;-DAMP_1_LINK=0\;-DAMP_2_LINK=1\;-DEXT_AMP_REF\;-DNO_LOCAL_MIC" - "sof-cml-rt5682\;sof-cml-rt5682\;-DPLATFORM=cml\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" - "sof-cml-rt5682\;sof-whl-rt5682\;-DPLATFORM=whl\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" - "sof-cml-rt5682\;sof-icl-rt5682\;-DPLATFORM=icl\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" - "sof-cml-rt5682-kwd\;sof-cml-rt5682-kwd\;-DPLATFORM=cml" - "sof-cml-rt5682-kwd\;sof-whl-rt5682-kwd\;-DPLATFORM=whl" - "sof-cml-rt5682-kwd\;sof-icl-rt5682-kwd\;-DPLATFORM=icl" - "sof-cml-demux-rt5682\;sof-cml-demux-rt5682\;-DPLATFORM=cml" - "sof-cml-demux-rt5682\;sof-whl-demux-rt5682\;-DPLATFORM=whl" - "sof-cml-rt5682-max98357a\;sof-cml-rt5682-max98357a\;-DPLATFORM=cml" - "sof-cml-demux-rt5682-max98357a\;sof-cml-demux-rt5682-max98357a\;-DPLATFORM=cml" - "sof-cml-rt1011-rt5682\;sof-cml-rt1011-rt5682\;-DPLATFORM=cml\;-DPPROC=volume" - "sof-tgl-rt711-rt1308\;sof-tgl-rt711-rt1308-2ch\;-DCHANNELS=2\;-DEXT_AMP\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=tgl" "sof-tgl-rt711-rt1308\;sof-tgl-rt711-rt1308-4ch\;-DCHANNELS=4\;-DEXT_AMP\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=tgl" "sof-tgl-rt711-rt1308\;sof-tgl-rt711-4ch\;-DCHANNELS=4\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=tgl" "sof-tgl-rt711-rt1308\;sof-adl-rt711-4ch\;-DCHANNELS=4\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=adl" "sof-tgl-rt711-rt1308\;sof-adl-rt711\;-DCHANNELS=0\;-DPLATFORM=adl" + ## end SoundWire topologies + + ## SoundWire NOJACK topologies + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt1316-l2-mono-rt714-l0\;-DPLATFORM=adl\;-DMONO\;-DNOJACK\;-DAMP_1_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=0" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt1316-l12-rt714-l0\;-DPLATFORM=adl\;-DNOJACK\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=0" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt1316-l2-mono-rt714-l3\;-DPLATFORM=adl\;-DMONO\;-DNOJACK\;-DAMP_1_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=3" + ## end SoundWire NOJACK topologies "sof-ehl-rt5660\;sof-ehl-rt5660\;-DHDMI=1" "sof-ehl-rt5660\;sof-ehl-rt5660-nohdmi" @@ -285,3 +292,4 @@ endforeach() add_subdirectory(development) add_subdirectory(dsp_enhancement) +add_subdirectory(kernel_dependent) diff --git a/tools/topology/topology1/development/CMakeLists.txt b/tools/topology/topology1/development/CMakeLists.txt index d7f39d5a4e6a..ff69173d732c 100644 --- a/tools/topology/topology1/development/CMakeLists.txt +++ b/tools/topology/topology1/development/CMakeLists.txt @@ -31,6 +31,9 @@ set(TPLGS "sof-imx8mp-compr-mp3-wm8960\;sof-imx8mp-compr-mp3-wm8960" "sof-apl-nocodec-demux-eq-4ch4ch\;sof-apl-nocodec-demux-eq-4ch4ch" "sof-apl-nocodec-demux-eq-2ch4ch\;sof-apl-nocodec-demux-eq-2ch4ch" + + "sof-hda-generic-kwd\;sof-hda-generic-2ch-kwd\;-DCHANNELS=2\;-DDYNAMIC=1" + "sof-hda-generic-kwd\;sof-hda-generic-4ch-kwd\;-DCHANNELS=4\;-DDYNAMIC=1" ) diff --git a/tools/topology/topology1/sof-hda-generic-kwd.m4 b/tools/topology/topology1/development/sof-hda-generic-kwd.m4 similarity index 100% rename from tools/topology/topology1/sof-hda-generic-kwd.m4 rename to tools/topology/topology1/development/sof-hda-generic-kwd.m4 diff --git a/tools/topology/topology1/kernel_dependent/CMakeLists.txt b/tools/topology/topology1/kernel_dependent/CMakeLists.txt new file mode 100644 index 000000000000..5b81d374b6a7 --- /dev/null +++ b/tools/topology/topology1/kernel_dependent/CMakeLists.txt @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: BSD-3-Clause + +add_subdirectory(v5.19) diff --git a/tools/topology/topology1/kernel_dependent/v5.19/CMakeLists.txt b/tools/topology/topology1/kernel_dependent/v5.19/CMakeLists.txt new file mode 100644 index 000000000000..d8311691c3c4 --- /dev/null +++ b/tools/topology/topology1/kernel_dependent/v5.19/CMakeLists.txt @@ -0,0 +1,79 @@ +# SPDX-License-Identifier: BSD-3-Clause + +# Those topologies are built from topology in the parent directory +set(TPLGS_UP + ## HDaudio codec topologies + "sof-hda-generic\;sof-hda-generic\;-DDEEP_BUFFER\;-DCHANNELS=0\;-DHSPROC=volume\;-DDYNAMIC=1" + "sof-hda-generic\;sof-hda-generic-1ch\;-DDEEP_BUFFER\;-DCHANNELS=2\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" + "sof-hda-generic\;sof-hda-generic-2ch\;-DDEEP_BUFFER\;-DCHANNELS=2\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" + "sof-hda-generic\;sof-hda-generic-3ch\;-DDEEP_BUFFER\;-DCHANNELS=4\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" + "sof-hda-generic\;sof-hda-generic-4ch\;-DDEEP_BUFFER\;-DCHANNELS=4\;-DHSPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DDYNAMIC=1" + ## end HDaudio codec topologies + + ## SoundWire topologies + # sof-icl-r700 is kept for compatibility with CI and previous versions of the kernel. + "sof-icl-rt700\;sof-icl-rt700\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DPLATFORM=icl\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + "sof-icl-rt700\;sof-icl-rt700-4ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DPLATFORM=icl\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + "sof-icl-rt700\;sof-icl-rt700-2ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=2\;-DPLATFORM=icl\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + # sof-cml-r700 is kept for compatibility with CI and previous versions of the kernel. + "sof-cml-rt700\;sof-cml-rt700\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DPLATFORM=cml\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + "sof-cml-rt700\;sof-cml-rt700-4ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DPLATFORM=cml\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + "sof-cml-rt700\;sof-cml-rt700-2ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=2\;-DPLATFORM=cml\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-cml-rt711-rt1308-mono-rt715\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=cml\;-DMONO" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-cml-rt711-rt1308-rt715\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=cml" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-icl-rt711-rt1308-rt715\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=icl" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-tgl-rt711-rt1308-mono-rt715\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=tgl\;-DMONO\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-tgl-rt711-l0-rt1316-l1-mono-rt714-l3\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=tgl\;-DMONO\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DEXT_AMP_REF\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-tgl-rt715-rt711-rt1308-mono\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=tgl\;-DMONO\;-DUAJ_LINK=1\;-DAMP_1_LINK=2\;-DMIC_LINK=0" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-tgl-rt711-rt1308-rt715\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=tgl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-tgl-rt711-rt1316-rt714\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=tgl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l0-rt1308-l12-rt715-l3\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=adl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l0-rt1316-l12-rt714-l3\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=adl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=2\;-DEXT_AMP_REF\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l0-rt1316-l13-rt714-l2\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=adl\;-DUAJ_LINK=0\;-DAMP_1_LINK=1\;-DAMP_2_LINK=3\;-DEXT_AMP_REF\;-DMIC_LINK=2" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l2-rt1316-l01-rt714-l3\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=adl\;-DUAJ_LINK=2\;-DAMP_1_LINK=0\;-DAMP_2_LINK=1\;-DEXT_AMP_REF\;-DMIC_LINK=3" + "sof-icl-rt711-rt1308-rt715-hdmi\;sof-adl-rt711-l2-rt1316-l01\;-DHEADSET_DEEP_BUFFER\;-DPLATFORM=adl\;-DUAJ_LINK=2\;-DAMP_1_LINK=0\;-DAMP_2_LINK=1\;-DEXT_AMP_REF\;-DNO_LOCAL_MIC" + "sof-tgl-rt711-rt1308\;sof-tgl-rt711-rt1308-2ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=2\;-DEXT_AMP\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=tgl" + "sof-tgl-rt711-rt1308\;sof-tgl-rt711-rt1308-4ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DEXT_AMP\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=tgl" + "sof-tgl-rt711-rt1308\;sof-tgl-rt711-4ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=tgl" + "sof-tgl-rt711-rt1308\;sof-adl-rt711-4ch\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=4\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4\;-DPLATFORM=adl" + "sof-tgl-rt711-rt1308\;sof-adl-rt711\;-DHEADSET_DEEP_BUFFER\;-DCHANNELS=0\;-DPLATFORM=adl" + ## end SoundWire topologies +) + +add_custom_target(kernel_dependent_v5_19_topologies1) +add_dependencies(topologies1 kernel_dependent_v5_19_topologies1) + +# handle topologies in parent directory +foreach(tplg ${TPLGS_UP}) + list(GET tplg 0 input) + list(GET tplg 1 output) + list(LENGTH tplg tplg_len) + math(EXPR num_args "${tplg_len} - 1") + set(DEFINES "") + if (${num_args} GREATER 1) + foreach(index RANGE 2 ${num_args}) + list(GET tplg ${index} custom_define) + list(APPEND DEFINES ${custom_define}) + endforeach() + endif() + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${output}.conf + COMMAND m4 --fatal-warnings + ${DEFINES} + -I ${CMAKE_CURRENT_SOURCE_DIR}/../../m4 + -I ${CMAKE_CURRENT_SOURCE_DIR}/../../common + -I ${CMAKE_CURRENT_SOURCE_DIR}/../../platform/common + -I ${CMAKE_CURRENT_SOURCE_DIR}/../../ + -I ${CMAKE_CURRENT_BINARY_DIR}/../../ + ${CMAKE_CURRENT_SOURCE_DIR}/../../common/abi.m4 + ${CMAKE_CURRENT_SOURCE_DIR}/../../${input}.m4 + > ${output}.conf + DEPENDS abi_v1 + VERBATIM + USES_TERMINAL + ) + add_alsatplg_command(${output}.conf ${output}.tplg) + + add_custom_target(topology_${output} DEPENDS ${output}.tplg) + add_dependencies(kernel_dependent_v5_19_topologies1 topology_${output}) +endforeach() diff --git a/tools/topology/topology1/sof-cml-rt700.m4 b/tools/topology/topology1/sof-cml-rt700.m4 index a6306b206ab1..f114648c4362 100644 --- a/tools/topology/topology1/sof-cml-rt700.m4 +++ b/tools/topology/topology1/sof-cml-rt700.m4 @@ -46,6 +46,7 @@ DEBUG_START # Define the pipelines # # PCM0 ---> volume ----> mixer --->ALH 2 BE dailink 0 +# PCM31 ---> volume ------^ # PCM1 <--- volume <---- ALH 3 BE dailink 1 # PCM10 <---------------- DMIC01 (dmic0 capture, BE dailink 2) # PCM11 <---------------- DMIC16k (dmic16k, BE dailink 3) @@ -120,12 +121,31 @@ PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_1) +# Deep buffer playback pipeline 31 on PCM 31 using max 2 channels of s32le +# Set 1000us deadline on core 0 with priority 0. +# TODO: Modify pipeline deadline to account for deep buffering +ifdef(`HEADSET_DEEP_BUFFER', +` +PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 31, 31, 2, s32le, + 1000, 0, 0, + 48000, 48000, 48000, + SCHEDULE_TIME_DOMAIN_TIMER, + PIPELINE_PLAYBACK_SCHED_COMP_1) +' +) + SectionGraph."mixer-host" { index "0" lines [ # connect mixer dai pipelines to PCM pipelines dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_30) +ifdef(`HEADSET_DEEP_BUFFER', +` + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_31) +' +) ] } @@ -153,6 +173,11 @@ DAI_ADD(sof/pipe-dai-playback.m4, # PCM Low Latency, id 0 dnl PCM_PLAYBACK_ADD(name, pcm_id, playback) PCM_PLAYBACK_ADD(Jack Out, 0, PIPELINE_PCM_30) +ifdef(`HEADSET_DEEP_BUFFER', +` +PCM_PLAYBACK_ADD(Jack Out DeepBuffer, 31, PIPELINE_PCM_31) +' +) PCM_CAPTURE_ADD(Jack In, 1, PIPELINE_PCM_2) PCM_PLAYBACK_ADD(HDMI 1, 5, PIPELINE_PCM_6) PCM_PLAYBACK_ADD(HDMI 2, 6, PIPELINE_PCM_7) diff --git a/tools/topology/topology1/sof-hda-generic.m4 b/tools/topology/topology1/sof-hda-generic.m4 index 9e04d3c4a470..485ef520c496 100644 --- a/tools/topology/topology1/sof-hda-generic.m4 +++ b/tools/topology/topology1/sof-hda-generic.m4 @@ -104,6 +104,20 @@ PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_1) +# Deep buffer playback pipeline 31 on PCM 31 using max 2 channels of s32le +# Set 1000us deadline on core 0 with priority 0. +# TODO: Modify pipeline deadline to account for deep buffering +ifdef(`DEEP_BUFFER', +` +PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 31, 31, 2, s32le, + 1000, 0, 0, + 48000, 48000, 48000, + SCHEDULE_TIME_DOMAIN_TIMER, + PIPELINE_PLAYBACK_SCHED_COMP_1) +' +) + # Undefine PIPELINE_FILTERx to avoid to propagate elsewhere, other endpoints # with filters blobs will need similar handling as HSPROC_FILTERx. undefine(`PIPELINE_FILTER1') @@ -143,10 +157,20 @@ SectionGraph."mixer-host" { lines [ # connect mixer dai pipelines to PCM pipelines dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_30) +ifdef(`DEEP_BUFFER', +` + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_31) +' +) ] } PCM_DUPLEX_ADD(HDA Analog, 0, PIPELINE_PCM_30, PIPELINE_PCM_2) +ifdef(`DEEP_BUFFER', +` +PCM_PLAYBACK_ADD(HDA Analog Deep Buffer, 31, PIPELINE_PCM_31) +' +) PCM_PLAYBACK_ADD(HDMI1, 3, PIPELINE_PCM_7) PCM_PLAYBACK_ADD(HDMI2, 4, PIPELINE_PCM_8) PCM_PLAYBACK_ADD(HDMI3, 5, PIPELINE_PCM_9) diff --git a/tools/topology/topology1/sof-icl-rt700.m4 b/tools/topology/topology1/sof-icl-rt700.m4 index dabff79dbd91..bce8e9bee623 100644 --- a/tools/topology/topology1/sof-icl-rt700.m4 +++ b/tools/topology/topology1/sof-icl-rt700.m4 @@ -46,6 +46,7 @@ DEBUG_START # Define the pipelines # # PCM0 ---> volume ----> mixer --->ALH 2 BE dailink 0 +# PCM31 ---> volume ------^ # PCM1 <--- volume <---- ALH 3 BE dailink 1 # PCM10 <---------------- DMIC01 (dmic0 capture, BE dailink 2) # PCM11 <---------------- DMIC16k (dmic16k, BE dailink 3) @@ -120,12 +121,31 @@ PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_1) +# Deep buffer playback pipeline 31 on PCM 31 using max 2 channels of s32le +# Set 1000us deadline on core 0 with priority 0. +# TODO: Modify pipeline deadline to account for deep buffering +ifdef(`HEADSET_DEEP_BUFFER', +` +PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 31, 31, 2, s32le, + 1000, 0, 0, + 48000, 48000, 48000, + SCHEDULE_TIME_DOMAIN_TIMER, + PIPELINE_PLAYBACK_SCHED_COMP_1) +' +) + SectionGraph."mixer-host" { index "0" lines [ # connect mixer dai pipelines to PCM pipelines dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_30) +ifdef(`HEADSET_DEEP_BUFFER', +` + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_31) +' +) ] } @@ -153,6 +173,11 @@ DAI_ADD(sof/pipe-dai-playback.m4, # PCM Low Latency, id 0 dnl PCM_PLAYBACK_ADD(name, pcm_id, playback) PCM_PLAYBACK_ADD(Jack Out, 0, PIPELINE_PCM_30) +ifdef(`HEADSET_DEEP_BUFFER', +` +PCM_PLAYBACK_ADD(Jack Out DeepBuffer, 31, PIPELINE_PCM_31) +' +) PCM_CAPTURE_ADD(Jack In, 1, PIPELINE_PCM_2) PCM_PLAYBACK_ADD(HDMI 1, 5, PIPELINE_PCM_6) PCM_PLAYBACK_ADD(HDMI 2, 6, PIPELINE_PCM_7) diff --git a/tools/topology/topology1/sof-icl-rt711-rt1308-rt715-hdmi.m4 b/tools/topology/topology1/sof-icl-rt711-rt1308-rt715-hdmi.m4 index 98339341430a..10460f6788c4 100644 --- a/tools/topology/topology1/sof-icl-rt711-rt1308-rt715-hdmi.m4 +++ b/tools/topology/topology1/sof-icl-rt711-rt1308-rt715-hdmi.m4 @@ -102,6 +102,7 @@ MUXDEMUX_CONFIG(demux_priv_3, 2, LIST_NONEWLINE(`', `matrix1,', `matrix2')) ifdef(`NOJACK', `', ` # PCM0 ---> volume ----> mixer --->ALH 2 BE UAJ_LINK +# PCM31 ---> volume ------^ # PCM1 <--- volume <---- ALH 3 BE UAJ_LINK ') ifdef(`NOAMP', `', @@ -227,12 +228,31 @@ PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_1) +# Deep buffer playback pipeline 31 on PCM 31 using max 2 channels of s32le +# Set 1000us deadline on core 0 with priority 0. +# TODO: Modify pipeline deadline to account for deep buffering +ifdef(`HEADSET_DEEP_BUFFER', +` +PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 31, 31, 2, s32le, + 1000, 0, 0, + 48000, 48000, 48000, + SCHEDULE_TIME_DOMAIN_TIMER, + PIPELINE_PLAYBACK_SCHED_COMP_1) +' +) + SectionGraph."mixer-host" { index "0" lines [ # connect mixer dai pipelines to PCM pipelines dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_30) +ifdef(`HEADSET_DEEP_BUFFER', +` + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_31) +' +) ] } @@ -304,6 +324,11 @@ dnl PCM_PLAYBACK_ADD(name, pcm_id, playback) ifdef(`NOJACK', `', ` PCM_PLAYBACK_ADD(Jack Out, 0, PIPELINE_PCM_30) +ifdef(`HEADSET_DEEP_BUFFER', +` +PCM_PLAYBACK_ADD(Jack Out DeepBuffer, 31, PIPELINE_PCM_31) +' +) PCM_CAPTURE_ADD(Jack In, 1, PIPELINE_PCM_2) ') ifdef(`NOAMP', `', diff --git a/tools/topology/topology1/sof-tgl-rt711-rt1308.m4 b/tools/topology/topology1/sof-tgl-rt711-rt1308.m4 index b6be8109c0af..702b171e3307 100644 --- a/tools/topology/topology1/sof-tgl-rt711-rt1308.m4 +++ b/tools/topology/topology1/sof-tgl-rt711-rt1308.m4 @@ -97,6 +97,7 @@ DEBUG_START # Define the pipelines # # PCM0 ---> volume ----> mixer --->ALH 2 BE dailink 0 +# PCM31 ---> volume ------^ # PCM1 <--- volume <---- ALH 3 BE dailink 1 ifdef(`EXT_AMP', ` # PCM2 ---> volume ----> ALH 2 BE dailink 2 @@ -187,12 +188,32 @@ PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_1) +# Deep buffer playback pipeline 31 on PCM 31 using max 2 channels of s32le +# Set 1000us deadline on core 0 with priority 0. +# TODO: Modify pipeline deadline to account for deep buffering +ifdef(`HEADSET_DEEP_BUFFER', +` +PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 31, 31, 2, s32le, + 1000, 0, 0, + 48000, 48000, 48000, + SCHEDULE_TIME_DOMAIN_TIMER, + PIPELINE_PLAYBACK_SCHED_COMP_1) +' +) + SectionGraph."mixer-host" { index "0" lines [ # connect mixer dai pipelines to PCM pipelines dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_30) +ifdef(`HEADSET_DEEP_BUFFER', +` + + dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_31) +' +) ] } @@ -237,6 +258,11 @@ DAI_ADD(sof/pipe-dai-playback.m4, # PCM Low Latency, id 0 dnl PCM_PLAYBACK_ADD(name, pcm_id, playback) PCM_PLAYBACK_ADD(Jack Out, 0, PIPELINE_PCM_30) +ifdef(`HEADSET_DEEP_BUFFER', +` +PCM_PLAYBACK_ADD(Jack Out DeepBuffer, 31, PIPELINE_PCM_31) +' +) PCM_CAPTURE_ADD(Jack In, 1, PIPELINE_PCM_2) ifdef(`EXT_AMP', `