Commit Graph

145 Commits

Author SHA1 Message Date
Marc Herbert 1b1ec6c492 topology/cmake: skip all topologies when alsatplg < 1.2.5
Stop producing corrupted .tplg files when using `codec_consumer` (e.g.:
sof-imx8mp-btsco-dual-8ch.tplg, sof-imx8ulp-9x9-btsco-16k.tplg, ...)

Then we'll be able to finally search/replace "codec_master", see revert

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-10-24 20:32:28 +03:00
Marc Herbert d9fb722b64 topology/cmake: move alsatplg_version() one level up
We want to use it in topology1 too.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-10-24 20:32:28 +03:00
Marc Herbert 016b555a06 topology2: generate abi.conf at build time, fix incremental on abi.h
Move abi.conf generation to build time.

Changing abi.h now rebuilds all v2 topologies.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-10-10 11:34:11 +01:00
Marc Herbert eee058abcd topology2: concat abi.conf at build time to fix incremental build
It's now possible to rebuild just only one modified topology without
rebuilding all of them from scratch.

Building topologies v2 has two steps:

 1. concatenation of abi.conf with topo.conf
 2. run alsatplg on the concatenation

Concatenation step 1. was wrongly implemented at configuration time, not
at build time. So when the topology source of step 1 (topo.conf) was
modified, the dependency of step 2 (= the concatenation) was not
affected and the topology was not rebuilt.

Fix this by moving the concatenation to build time.

Fixes commit 308a24a92b ("topology2: Add build support")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-10-10 11:34:11 +01:00
Marc Herbert 0bf7b73dc8 cmake: move ALSA_CONFIG_DIR from .sh file to topology/CMakeLists.txt
Fixes incremental builds of topology2 that were missing ALSA_CONFIG_DIR.

This was making it impossible to troubleshoot alsatplg issues like #5249.
Now incremental builds fail or pass the same as builds from scratch.

Fixes commit 308a24a92b ("topology2: Add build support")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-01-26 10:14:15 -08:00
Marc Herbert a351d02b6d cmake: simplify add_alsatplg2_command() macro
alsatplg accepts empty definitions -D "" so let's simplify
commit cb80023b22 ("topology2: fix build issues with no command line
definitions"); 10 lines shorter. The less CMake code the better.

Zero change, the build directory is bit for bit identical after this
commit.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-01-26 10:14:15 -08:00
Ranjani Sridharan cb80023b22 topology2: fix build issues with no command line definitions
If there are no command line definitions, the build fails because the
4th argument to the add_alsatplg2_command macro is NULL.

Fix this by using named arguments for the macro and checking for the
optional argument for command line definitions.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-01-24 12:51:11 +00:00
Ranjani Sridharan 308a24a92b topology2: Add build support
Add build support for topology2. Topology2 will be built only if the
alsatplg version if 1.2.6 or greater.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-01-06 21:38:43 +00:00
Marc Herbert 8f3f2d6f4b Revert "topology: redirection to workaround hardcoded alsatplg permissions"
This reverts commit eb34437522.

Fixes #5113

The `alsatplg -o -` feature is incompatible with `-v` and basically
buggy because it happily sends .tplg output and debug statements to
the same place without a care. To reproduce the bug, simply run:

   VERBOSE=1 ./scripts/build-tools.sh -T

... then observe .tplg output files like this:

B0x003d3b/015675 - pcm 'DMIC': write 912 bytes
B0x0040cb/016587 - pcm 'HDMI1': write 912 bytes
B0x00445b/017499 - pcm 'HDMI2': write 912 bytes
B0x0047eb/018411 - pcm 'HDMI3': write 912 bytes
B0x004b7b/019323 - pcm 'DMIC16kHz': write 912 bytes
B0x004f0b/020235 - block size for type be (11:10) is 0x2ad4/10964
B0x004f0b/020235 - header index 0CoSA^E^@^@^@^@^@^@^@^H^@^@^@$^@^@
^@^@^@^@^@s^@^@^@^@^@^@^@^A^@^@^@p^@^@^@ ^@^@^@.^@^@^@ ^@^@^@^F^@^
@^@^F^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
@^@^@^@^@^@^@^@^@^...

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-25 20:55:54 +00:00
Marc Herbert eb34437522 topology: redirection to workaround hardcoded alsatplg permissions
Use a redirection to work around hardcoded alsatplg permissions.
See bug https://github.com/alsa-project/alsa-utils/issues/126

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-14 10:39:14 +00:00
Marc Herbert 4538a07b02 topology: new add_alsatplg_command() CMake macro to reduce duplication
Less copy/paste/diverge => more maintenance.

Zero visible change, pure copy/paste reduction.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-14 10:39:14 +00:00
Ranjani Sridharan c0bee428ae topology: prepare for Topology2.0
In preparation for Topology2.0, move the current topology files
to the topology1 folder and once the 1.0 topologies are
built copy them to the /sof/tools/build-tools/topology folder.

When Topology2.0 topologies come along, they will be built into
the topology2 folder and the 2.0 binaries will be copied over
the 1.0 binaries.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-06-17 22:17:30 +01:00
Pin-chih Lin e91001af67 topology: Add DRC_EQ def for adopting DRC/EQ pipeline
For speaker pipeline, we want to deploy DRC/EQ for partial TGL device
like Eldrid. The definition flag DRC_EQ is added to make the choice of
adopting the playback pipeline with DRC/EQ.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2021-06-17 11:43:45 -07:00
Ranjani Sridharan 5b072d97d5 topology: sof-apl-nocodec: revert to static pipelines
Dynamic pipelines will fail with the sof-apl-nocodec topology
due to issues with the memory allocator. Revert back to
use static pipelines until we have a more flexible memory
allocatory available with Zephyr.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-06-10 12:11:57 +01:00
Viorel Suman 58b4aa472a topology: imx8: add kwd component with wm8960 codec
Add KWD topology for imx8: SAI1 and wm8960 codec
used for recording.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2021-06-03 13:49:58 +01:00
Ben Zhang 9d21f9ecf2 topology: Add a tgl-max98357a-rt5682 tplg with DMIC16k on PDM1
There are TGL devices using either PDM0 or PDM1 port for the DMIC16k
DAI for hotword detection. This patch adds the DMIC_DAI_LINK_16k_PDM
parameter and builds both versions.

Signed-off-by: Ben Zhang <benzh@chromium.org>
2021-05-26 08:08:49 -07:00
Vamshi Krishna e112e0bc0f topology: sof-tgl-sdw-max98373-rt5682: add support for ADL
For speakers SDW2 link is used.
For Headset SDW0 link is used.
add sof-adl-sdw-max98373-rt5682 topology

Signed-off-by: Vamshi Krishna <vamshi.krishna.gopal@intel.com>
2021-05-13 12:27:22 +01:00
Vamshi Krishna 7d44f31e7d topology: sof-tgl-sdw-max98373-rt5682: remove redundant topologies
removing 2-ch topology and renaming 4-ch topology.

Signed-off-by: Vamshi Krishna <vamshi.krishna.gopal@intel.com>
2021-05-13 12:27:22 +01:00
Ranjani Sridharan 426d7816e2 topology: nocodec: switch to dynamic pipelines
Switch the APL/CNL/ICL/JSL/TGL nocodec topologies to use dynamic
pipelines.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-05-13 11:58:06 +01:00
Ranjani Sridharan b371f93c51 topology: hda: re-enable dynamic pipelines
Re-enable dynamic pipelines for HDA topologies.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-05-13 11:58:06 +01:00
fy.tsuo 7fa9befd57 topology: sof-tgl-max98373-rt5682: added igonr.
Added sof-tgl-max98373-rt5682-igonr.tplg.

Signed-off-by: fy.tsuo <fy.tsuo@intelli-go.com>
2021-05-12 13:01:15 +01:00
Pierre-Louis Bossart d430091259 topology: add missing configuration for byt-max99080
Somehow we only support this configuration for BYT, but there are
Baytrail devices using the same codec.

BugLink: https://github.com/thesofproject/sof/issues/4160
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-05-12 09:23:22 +01:00
Ross Chisholm f706843697 topology: adding IIR component on max98373-rt5682 topology
Builds a configuration of the max98373-rt5682 topology with AMP_SSP=2
defined and includes the IIR component

Signed-off-by: Ross Chisholm <ross.chisholm@xperi.com>
2021-05-06 17:21:57 +01:00
Libin Yang 7851493534 topology: add sof-adl-rt711 topologies
Add sof-adl-rt711.tplg and sof-adl-rt711-4ch.tplg.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2021-05-06 16:59:52 +01:00
Libin Yang 37c485df36 topology: sof-tgl-rt711-rt1308: add EXT_AMP option
Some devices are using rt711 only, without amplifiers.
Add the "EXT_AMP" option in sof-tgl-rt711-rt1308.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2021-05-06 16:59:52 +01:00
Ranjani Sridharan f2bd51a138 Revert "topology: Switch HDA topologies to use dynamic pipelines"
This reverts commit 2c69afc5fd.
The dynamic pipeline feature is broken with PA enabled. Revert
this change until the issue is sorted.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-05-06 14:31:50 +01:00
Brent Lu 1ccc16c27d topology: sof-glk-da7219: add support for cs42l42
Add support for cs42l42 running on GLK boards. We add a 10 ms BCLK
delay to the SSP_CONFIG_DATA of SSP2 since the codec PLL is locking on
BCLK. Without the delay, there could be noise on TX path.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-05-03 22:17:13 +01:00
Daniel Baluta 5ca0e9bba3 topology: Use generic name for 8qxp/8qm
i.MX8QXP / i.MX8QM have the same configuration w.r.t topology.
But since we firstly added support for 8qxp all the names use
8qxp and then for 8qm we just borrow the files but using the 8qxp
naming.

This sometimes might cause confusion. So, we group under the
umbrella of imx8 naming both i.mx8qxp and i.mx8qm.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2021-04-28 20:11:19 +01:00
Ross Chisholm 71814655e6 topology: adding optional support for IIR component on jsl-rt015 topology
Allows the IIR component to be added to the jsl-rt015 topology allowing
tuning

Signed-off-by: Ross Chisholm <ross.chisholm@xperi.com>
2021-04-20 19:28:03 +01:00
Pierre-Louis Bossart fbdc330263 topology: add ADL SoundWire topologies
This is based on early hardware information and subject to change.

The ADL topologies use the link information to avoid confusions on
configurations. The kernel tables will use the same conventions.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-04-13 10:43:03 +01:00
Pierre-Louis Bossart 8673f92feb topology: align SoundWire topologies with the use of macros
No need for a dedicated topology just to deal with swapped links

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-04-13 10:43:03 +01:00
Ranjani Sridharan 2c69afc5fd topology: Switch HDA topologies to use dynamic pipelines
Let's start testing dynamic pipelines.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-04-06 14:30:55 +01:00
Ross Chisholm cab7328725 topology: adding support for IIR component
This patch adds IIR support in the tgl-max98373-rt5682 topology to allow
the frequency response of the headset output to be tuned.

Signed-off-by: Ross Chisholm <ross.chisholm@xperi.com>
2021-04-06 14:28:30 +01:00
Mac Chiang 208af04724 Topology: Add support for MAX98390 echo reference capture
codec chip playback loopback to capture stream.

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2021-04-02 13:39:14 +01:00
Marc Herbert 7c08aabbe7 topology/cmake: add missing .m4 dependency, fixes incremental build
There was no [MAIN_]DEPENDS on the .m4 source file, so changes were not
triggering any rebuild.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-26 14:51:33 +00:00
Cristina Feies (ilie) 9c499bc1d6 topology: imx8m: add kwd component with wm8960 codec
Adapt the apl KWD topology to imx8m by switching to
SCHEDULE_TIME_DOMAIN_DMA on capture pipeline and
creating a no LP capture file for KFBM component.

Signed-off-by: Cristina Feies (ilie) <cristina.ilie@nxp.com>
2021-03-16 13:47:12 +02:00
Seppo Ingalsuo 079f916c6a Topology: Move some topologies to development and dsp_enhancement
The main topology directory contains a number of topologies those
are not used directly by Linux kernel machine drivers. Also there
are variant topologies built those are modified versions of the
main topology. The topologies for testing and devolopment are moved to
directory development. The topologies those may be used by end users
to enhance the audios are moved or built to dsp_enhancements directory.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-02-26 14:07:38 +00:00
Pierre-Louis Bossart e24d77aa76 topology: remove sof-tgl-rt5682.m4
This file was used for early enablement of SoundWire on a platform,
before we had support for amplifiers. This is no longer needed, let's
remove it.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-02-10 10:35:02 +00:00
Pierre-Louis Bossart 9b355efab1 topology: remove sof-tgl-rt711-i2s-rt1308.m4
This topology is no longer used and productized, let's remove it.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-02-10 10:35:02 +00:00
Hans de Goede 86abd07cba topology: Add sof-byt-wm5102-ssp0 topology file
Add a topology file for Bay Trail boards with a WM5102 codec
connected to SSP0.

These setups works with the standard settings from sof-byt-codec.m4.

This has been tested on a Lenovo Yoga Tablet 2 1015L.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-02-10 10:32:09 +00:00
Pierre-Louis Bossart 6126ccc626 topology: use DMIC gain boost similar to HDAudio topologies
We used the same macros in .m4 files but missed the additional
configuration needed in CMakeLists.txt

Reported-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-02-03 15:55:00 +00:00
Seppo Ingalsuo cb924991a5 Topology: HDA Generic: Headset filters configuration from CMakeLists.txt
This patch eases the definition of headset post processing filters
blobs. First, the macro name PPROC is changed to HSPROC to indicate
the processing targets headset endpoint.

The CMakeLists.txt for topologies is edited to add build of topology
sof-hda-generic-eq.tplg that does not include DMIC endpoints for
devices without such. Previously there was no variant without
DMIC enable.

The main macro sof-hda-generic.m4 is enhanced to define HSPROC as
volume to use pipeline pipe-volume-playback.m4 when it has not been
defined in CMakeLists.txt.

The definitions for PIPELINE_FILTERx are copied from endpoint specific
HSPROC_FILTERx if they were defined. If they were left undefined
the pipeline will apply default processing configuration (e.g.
for EQs pass-through).

In the example the EQs are left to pass-through. The topology
sof-hda-generic-eq.tplg shows an example of explicitly setting
the filter coefficients at the top level. The FILTER1 is impacts the
first algorithm in pipeline (IIR) and FILTER2 the second algorithm
algorithm (FIR) in the used HSPROC definition eq-iir-eq-fir-volume.
In this case volume does not support such but for future there could
be FILTER3, FILTER4, ... added if need. The current m4 macros support
now only HSPROC_FILTER1 and HSPROC_FILTER2.

The patch adds undefine to PIPELINE_FILTERx in intel-generic-dmic.m4 to
make sure the macro is not set by other than DMICPROC_FILTERx. The
same is done for 16 kHz DMIC capture. Currently there were no issues
caused by it.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-01-29 11:48:58 +00:00
Pierre-Louis Bossart 3658341a3f topology: sof-cml/icl-rt700: align DMIC support with HDaudio
Somehow we use different configurations for the DMIC, remove
everything in this file and rely on the same macros.

The only difference with HDaudio is the pipeline and PCM device
numbers.

the old topology names sof-icl-rt700 and sof-cml-rt700 alias to the
same 4ch topology, when the kernel looks for the 2ch or 4ch versions
we can remove it. Make then break.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-01-29 11:33:19 +00:00
Iuliana Prodan dcba48583e topology: imx8m: add mixer component with wm8960 codec
This topology works on i.MX8MP with wm8960 codec.
When loaded, one will have a sound card with two playback subdevices.
This way, samples pushed to the two subdevices will be mixed and
sent to SAI3 and then to wm8960 codec.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2021-01-28 22:56:45 +00:00
Iuliana Prodan f5b28cc151 topology: imx8: add mixer component with cs42888 codec
This topology works on i.MX8QM and i.MX8QXP with cs42888 codec.
When loaded, one will have a sound card with two playback subdevices.
This way, samples pushed to the two subdevices will be mixed and
sent to ESAI0 and then to cs42888 codec.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2021-01-28 22:56:45 +00:00
Iuliana Prodan 21e38421d7 topology: imx8: add mixer component with wm8960 codec
This topology works on i.MX8QM and i.MX8QXP with wm8960 codec.
When loaded, one will have a sound card with two playback subdevices.
This way, samples pushed to the two subdevices will be mixed and
sent to SAI1 and then to wm8960 codec.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2021-01-28 22:56:45 +00:00
Hans de Goede e862e25a9c topology: Add sof-cht-nau8824 topology file
Add a topology file for Cherry Trail boards with a NAU8824 codec.
These setups work with the standard settings from sof-byt-codec.m4.

This has been tested on the following devices:

Medion E2215T:   stereo speakers, analog mic
Medion E2228T:   stereo speakers, stereo digital mics
Cube iWork8 Air: mono speaker, analog mic

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-01-11 16:27:47 +00:00
Brent Lu 65217991dd topology: sof-tgl-max98357a-rt5682: support rt1011 amp
Add a macro 'CODEC' to generate topology for rt1011 speaker amp.
Add a macro 'FMT' to seperate speaker dai format: s16le, s24le
Modify both pcm name by 'Speakers'

Signed-off-by: Brent Lu <brent.lu@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2020-12-03 10:49:42 +00:00
Bard Liao e7adcf5bca topoplgy: add tgl rt715-rt711-rt1308 support
Add tgl rt715-rt711-rt1308 support. But keep the PCM order as
Headphone, Headset mic, Speakers, Microphones.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2020-09-30 16:22:12 +01:00
Sathyanarayana Nujella 7f74440c51 topology: Update tplg file name for tgl system with max98373-rt5682
Changed the tplg file name in kernel driver according to Maintainers
feedback. So, topology file name here needs the corresponding change.

Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
2020-09-16 10:12:11 +01:00