These headers include alsa/sound/asoc.h and some versions of the
headers have this conditional include of types.h:
#if defined(__linux__)
#include <linux/types.h>
#endif
To ensure types __le64, __le32, __le16, __u8 are defined explicitly
include types.h becore including asoc.h.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
DAI copiers now support multiple sinks. So revert the temporary
workaround in the cavs-nocodec topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
When the DMA buffer is reallocated pass the alignment argument to honor
the buffer address alignment that was used originally. Update the
buffer_set_size() to pass the requested alignment and all its users.
This is particularly needed in the case of host and DAI DMA buffers that
query the buffer address alignment from the DMA driver while allocating
the DMA buffers.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add the host and IO gateway pipelines when the passthrough option is
chosen and connect them.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
In preparation for adding copier-copier pipeline, make the processing
pipelines conditional. There is no change in functionality or
definitions. This is purely to make it easier to exclude the
pipelines/pcms/routes from the final topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add the host and io gateway pipelines when the passthrough option is
chosen and connect them directly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
In preparation for generating simple copier->copier pipelines, add an
option to make the processing pipelines conditional. There is no change
in functionality or definitions. This is purely to make it easier to
exclude these pipelines/pcms/routes from the final topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch cleans up SRC component. There is no need to keep
IPC3 version build with legacy component interface. The patch
mainly removes code under CONFIG_IPC_MAJOR_3 and makes some
functions available for all builds from CONFIG_IPC_MAJOR_4.
The IPC4 capture issue is fixed by using the src_init()
IPC rates for source and sink rate initialize. It needs a
similar kernel update to always set those values. In practical
topologies in prepare the buffers may not contain the correct
stream information because the order of host copier and
dai copier pipeline prepare can be host first where capture
SRC is usually placed.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
create another topology to test multicore since Currently we have done
too much work in cavs-nocodec and CI test will be failed for main branch
is not ready for multicore feature.
Signed-off-by: Rander Wang <rander.wang@intel.com>
This patch adds export format for header file that alsa-utils
uses. Automatic generation is much more convenient than hand
editing when there is update need.
The patch also contains some cleanup of unused code and small
code improvement. There are no changes to exported coefficients
values.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
We assume sdw jack is always there in a sdw topology. This commit
makes it be optional to deal with the sdw amp only case.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Add a module copier between the DAI copier and gain in preparation for
optimizing the single endpoint DAI copiers. This optimization will
temporarily make multiple sinks unsupported with DAI copiers. This
feature will be re-introduced in a follow up PR and the module copier
will be removed then.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
It would be better to make these dependedent on NUM_DMICS. Something to
improve in a follow up PR.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
No script changes, just unify shell script style to be
with indents with spaces instead of both tabs and spaces.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds to process_test() sixth argument to run the tests
with xt-run environment with argument set to 'xt-run' or
'xt-run --turbo'.
The set and print of LD_LIBRARY_PATH is no more needed with static
testbench version.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds to rebuild-testbench option -x <platform> that
can be used to build testbench for xt-run execution. The enhanced
script reuses native testbench build but with CC, LD, LDFLAGS,
etc. defines to use the xt-xcc compiler for build.
Currently TGL (HiFi3) is the only supported platform. More will
be added later.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch avoids the build errors. Most of the issues are
from different types for formatted printing in gcc vs. xt-xcc.
The "__attribute__ ((fallthrough));" is not supported in xt-xcc.
The xtensa C library does not have clock_gettime() so it is
only left out from build. The cycles count and MCPS is printed
instead.
The include of dlfcn.h is not needed since the testbench no
more has dynamic libraries.
Structs within structs need to be initialized to zero in xt-xcc
with multiple brackets.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Generate MIXER topology file for i.MX8 and i.MX8MP with wm8962 codec
based on sof-imx8-wm8960-mixer.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Combine mixer topology files for i.MX8MP and i.MX8 using different
variables like RATE, SAI_INDEX, CODEC.
Based on CODEC and SAI_INDEX use the proper DAI_CONFIG or STREAM_NAME.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Combine base topology files for i.MX8MP and i.MX8 using different
variables like RATE, SAI_INDEX, CODEC.
Based on CODEC and SAI_INDEX use the proper DAI_CONFIG or STREAM_NAME.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Generate SRC topology file for i.MX8 and i.MX8MP with wm8962 codec
based on sof-imx8-src-wm8960.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Combine SRC topology files for i.MX8MP and i.MX8 using different
variables like RATE, SAI_INDEX, CODEC.
Based on CODEC use the proper DAI_CONFIG or STREAM_NAME.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
First, combine compress topology file for i.MX8 (i.MX8QM and i.MX8QXP)
with different codecs, stream name, rate by using CODEC and RATE variables.
Based on CODEC use the proper DAI_CONFIG.
Using the above variables, add new compress topology file for
i.MX8 with wm8962 codec.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
First, combine compress topology file for i.MX8MP with different codecs,
stream name, rate by using CODEC and RATE variables.
Based on CODEC use the proper DAI_CONFIG.
Using the above variables, add new compress topology file for
i.MX8MP with wm8962 codec.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
This patch avoids with development topology sof-hda-src-generic.tplg
the playback start failure and error seen in trace
"buffer: buffer_alloc(): new size = 0 is invalid".
The kernel selects in case of multiple output formats defined the
format that matches the input. It then caused the obs to become zero.
When the SRC is used in the mixin-based playback pipeline, its output
format is limited to 32-bits format only. So replace the multiple
output formats with a single 48K, 2ch 32-bit format.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This topology could be used by MTL SDW RVP with 3-in-1
SDCA codec board, or other hardware configuration with
the same codec layout:
SDW0: RT711 Headphone
SDW1: RT714 DMIC
SDW2: RT1316 Speaker
SDW3: RT1316 Speaker
Signed-off-by: Chao Song <chao.song@linux.intel.com>
In component.h the eq_iir and mixer have still the old component
API function prototypes. They can be removed as not needed. These
components do not support legacy mode.
Similar update is done to testbench common_test.h. The function
prototypes there are duplicate since they are now available in
component.h.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Calculation of SOF_TKN_BUF_SIZE in COMP_PERIOD_FRAMES() macro
led to incorrect results with large period size values.
For example at 48000Hz sampling rate, period size larger than
44739us would be incorrectly calculated.
This happens as m4 eval does arithmetic in 32bit signed values
and multiplication of period size and sampling rate can easily
exceed 2^31.
Fix the issue by splitting the arithmetic in steps that
fit available value range.
Link: https://github.com/thesofproject/sof/issues/7476
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
These were added for use with IPC3 but since topology2 is not targeted
for IPC3, there's no need to keep them anymore.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This has been replaced by num_input_audio_formats and
num_output_audio_formats. So remove the attribute from all components
and mark the token ID as deprecated.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
NUM_SDW_AMPS refers to how many sdw links are used by the amp pcm.
Rename to NUM_SDW_AMP_LINKS for less confusing.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
The 24-bit formats defined in topologies will never be used because the
mixin/mixout only support 32-bit format. So remove these audio formats
from the component and pipelines audio format definitions.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Separate the pin index token ID for input/output pin index to avoid
collisions between the two and incorrect pin index parsing in the
kernel.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
With 208c2049f ("topology2: deep buffer: use 32 bits to align with
other pipeline"), we can remove this override now.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Introduce a new class for module-to-module copiers and make node_type
mandatory for the copier class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Combine topology files for i.MX8MP with different codecs and rate, by
using CODEC and RATE variables.
Based on CODEC use the proper DAI_CONFIG.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Add new topology file for i.MX8QM with wm8962 codec.
While here, use CODEC variable to differentiate between wm8960
and wm8962.
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
When GOOGLE_RTC_AUDIO is applied, Speaker and DMIC pipeline tasks are
scheduled in the same domain. The AEC function in GOOGLE_RTC_AUDIO
has the hard requirement for input sample synchronization between DMIC
input and Echo reference (sourced from Speaker).
At present, both pipelines are pri-0 so the task order in schedule
list depends on which pipeline starts first. This commit sets DMIC as
pri-1 when GOOGLE_RTC_AUDIO is applied to make sure that DMIC task
will be always put after Speaker task, which guarantees the
requirement for input sample synchronization.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Move and rename the hw_config class to
platform/intel/hw_config_cardinal_clk.conf.
This hw_config is specific to Intel SSP DAI that use the cardinal clock
for the mclk frequency.
Ideally, this class should have immutable mclk_frequency and link clock
source. But because the alsatplg compiler expects the name of the hw
config class to be "hw_config" without any extensions, it is left as
modifiable for now. Once the topology compiler is modified, this will be
made immutable in a follow up PR.
Also, introduce a new hw_config_simple.conf file that contains the
hw_config definition for the HDA/DMIC/SDW type DAIs with only the ID and
name attributes.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add the SSP blob version and set it based on the platform.
Co-developed-by: Jaska Uimonen <jaska.uimonen@intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This change sets USE_CHAIN_DMA=true for sof-hda-generic-2ch
and sof-hda-generic-4ch mtl targets in sof-ace-tplg directory.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
It is wrong to set a default value when creating widgets objects within
pipelines and these must be set at the top-level based on the DAI type.
So remove the default value in be-dai.conf and set the node_type
whenever the pipeline is initialized.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
All it contains is a IO gateway copier and a pipeline widget. So rename
it accordingly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
There's been a recent kernel change to compute the DMA buffer size using
the ibs/obs. So this attribute no longer needs to be set in the
topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
MTL nocodec devices have been configured with DMIC 4 channels.
The topology should be aligned with it.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Strip out all the threading and cache debug to become a pure xt-run
application. This removes a lot of code, including in the host LL
scheduler.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Abstract the topology APIs to provide support for other IPC ABIs and
further simplify the codebase. Makse sure all public APIs have the tplg
prefix and make sure private APIs are in the correct places.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
There is pinmux conflict between SSP1 and DMIC
on MTL RVP, add a new nocodec topology target
for MTL, on which only SSP0 and SSP2 are enabled.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
This patch adds simplified linux/types.h into testbench headers
to enable include of ALSA asoc.h to build without other difficult
kernel headers content.
The CMakeLists.txt files are updated to make a build time copy of
asoc.h to subdirectory include of the build directories. The new
directory is added to headers path.
This change avoids build fail with xcc toolchain that can't use the
gcc toolchain headers from the system where the ALSA headers are
located.
Suggested-by: Marc Herbert <marc.herbert@intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Pointer arithmetic with void pointer is not allowed. Functions
get_token_uint32_t() and get_token_comp_format() are updated
to handle correctly the bytes offset.
Functions get_token_dai_type() and get_token_process_type() are
updated to similar pointer arithmetic style as previous.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
For some reason the input valid bit depth was 16. But the output
valid bit depth of the previous widget is 32. Fix it to 32 now.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
The xt-xcc compiler RG-2017.8 does not support -Wimplicit-fallthrough
option. Add to CMakeLists.txt files check for the option and use it if
it is supported.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Reduce complexity by parsing all topology objects in memory rather than
by seeking file, reading into allocated memory and then freeing memory.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The original fuzzer has been deprecated for some time now. Remove it.
All fuzzing now done by OSS-fuzz
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The CMakeList.txt files in tools/topology/ have always confused two
different things:
- the list of .tplg files to generate, and
- the CMake logic used to invoke alsatplg and generate them.
Separate the two at last thanks a dead-simple `include()` command. If I
had knew it was so easy I would have done this much sooner.
The `tools/build_tools/` directory is identical before versus after this
commit.
This will make it much faster to identify what actually changes in
future commits and pull requests. This will also make CODEOWNERS
smarter and reduce Github notification noise.
Don't do it for topology1 to minimize churn and git disruption in
backports. Topology1 is not very active any more whereas topology2 has
never been released yet.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Decompose the split in the next commit into two steps to maximize git's
similarity index and facilitate git blame, cherry-pick/rebase, merge,
etc.
The new files are unused in this first commit so git bisect is not
affected.
Changing one-character in the source files also helps: compare git show
-C with git show -C -C. It's also a good clue for the reader when not
using -C.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The simple {0} is not accepted by xt-xcc compiler. It gives
"warning: missing braces around initializer".
Adding sufficient number of braces to match the struct definition
fixes the build.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add a second level of mixin-mixout mixing and a PCM to the nocodec
topology.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Remove all support for cAVS 2.0 platformsm including Ice Lake and
Jasper Lake, they aren't supported any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This patch changes the DAI passthrough pipeline in cavs-sdw.conf
based topologies to similar pipeline but with IIR high-pass. The
cut-off frequency is 40 Hz and gain is 0 dB. The same high-pass
is used for HDA codec.
The change suppresses most of DC signal pop noise from the
beginning of capture or after press of headset button.
The impacted topologies from current build are:
cavs-sdw, mtl-sdw, sof-tgl-rt711-rt1316-rt714,
sof-adl-rt711-l0-rt1316-l12-rt714-l3,
sof-tgl-rt715-rt711-rt1308-mono, sof-tgl-rt711-rt1308-4ch,
sof-adl-rt711-4ch, sof-mtl-rt711-4ch
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Adds kcps attribute to pipeline class with 0 default value.
The default can be overrided with KCPS_PIPELINE_DEFAULT define.
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
Remove all support for cAVS 1.8 platformsm including Cannon Lake,
Comet Lake, Whiskey Lake and Coffee Lake, they aren't supported
any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This patch replaces in DMIC0 capture the gain.N.1 component with IIR
high-pass. The gain has been a placeholder
dai-copier-gain-module-copier-capture.conf while the EQ component has
not been available. The pipeline is replaced by
otherwise similar dai-copier-eqiir-module-copier-capture.conf.
The dmic-default.conf sets the default IIR response to 40 Hz
high-pass with 0 dB gain. The topologies will get only the high-pass
filter but no amplification. The default is changed in
sof-hda-generic.conf to 20 dB gain to address the too silent capture
because these topologies for generic Linux end users do not contain
any other capture enhancements.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch includes to sof-hda-generic.conf the new
highpass-capture-be.conf as passthrough-capture-be.conf replacement
that adds to DAI copier pipeline the IIR high-pass filter. The
response is hard coded to 0 dB amplification and 40 Hz cut-off.
The analog microphone headsets creates a strong DC input when the bias
voltage settles. It can be even full-scale and sound very loud. The
high-pass filter suppresses such input signal.
Fixes#7116
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Remove all support for cAVS 1.5 platformsm including Apollo Lake,
Sky Lake, Kaby Lake, Broxton and Gemini Lake, they aren't supported
any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The previous value 10 is only 0.1 us that disables the gain
ramp totally and causes harsh sounding volume transitions.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The purpose of this commit is to separate XTOS-specific code
from the Zephyr-specific code found in sof/schedule/task.h.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The purpose of this commit is to separate the XTOS-specifc
code from the Zephyr-specifc code found in sof/sof.h.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Not all amplifiers support feedback. We should not add feedback support
on topology to shch amplifiers.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
index
We use the "pcm id * 10 + N" formula where N is from 0 to 9 to assign
pipeline and route id in f0a010052b ("topology2: cavs-sdw: group route
and pipeline index"). Now apply to ALH dai index.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
The known issues with the pipeline-free chain DMA implementation has
now been solved, so we can re-enable chain DMA usage.
This reverts commit c3807ae4a7.
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
Where there more than 1 object of the same type defined at the same node
level, use arrays to define the object. For example, we can define 2
routes as follows:
Object.Base.route [
{
source "smart_amp.2.1"
sink "copier.SSP.2.1"
}
{
source "mixin.1.1"
sink "mixout.2.1"
}
]
This allows us to merge 2 arrays from different conf files without
needing to make their instance ID's unique.
Assume we add another route in a separate conf file like below:
Object.Base.route [
{
source "gain.5.1"
sink "copier.5.1"
}
]
The alsatplg compiler will merge them as follows resulting in 3 route
objects.
Object.Base.route [
{
source "smart_amp.2.1"
sink "copier.SSP.2.1"
}
{
source "mixin.1.1"
sink "mixout.2.1"
}
{
source "gain.5.1"
sink "copier.5.1"
}
]
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch adds to development topologies a topology
sof-hda-src-generic.tplg. It is similar to sof-hda-generic but adds
to first playback PCM pipeline a SRC component after gain. The
pipeline supports playback of S32_LE with 8 - 192 kHz rates.
The cavs/src.conf is merged to src.conf, and the SRC format
include files are brought up from cavs directory. The topology
cavs-sdw-src-gain-mixin.tplg related .conf files are updated
for common location. The missing rate_out attribute is added.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Remove all support for Broadwell and Haswell platforms, they
aren't supported any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
As the copier can do format conversions, and many pipeline components
can do conversions as well, it is important for the topology to define a
single format to use in the "dai_out" copier. This ensures deterministic
behaviour with the driver.
Implement this behaviour by switching topologies to use the
passthrough-capture-be pipeline as template for the backend capture
pipelines.
The previously used passthrough-be template is problematic as
the base class already defines multiple audio formats, with multiple
different sample formats. The new passthrough-capture-be only defines
one sample format by default and is a better starting point as a base
class.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Add a separate template for capture backend pipelines. The
passthrough-be pipeline has been used as template for both playback and
capture, but we want to provide different defaults especially for the
audio formats in capture case.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Use mixout-gain-smart-amp-dai-copier-playback pipeline
for SSP0 DAI playback.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch adds the widget class for smart_amp module
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The micsel will need to use the base config extension and the init
config type will need to be set in the manifest.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
No more need for hard-coded blob header, sof-ctl provides
an up-to-date header so better to use it.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
For MTL chromebook, SSP 1 is used for BT offload with
cavs-rt5682 configuration
Co-developed-by: Jaska Uimonen <jaska.uimonen@intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Co-developed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
Add pipelines for iir and fir eq as EFX (endpoint effect) component in
hda. Add HDA_CONFIG "efx" to compile efx versions of hda_generic
pipelines.
Add define EFX_IIR_PARAMS and EFX_FIR_PARAMS to define different iir and
fir parameters from separate conf files during compile time (default
"passthrough").
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Adds new topology build based on sof-adl-max98360a-rt5682-2way
with appending arg `-DDMIC_DAI_LINK_16k_PDM=STEREO_PDM1` for existing
ADL-P projects.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
As WoV may be used on HDA platforms, SDW platforms, as well as
nocodec platforms. Let's use a more safe pipeline ID for WoV.
Signed-off-by: Libin Yang <libin.yang@intel.com>
Now the abi header is changed and the config data is send through
large_config ipc message instead of init_instance ipc message.
Update the config data accordingly.
Signed-off-by: Libin Yang <libin.yang@intel.com>
Changes all routes of form:
Object.Base {
route.1 {
source copier.host..1
sink gain..1
}
route.2 {
source gain..1
sink mixin..1
}
}
to
Object.Base {
route.1 {
source copier.host.$index.1
sink gain.$index.1
}
route.2 {
source gain.$index.1
sink mixin.$index.1
}
}
E.g. change ".." notation where the route index is expanded in between
the dots to explicit reference to the route index.
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
For IPC4 we are re-using the sof_abi_hdr to encapsulate the blob from/to
user space with minor deviation from IPC3:
- ABI magic is different
- the type is used as param_id in IPC4 (it carries the same functionality)
The IPC type can be specified with -i and defaults to 3 (IPC3).
-p is added as a new option for param_id, but -t and -p will do the same
thing.
After reading a blob, print a message for unexpected ABI magic number, but
do not block the execution.
To generate a header for 100 bytes payload:
For IPC3:
sof-ctl -g 100 -t 2
sof-ctl -i 3 -g 100 -t 2
For IPC4:
sof-ctl -i 4 -g 100 -p 2
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Remove all support for Baytrail and Cherrytrail platforms, they
aren't supported on the "main" branch any more. To build SOF for them
use the "table-v2.2" branch.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Now deep buffer uses S24_LE but other pipelines use S32_LE internal format
. Chrome team found a bug that deep buffer can't work well with I2S codec
since fw only support S32_LE for I2S now.
This patch will use S32_LE to align with current requirement
Signed-off-by: Rander Wang <rander.wang@intel.com>
This patch adds a number of generic or effect type of blobs
to enable use of equalizers in topology2.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Use of isempty() instead of length() to the check for non-empty
variable can avoid warnings in executing code in Matlab.
The unnecessary print of variable to console is removed. E.g.
struct bs, or biquad transfer function zeros vector a.
In system() command no need to store the console output, just
check the return status.
In switch-case statements no need for comma after case and
otherwise.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch contains the changes to export EQ blobs in both tplg1
IPC3 and tplg2 IPC4 formats.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch moves the existing .txt blobs for sof-ctl to directory
ipc3. There will be a similar new ipc4 directory.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Use the input/output pin terminology consistently to align with the
kernel driver and avoid any confusion.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add bluetooth pipeline to rt5682 topologies.
Co-developed-by: Uday M Bhat <uday.m.bhat@intel.com>
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
Co-developed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Fixes for adding bluetooth pipeline to real codec topologies:
- change bt pipe copier indexes from 5-6 to 7-8 for not to collide with
main level topologies. This indexing is now aligned with nocodec and
rt5682 topologies.
- add big route indexes (50x) for not to collide with main level
topologies.
- introduce BT_ID to separate from BT_INDEX to match machine driver.
- align bt-ssp-config-lbm.conf and bt-ssp-config.conf hw_config names.
- switch BT_PB_HOST_PIPELINE_SINK and BT_PB_DAI_PIPELINE_SRC as the route
was defined wrong way around. This was compensated by route definition
in cavs-nocodec-bt.
Co-developed-by: Uday M Bhat <uday.m.bhat@intel.com>
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
Co-developed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>