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>
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
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
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>
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>
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>
pipe-codec-adapter-capture.m4 is implemented as a common pipeline
module of a capture codec w/ Codec Adapter API.
For codec developers, a upper-layer tplg file should be provided for
the specified codec with the information of control bytes, schedule
core, and byte-control names.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
pipe-codec-adapter-playback.m4 is implemented as a common pipeline
module of a playback codec w/ Codec Adapter API.
For codec developers, a upper-layer tplg file should be provided for
the specified codec with the information of control bytes, schedule
core, and byte-control names.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
To support exist function - fullfile() path addition is to prevent Matlab (differently than Octave)
to give false positive with some other directory location with it's search path
Added correction to isempty.
Signed-off-by: ShriramShastry <malladi.sastry@intel.com>
For sof-tgl.ri and sof-tgl-h.ri the old match function will
always return tgl layout. Add suffix in match to make sure
we always match the right name.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
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>
To align with maxim 98373 12.288MHz bclk requirement, change rt5682 to
32bit with BCLK 3.072MHz.
To follow the rule that the MCLK should use the same clock source with
BCLK, change the mclk to 24.576MHz.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
We need this to cross-compile sof-logger for arm64.
Steps:
* download and install cross-compiler
* (e.g on Ubuntu: sudo apt-get install gcc-aarch64-linux-gnu)
* mkdir tools/build/
* cd tools/build/
* cmake .. -DCMAKE_TOOLCHAIN_FILE=../scripts//cross-arch64.cmake
* make sof-logger
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
There is one extra level of identation for all the
code inside format_file_name function.
Remove that to enhance readability.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
The earlier length 250 ms is quite long and makes very short UI
tones etc. quite silent. The 20 ms long ramp with zero crossings
detect is used in rest of this topology for playback so this is
changed to similar.
The topologies those use the changed macro are:
sof-icl-rt711-rt1308-rt715-hdmi.m4, sof-apl-demux-pcm512x.m4,
sof-tgl-max98357a-rt5682.m4, sof-cml-demux-rt5682.m4, and
sof-tgl-nocodec-ci.m4.
Fixes: #3707
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This commit adds the tools to generate the control bytes for the
multiband_drc component. To generate the control bytes, run the
example_multiband_drc.m script.
To tweak the parameters modify the values in example_multiband_drc.m
and run it.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
This commit adds the topology files for the multiband_drc component.
The control bytes are generated by the tools in tune/multiband_drc.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
This patch increases buffer periods of all components on a
post processing pipeline. This is needed because post processing
may introduce deep buffering and hence needs more space in its
buffers.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
Currently the mux/demux uuid setting doesn't work and uuid is always set
to "demux". Fix this by quoting the ifelse in 1 line.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
This fix adds initialization and declaration of variable f_single
to avoid a previously overlooked error when accessing it in the
end of script. It produces the plot but with a warning print.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add m4 macros to generate enumerated control. Usage is similar to mixer
and bytes control except enumerated values are specified using separate
text section.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
There are simply a dump of a series of messages from the kernel of
messages sent to the firmware. This will be used by the fuzzer to infer
inputs to tests against the the firmware.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Trace is enabled by default for library builds, but the module is not
included. This breaks the ipc handler. Therefore lets include it and
give it a mocked section of memory to write to.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
The fuzzer is makings its way into a lot places where we assume hw
configs exist. Therefore a refactor is needed make it easy to fill in
the missing configs.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Both the playback and capture PCMs should be restricted to the
corresponding SMART_PB_CH_NUM and SMART_REF_CH_NUM, as running them with
other channel numbers will not work correctly.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
The set of figure property in figure() command is not supported
in Matlab. The separate set() property works for both Octave and
Matlab.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
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>
Speaker amp's SSP tdm & clock is configured for 32-bit, accordingly
update DAI configuration to s32_le.
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
To allow proper display of suppressed message info traces, %pQ specifier
was chosen to decode pointers to log entries.
Helper function asprintf_entry_text() is used to handle the log entry
text for display.
Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
This adds memory capabilities macros for different buffer
types on i.MX8.
Once we started to enable more complex pipelines
on i.MX8 we found out that we need these caps defined.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This patch adds the the Matlab script dmic_init() that simulates
initialization of the Intel PDM digital microphones decimation
block. The tool computes the needed FIR filters and exports
them as C header files. The script dmic_batch computes all the
currently used decimation settings.
The generated header files from subdirectory include need to be
manually copied to src/include/sof/audio/coefficients/pdm_decim/
and the header file pdm_decim_table.h edited manually if the
header file names were changed due to different filter characteristic
(band frequencies, stop-band attenuation).
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Previously sof-icl-nocodec topology only enabled SSP0. To effectively test
more test cases, this enables more playback and capture pipelines with
SSP1, SSP2 and DMIC3.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Replaced the config coefficient "attack_frames" by "one_over_attack_frames"
(=1/attack_frames). It is because only "one_over_attack_frames" is used by
firmware and it could save a division operand by the replacement.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
This patch extends codec processing topology with C_CONTROLS
which comprises of SETUP configuration for both SoF component
and CADENCE codec.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This patch adds a processing topology which uses external
codec for processing. This topology comprises of:
HOST -> CODEC_ADAPTER -> DAI
So the only processing component is codec_adapter which can be
configured to work with any codec.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This fixes compilation with:
CFLAGS=-fno-common ./scripts/rebuild-testbench.sh
sof/tools/testbench/topology.c:24: multiple definition of `lib_table';
sof/tools/testbench/testbench.c:39: first defined here
This was detected by Gentoo 10 which uses -fno-common by default, thanks
Guennadi for the report and investigation.
Commit 03067c6c77 ("host: set up shared library table") introduced a
strange "lib_table" symbol that was apparently meant to be global but
was not really because of some confusion between arrays and pointers and
needed to be passed around and "initialized to itself" (!) at run time
as seen in the sample trace below:
topology.c
struct shared_lib_table *lib_table;
parse_topology(..., library_table,...)
{
printf("DEBUG1 ----- %p, %p, %p\n",
&lib_table, lib_table, library_table);
lib_table = library_table;
printf("DEBUG2 ----- %p, %p, %p\n",
&lib_table, lib_table, library_table);
}
Log:
DEBUG1 ----- 0x56298c954040, 0x56298c951183, 0x56298c954040
DEBUG2 ----- 0x56298c954040, 0x56298c954040, 0x56298c954040
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Used the similar parameter set as the DRC kernel in CRAS to generate ctrl
bytes for DRC component.
Plotted input-output dB response curve with the specific parameter set.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
The bf_defaults() now sets the default directory locations for
for bf_export() so it does not need to be set in every script.
Also the defaults for input channels and output mixing are set to
that in typical design they do not need to be set.
The default distance for look direction is set to 5.0m so it is better
guaranteed in far field for even relatively large arrays. The far field
assumes planar sound waves. The design equations do not fully support
near field with spherical waves.
The FFT length is changed to 1024 to enable design of longer filter bank
filters. There's no compromise in performance for for e.g. length 64.
The incorrect use of mic_n (number of microphones) is replaced by
num_filters. It's possible define beamformer that ignores some mic
channels so these are not the same.
The automatic systematic design file names are now created for all array
types, not just line.
The script is made more flexible to run without need to export data and
clutter just to quickly interactively check from plots what kind of
beam pattern and other characteristic some array, e.g. circular with
some radius and mic count gives.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The common array identifier string is brought up for easier edit to
test other array geometries than this default. A typo about 16 kHz
is fixed, the test runs at 48 kHz testbench default rate.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>