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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
No functional change, only fix an ASCII-art topology representation
in a comment.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>