Commit Graph

1328 Commits

Author SHA1 Message Date
Brent Lu 03adf55bed topology: sof-adl-max98357a-rt5682-4ch: add new topology
Add support for four max98357a speaker amplifiers running in TDM mode
which format is 8 slots with 32 bit slot/sample width on ADL boards.
The only difference between this one and sof-adl-max98360a-rt5682-4ch
is the SSP port for speaker amplifiers; this one is using SSP2 while
max98360a's topology is using SSP1.

This topology implements a 4-channel pipeline directly to speaker
amplifiers so audio effects need to be done in user space.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-12-27 20:53:31 +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 8e8d1060f5 logger: move "log_entry_address x not in dictionary range" to stderr
Make DMA trace corruption #5120 a bit more visible in the logs.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-25 20:46:32 +00:00
Mark Barton 37ce03fbd9 topology1: mt8195: Remove DTS-specific workaround for period
In a previous commit DTS changed the period of this topology to 1000 when `DTS` was defined. This
commit removes this behaviour as DTS codec now supports the original period for this topology

 Signed-off-by: Mark Barton <mark.barton@xperi.com>
2021-12-25 20:41:25 +00:00
Lionel Koenig 996a067632 topology: Ensure buffers get allocated on 0.
Ensure all buffers got allocated by core 0

Signed-off-by: Lionel Koenig <lionelk@google.com>
2021-12-22 21:34:38 +00:00
Marc Herbert 352ed2ca4b logger: when FW is loaded, show the expected checksum in -d output
Sample output:

logger ABI Version is   5:3:0
ldc_file ABI Version is 5:3:0
ldc_file src checksum           0x07d4f1ad
Loaded FW expects chksum        0x07d4f1ad       <=== NEW!

Components uuid dictionary size:        2400 bytes
Components uuid base address:           0x1fffa000
...

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-22 20:11:25 +00:00
Marc Herbert 4aaffbe9a2 logger: add dictionary checksum in output of dump_ldc option
Since commit 901f991eee ("logger: Validate by src_hash instead of abi
version from fw_ready") the dictionary checksum has become the most
important information.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-22 20:11:25 +00:00
Marc Herbert 9ce91cbf74 logger: rename verify_fw_ver() to verify_ldc_checksum(), fix -h help
Fixes commit 901f991eee ("logger: Validate by src_hash instead of abi
version from fw_ready") that changed the feature without updating the
name.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-22 20:11:25 +00:00
Ranjani Sridharan 5ce0d2b43f topology2: gain: fix dB scale min and step values
It is not intuitive for the end-ser to set linear values for
minimum gain. Set the dB gain min value to -90dB and steps to 2dB.
Also, modify the max to 45 to allow the volume gain range -90dB to 0dB.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-21 15:20:47 +00:00
Seppo Ingalsuo 0d296ce7d1 Tools: Tune: Make example FIR response long for large IPC test
The loudness EQ is changed to 250 taps to create large IPC
message type. It also improves subjective quality of this
effect with better bass response. The earlier version was
made very short to fit the that time IPC size limit.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-12-20 22:33:06 +00:00
Pierre-Louis Bossart 0bef266966 topology1: sof-hda-generic: use mixer-based pipelines for analog playback
Convert playback pipeline on analog output to have a mixer so adding a
deep-buffer pipeline will be simpler.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart 02041297ac topology: sof-hda-generic: prepare addition of deep-buffer support
Just move of definitions, no functionality change

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart 29e46af073 topology1: pipe-eq-iir-eq-fir-volume-playback: remove duplicate volume
The same volume information is present twice, remove the one that
seems out of place in the pipeline.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart cfb3ac5b00 topology1: add pipe-mixer-eq-iir-eq-fir-volume-dai-playback.m4
mix/merge of parts coming from pipe-mixer-volume-dai-playback.m4 and
pipe-eq-iir-eq-fir-volume-playback.m4

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart 43dacdc016 topology1: soundwire: split headphone pipe in host- and dai-parts
Prepare for the introduction of deep buffer support

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart 9f4af6b013 topology1: soundwire: fix misleading comment on ALH buffer format
All platforms use s24le for ALH, fix misleading comment.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart e8b8854e3a topology1: soundwire: move cnl-rt5682 to development directory
This topology was used initially on UpExtreme but isn't shipped in any
commercial device.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart fb03464dd5 topology1: fix comments in pipe-mixer-volume-dai-playback.m4
buffer information and formatting was incorrect

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +00:00
Pierre-Louis Bossart fad16d8330 topology1: rename pipe-mixer-dai-playback to pipe-mixer-volume-dai-playback
To include deep buffer for HDaudio topologies, we need the ability to
replace volume by some other component (e.g. eq-iir-eq-fir-volume)

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2021-12-16 11:13:59 +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
Dirk Su d2a3ec2273 sof_ri_info: add ADL Intel prod key to list of known keys
Extracted from
https://github.com/thesofproject/sof-bin/blob/main/v1.9.x/sof-v1.9.2/intel-signed/sof-adl.ri

Signed-off-by: Dirk Su <dirk.su@canonical.com>
2021-12-14 10:38:18 +00:00
Ranjani Sridharan f4287dd3e8 topology2: cavs: Set audio formats for all topologies
Set audio formats and new attributes for all modules in the CAVS
topologies.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan a4b8d11678 topology2: pipelines: cavs: Add audio formats for all pipeline modules
Add audio formats and all new attributes for all modules in the
cavs pipelines.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan 4d23794607 topology2: mixin/mixout: Add audio formats and new attributes
Add audio format objects and num_audio_formats attribute.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan eb96d21caf topology2: gain: Add new attributes for gain
Add audio format objects and num_audio_formats attribute for gain.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan 6631743209 topology2: common: Add new class definition for audio_format
Add definition for audio format class for defining the input and output
audio formats for each components in cavs topology.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan eb013c738b topology2: copier: Add extra attributes
Add some new attributes along with math expression to calculate the
attribute "is_pages".

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan 0c517d4af7 topology2: copier: remove stale comment
All known DAI types added already.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan d523e67e6e topology2: tokens: Add additional tokens needed for cavs topologies
Add all tokens required for cavs topologies.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-12-14 10:33:16 +00:00
Ranjani Sridharan d0c3965808 topology2: cavs: Add some commonly used definitions for cavs topologies
Used for setting audio format attributes and copier attributes.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-14 10:33:16 +00:00
balapati 926fc9ad7d topology1: Add sof-rn-rt5682-max98360, sof-rn-rt5682-rt1019
Add topology support for max98360,rt1019 speaker amplifiers
for amd renoir platform.

Signed-off-by: balapati <balakishore.pati@amd.com>
2021-12-13 11:38:06 +00:00
Brent Lu 25f61384f9 topology: sof-adl-max98360a-rt5682-2way: rename macro
The macro 2_WAY_SPK is renamed 2CH_2WAY to specify it's a L/R 2-way
system.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-12-13 11:33:33 +00:00
Brent Lu 6c13aad711 topology: sof-adl-max98360a-rt5682-4ch: add new topology
Add support for four max98360a speaker amplifiers running in TDM mode
which format is 8 slots with 32 bit slot/sample width on ADL boards.

This topology implements a 4-channel pipeline directly to speaker
amplifiers so audio effects need to be done in user space.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-12-13 11:33:33 +00:00
Marc Herbert 07c63c1f99 topology1: build the production topologies one level down
Move generated *.conf and *.tplg v1 files down from:

  build_tools/topology/topology1/*.{conf,tplg}

_to:

  build_tools/topology/topology1/production/*.{conf,tplg}

... then copy/"install" the production/* subdirectory two levels up.

This fixes the race condition #5067 that also copied a random number of
development/ and dsp_enhancement/ topologies, sometimes even truncating
these.

In other words, this commit REMOVES the following two copies:

build_tools/topology/development/       # randomly corrupted copy, removed
build_tools/topology/dsp_enhancement/   # randomly corrupted copy, removed

build_tools/topology/topology1/development/    # real build dir, unchanged
build_tools/topology/topology1/dsp_enhancement # real build dir, unchanged

Production topologies are copied only to help with the v1->v2
transition. That duplication makes the build directory confusing enough,
no need to extend that copy to development topologies. A single instance
of development topologies in the build directory is enough.

This removal may break some CI script(s): this is perfect because such
CI script(s) were copying randomly corrupted data.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-13 10:57:20 +00:00
Ranjani Sridharan 3e1c160e50 topology1: fix errors due to newline in list generator
The recent changes to the string parser in alsa-lib cause the topology
builds to break for some topologies. Avoid adding a newline for the bytes
data for the MUXDEMUX config by introducing a new macro for creating lists
without new lines between items.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-08 21:13:23 +00:00
Ranjani Sridharan db041556ce topology1: sof-cml-src-rt5682: remove extra space after values
The string parser in alsa-lib is sensitive to these now. So fix it.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-08 21:13:23 +00:00
Ranjani Sridharan 7aedc1604d topology2: cavs-*-hdmi: replace the use of @args with Define
The Define block replaces the use of @args for topology2 in the alsatplg
compiler. So replace all users.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-12-08 21:11:40 +00:00
Marc Herbert 7aa1b28070 sof_ri_info: assert Python version is 3.6 or above.
As reported by Bartosz, Python 3.5.2 fails with the relatively cryptic
TypeError: invalid file: PosixPath('sof-tgl.ri'). Make this failure much
less cryptic.

As of December 2021 Python 3.5 is completely out of support and 3.6 will
be soon https://www.python.org/downloads/

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-12-08 20:45:07 +00:00
Zhang Peng 350fc6c66d topology: 8ulp: Change sample rate to 8K
As changed SAI to 8Khz, then modify tplg file to
match this.

Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
2021-12-08 10:51:07 +02:00
Yong Zhi 47b159fca3 topology: set default values for C_CONTROLBYTES string members
When the string fields left empty, the alsa topology parser treats
SND_CONFIG_TYPE_STRING type config as -EINVAL, so set defauls values.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2021-12-03 10:39:35 +00:00
Jaska Uimonen f9cc0f7a1a logger: rename asprintf and vasprintf
Rename asprintf and vasprintf into log_asprintf and log_vasprintf as the
names could clash with the standard libc ones. These functions are there
originally done because of windows compatibility, but the naming was not
thought through carefully.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2021-12-02 09:56:25 +00:00
Brent Lu f41010d386 topology: sof-adl-max98360a-rt5682-2way: add new topology
Add support for four max98360a speaker amplifiers running in TDM mode
which format is 8 slots with 32 bit slot/sample width on ADL boards.

To implement the 2-way woofer/tweeter speaker function in SOF, there
is a demux to create 4-channel audio data with EQ on each channel for
band-split function.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-11-25 16:41:37 +00:00
Brent Lu e2bb2602e1 pipe-demux-eq-iir-playback: support eq coef customization
Topology file could use PIPELINE_FILTER1 macro to include a m4 file
with eq coefficient. If macro is not defined, eq_iir_coef_bandsplit.m4
will be included.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-11-25 16:41:37 +00:00
Brent Lu 8ed1e90b5c topology: pipe-demux-eq-iir-playback: change slot mapping
Change the default slot mapping from L_lo-L_hi-R_lo-R_hi to
L_lo-R_lo-L_hi-R_hi so slot 0/1 is for woofer and slot 2/3 is for
tweeter.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-11-25 16:41:37 +00:00
Brent Lu 771c2bb318 topology: pipe-demux-eq-iir-playback: remove macro 'matrix1
The demux routing matrix and config are removed for two reasons: 1.
the config 'demux_priv_1' is hardcoded for pipeline 1 only. 2. other
m4 file with demux compoenet like pipe-volume-demux-playback has the
matrix and config defined in the topology file.

The topology which implement this pipeline should define the routing
matrx and config named as 'demux_priv_<pipeline id>' before including
this m4 file.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-11-25 16:41:37 +00:00
Ming Jen Tai d959089d8e Modify RTNR to work with KWD on TGL and ADL.
Modify RTNR to work with KWD on TGL and ADL.
Remove unused RTNR 16kHz topology.
Add RTNR support to max98390 on ADL.

Signed-off-by: Ming Jen Tai <mingjen_tai@realtek.com>
2021-11-23 13:22:11 +00:00
Ming Jen Tai dda9d0f9fc Add RTNR support in intel-generic-dmic-kwd.m4.
Signed-off-by: Ming Jen Tai <mingjen_tai@realtek.com>
2021-11-23 09:57:10 +00:00
Marc Herbert 2c208b52fb sof_ri_info: add JSL Intel prod key to list of known keys
Extracted from
https://github.com/thesofproject/sof-bin/blob/main/v1.9.x/sof-v1.9.2/intel-signed/sof-jsl.ri

Note previous sof-jsl.ri releases were signed with the ICL key:
https://github.com/thesofproject/sof/issues/4916

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-11-21 22:38:23 +00:00
Marc Herbert e14ec39124 sof_ri_info: change "Other" to "Unknown key"
Now grepping for 'key' always works.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-11-21 22:38:23 +00:00
Ranjani Sridharan b66010f0fa topology2: Add the passthrough and mixin-mixout topologies for cavs HDA
Add the passthrough and mixin-mixout versions for HDA topologies.

They can be built as follows:

For HDMI only passthrough topology:
alsatplg -p -c cavs-passthrough-hdmi.conf -o cavs-passthrough-hdmi.tplg

For passthrough HDA topology:
alsatplg -D HDA_CONFIG="passthrough" -p -c cavs-passthrough-hdmi.conf
-o cavs-passthrough-hda.tplg

For mixin-mixout HDA topology
alsatplg -D HDA_CONFIG="mix" -p -c cavs-passthrough-hdmi.conf
-o cavs-mixin-mixout-hda.tplg

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan 13dc7812eb topology2: mixin/mixout: Add cpc attribute
And set default values.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan c3fdf30364 topology2: pipelines: Add the other mixin/mixout pipelines
Add all the missing mixin/mixout pipelines.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan d69ab6e6f1 topology2: mixin-playback: Add the copier->mixin route
Add the route from the host copier to the mixin widget in the class
definition so it doesnt have to set in the top-level topology everytime.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan 5a0d1df4a6 topology: copier: change default cpc
To match the cavs production topology value. It can be overwritten
in the kernel.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan cfc467c242 topology2: tokens: fix tuple for CPC copier token
Align with the kernel definition.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan 6ed84e4a16 topology2: cavs-gain-hda: Add option to build HDMI only topology
Add an argument to specify if we want to build the HDMI only topology.
To build the HDMI only topology, use the following command:

alsatplg -p -c cavs-gain-hdmi.conf -o cavs-gain-hdmi.tplg

To build the HDA topology use the following command:

alsatplg -D HDA_CONFIG="gain" -p -c cavs-gain-hdami.conf -o
cavs-gain-hda.tplg

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan 1c4fb7ce64 topology2: cavs-gain-hda: fix pipelines and PCM instances
Make them unique and incremental.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan 0d542ae87e topology2: cavs-gain-hda: clean up routes
Add the host<->gain route in the gain-playback/gain-capture
pipeline and keep only the top-level routes in the top-level topology
file.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan abce00d224 topology2: cavs-gain-hda: clean up includes
Add search directories and trim the includes.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Ranjani Sridharan 428c654f62 topology2: cavs-gain-hda: fix routes
Fix the typos in the routes to fix the DAPM graphs.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-19 11:20:50 +00:00
Guennadi Liakhovetski 9a6569d48c topology: nocodec: fix graph drawing
No functional change, only fix an ASCII-art topology representation
in a comment.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2021-11-17 13:51:01 +00:00
Keyon Jie 0ced257b36 topology1: sof-tgl-nocodec: change to support multi-core
Add multi-core coverage for tgl-nocodec platforms, the initial DSP core
assignment as below:

DMIC48k: Core 1
SSP0: Core 2
SSP1: Core 3
DMIC16k, SSP2: Core0

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2021-11-17 21:48:59 +08:00
Keyon Jie 8434f81d94 topology1: sof-adl-nocodec: change to support multi-core
Add multi-core coverage for adl-nocodec platforms, the initial DSP core
assignment as below:

DMIC48k: Core 1
SSP0: Core 2
SSP1: Core 3
DMIC16k, SSP2: Core0

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2021-11-17 21:48:59 +08:00
Mac Chiang b29636b936 topology: add nau8825 headphone variant boards support on ADL
sof-adl-nau8825.tplg:
    headphone connects SSP0 link.
    bluetooth offload uses SSP2 link.

With nau8825 headphone, enabled MCLK/BCLK early start.
Add smart amp and dumb speakers support separately.

sof-adl-max98373-nau8825.tplg:
sof-adl-max98360a-nau8825.tplg:
    headphone connects SSP0 link.
    speakers connects SSP1 link.
    bluetooth offload uses SSP2 link.

sof-adl-rt1019-nau8825.tplg:
    headphone connects SSP0 link.
    speakers connects SSP2 link.

Co-developed-by: David Lin <CTLIN0@nuvoton.com>
Signed-off-by: David Lin <CTLIN0@nuvoton.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
2021-11-15 22:26:18 +00:00
Libin Yang 7835669c92 topology2: cavs-nocodec: fix dmic compile failure
The current topology2 requires to set id in PCM.pcm and to set index in Pipeline.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2021-11-15 17:12:52 +00:00
Jairaj Arava c5c0c1701e topology: sof-tgl-max98373-rt5682: add flag for Bluetooth audio offload
This patch adds flag to choose Bluetooth audio offload support

Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
2021-11-12 16:58:10 +00:00
Yong Zhi 4f54914ceb topology2: add dmic pipeline to nocodec topology
With dmic definition already in, add pipeline to make use of the pcm.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2021-11-12 15:48:53 +00:00
Jaska Uimonen ba86bb4cab topology2: add io_clk attribute to dmic and ssp
Add io_clk attribute to dmic and ssp dai class. This is the platform
dependent clock that needs to variated in upper level topology files.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2021-11-12 12:59:29 +00:00
Jaska Uimonen 4a5f6a8795 topology2: add nhlt flag to manifest
Add boolean nhlt attribute to manifest class. This attribute will tell
alsatplg to generate nhlt blob from dai definitions and add it into
the manifesst itself.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2021-11-12 12:59:29 +00:00
Ranjani Sridharan 5048eb74b1 topology2: pcm/pipeline: add instance attribute
Add an instance attribute for all pipeline class definitions and the pcm
class. This will be used to instantiate unique PCM/pipeline instances.

The ID attribute for PCM and the index attribute for pipeline may be the
same as the instance attribute in most cases. But in some cases, the
pipeline ID or the PCM index will be passed from the CMakeLists.txt file
as pre-processor definitions and they will be replaced as needed.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-11 16:44:38 +00:00
John Zimmermann 17d0e2d5ab logger: use more specific format specifiers
Signed-off-by: John Zimmermann <me@johnnynator.dev>
2021-11-11 13:24:33 +00:00
Bard Liao fa6365b0ad Topology2: tokens: add token for low power mode
Adding low power mode token

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2021-11-11 13:21:40 +00:00
Paul Olaru 6cc5ba98ed tools: ctl: CMakeLists: Add -Wall and -Werror flags
These flags are required to prevent unwanted bugs in the ctl tool. They
have been used to detect an undefined behaviour instance which occurred
due to lack of a return value in a non-void function.

Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
2021-11-10 08:34:53 +02:00
Paul Olaru e3ac593f86 tools: ctl: Fix various errors
Most of the errors are unused variables, plus an unused label. Those are
benign.

One of the errors was the following:

/work/repos/sof/tools/ctl/ctl.c: In function ‘ctl_set_get’:
/work/repos/sof/tools/ctl/ctl.c:497:1: error: control reaches end of
non-void function [-Werror=return-type]
  497 | }
      | ^

This error had caused an undefined-behaviour-driven bug internally (an
error being displayed with a return code of 0, when it shouldn't have
been possible to display that message if the return code was 0). At line
614 of the old code, the message "Error: could not Set control, ret:0"
was displayed.

The errors only show up when you add -Wall -Werror to the compile
options of ctl, which I will do in the next commit.

Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
2021-11-10 08:34:53 +02:00
Kai Vehmanen 601cbc061d topology1: sof-cavs-nocodec: fix documentation
Fix the documentation to match actual topology definition. The comments
did not include addition of mixers nor the capture PCMs. Also many
comments reflect a fixed core id that is no longer accurate.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2021-11-08 13:29:13 +00:00
Bartosz Kokoszko 15c9335962 scheduler: allow scheduler_free functions to disable only irqs
This commit:
- adds flags argument into scheduler_free function pointer in
  scheduler_ops struct;
- adds SOF_SCHEDULER_FREE_IRQ_ONLY flag, which indicates to disable
  only interrupts in scheduler_free() functions.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
2021-11-08 13:25:44 +00:00
Jaska Uimonen ff63219de2 topology2: add mic extension and vendor mic config classes
Add two classes to be used with dmic for nhlt conformance. Mic extension
includes snr and sensitivity values. Mic vendor config has multiple
values for defining the mic array geometry and mic positions.

Do not add tokens as these values are used currently only with nhlt
generation. Defining these classes in dmic is optional.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2021-11-08 12:18:06 +00:00
Seppo Ingalsuo 3eeda96c0c Test: Add cmocka test case for IIR equalizer
This patch adds for the IIR equalized component a test with
comparison 100 ms of Octave generated output to output of the
component. The test signal is a full scale chirp signal. The
IIR response is both amplifying and attenuating to trigger as
much as possible issues with internal overflows.

All test data was generated by Octave script
cmocka_data_eq_iir.m. Re-run of script updates the used header
files the in cmocka tests directory.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-11-08 12:14:43 +00:00
Yong Zhi bb847b7639 topology2: nocodec: remove index initialization from DMIC instance
The DMIC DAI does not have index attribute, so remove it.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2021-11-08 12:06:25 +00:00
Ranjani Sridharan ef5358474a topology2: cavs: gain-playback/capture: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan 328e1650d8 topology2: cavs: mixin-playback: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan ee2cb09ba6 topology2: cavs: mixout-gain-playback: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan 7fc1b7159b topology2: cavs: passthrough-capture: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan f30cb4b1a3 topology2: cavs: passthrough-playback: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan dbc3ba5e3e topology2: eq-iir-volume-capture: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan f21a25abe5 topology2: Add class definition for EQIIR
Add the class definition for EQIIR widget.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan 06684c9308 topology2: passthrough-capture: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan 47c6dba606 topology2: volume-capture: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan f29234fba8 topology2: volume-demux-playback: Add all includes
Include all dependencies to be able to build the conf file individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan da6ea477da topology2: Add class definition for muxdemux
Add the class definition for the MUX/DEMUX process type widget.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan e98847bf6e topology2: volume-playback: Add all includes
Include add dependencies so that this conf file can be built
individually.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan 8243b51e8d topology2: volume: include mixer.conf
Include mixer.conf so the conf can be built without errors.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan b30d6b7c47 topology2: remove virtual_widget
It is a duplicate of virtual.conf

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Ranjani Sridharan 5c7e82e944 topology2: always override array elems
Always use "!" with array definitions so that items do not get
duplicated when arrays are merged when the conf file is included
multiple times.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2021-11-03 21:44:19 +00:00
Mark Barton ff3dec2f41 audio: codec_adapter: Add DTS Codec to mt8195 topology
The DTS Codec can be conditionally added to the sof-mt8195-mt6359-rt1019-rt5682 topology on those pipelines intended for headphone and speaker output.

To enable processing and configure settings, additional bytes must be sent to the control via ALSA TLV. The intention is that endusers will use ALSA UCM to achieve this.

Signed-off-by: Mark Barton <mark.barton@xperi.com>
2021-11-02 14:06:49 -07:00
Daniel Baluta b0bb21dc0e topology1: Fix codec adapter pipeline
Commit 771db86de2 ("topology1: codec_adapter: Add 'codec_adapter' pipeline configuration")
in an attempt to support PCM + compr mixer scenarios broke simple codec adapter
pipelines.

So, similar with PCM case (see sof/pipe-host-volume-playback.m4 vs
sof/pipe-volume-playback.m4) we introduce two separate configuration
files.

One for Passthrough codec-adapter pipeline and one standalone Host +
codec-adapter pipeline that can be independently scheduled in a scenario
with a mixer for example.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2021-10-29 22:38:30 +01:00
Daniel Baluta 5ef33e6310 topology: Add simple host codec adapter playback pipeline
As opposed to pipe-codec-adapter-playback this has its own scheduling
task and can be used in more complex scenarios.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2021-10-29 22:38:30 +01:00
Gongjun Song d54c0385cf topology1: Add sof-adl-rt711-l2-rt1316-l01-rt714-l3
Support SKU 0B29 product, the audio hardware configuration is rt711
on link2, two rt1316s on link0 and link1, rt714 on link3.

Signed-off-by: Gongjun Song <gongjun.song@intel.com>
2021-10-29 15:01:05 +08:00
Gongjun Song d40ab8c853 topology1: Add sof-adl-rt1316-l2-mono-rt714-l3
Support SKU 0B13 product, the audio hardware configuration is rt1316
on link2 and rt714 on link3.

Signed-off-by: Gongjun Song <gongjun.song@intel.com>
2021-10-29 15:01:05 +08:00