Total of 553 commits.
Changes include:
2fcdbba534b intel_adsp/ace: power: pad the hpsram_mask passed to
power_down
d590c186728 intel_adsp: ace: call soc_num_cpus_init early
c79bbfadbbd xtensa: move arch_kernel_init code into prep_c
dbfbf0edbad xtensa: adapt soc code to use prep_c
42396735bf7 xtensa: introduce prep_c for xtensa
299dddfdce1 xtensa: remove mention of crt0-app.S
ed31037d5fd drivers: ssp: fix program of MLCS register
cbb9613d83b dai: intel/ssp: Use proper flexible array
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
This mysterious option has been causing portability issues and has never
made any difference, see previous commits for details.
I compiled the plugin with and without it and there was absolutely zero
binary difference.
Let's remove it from all tools/plugin/ CMakeLists.txt files before the
mass copy/paste/diverge there spreads it even more.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This option was added by initial commit 36929ae1b7 ("smex: Create new
tool to build ldc file") without any justification. It has been causing
countless portability issues, see previous commit for examples. It makes
even less sense for a build-time utility. Get rid of it.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
As already discussed in commit bcbcec79e5 ("cmake: drop
binutils-specific '-Wl,-EL' option") and commit ee58fef921
("smex/cmake: move -Wl,EL option to target_linker_options() for clang")
and their corresponding reviews on GitHub, this binutils-specific,
endianness option makes no difference and is causing clang compatibility
issues. It's now getting in the way of #9351 "Add the new platform
ACP_7_0".
I ran `./scripts/docker-run.sh ./scripts/xtensa-build-all.sh -a` with
and without it and there was absolutely zero binary difference.
I was added in 2019 by giant commit e0ba98d21a ("cmake: add CMakeLists
for firmware build") without any rationale of why it would be needed.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
We have a few gaps in input validation from the kernel. Right now we
check the IPC doesn't claim its larger the window, this patch adds the
following checks:
1. That the IPC size is at least large enough for any downcast type on
comp new
2. That any reported size for a process total size is less than the IPC
window.
Also adjust the other helper to be a bit safer and more direct
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Specifying 0 address for .module section results in few GB binary file.
Instead, put .module section near .text or .rodata.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
In present multiband_drc design, the enabled state is determined by
the switch control while multiband_drc starts to process. If the
switch control toggles while processing, it will take effects on the
next time multiband_drc starts to process.
This commit makes change to let the enabled state update
instantaneously by the switch control toggle when multiband_drc is
processing.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
(cherry picked from commit 8e8ff75a76)
For some reason we had the EQIIR for topology1/IPC3 but we didn't add
it for topology2/IPC4. All recordings show there's a strong DC offset
with RT722 and other codecs, so let's add this component by default in
the non-passthrough cases.
The widget is added in the scope of a pipeline, so that the
auto-generated instance is not handled at a global level.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The widget should only be defined in the scope of a pipeline,
otherwise the instance management is global instead of local to the
pipeline.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The ALH copier only supports 32bits stereo on capture. All the
additional formatls on the host copiers make no sense, and we also
don't need to generate 4ch on the host side.
It looks like the addition of the 1ch support was also problematic
since the link always operates with 2ch.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
These two variables should only be used on the link side. It makes no
sense to use them on the host-facing side of the DAI copier.
FIXME: do we need to use 3 formats for the ALH copiers, in most cases
there's really a need for a 32-bit format only?
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This device has RT712 on link0 2 PCH-attached DMICs.
Add 2 configurations with 4 DMIC and 2 DMIC. For now no
support for -pdm1.
Link: https://github.com/thesofproject/linux/issues/4923
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
There is no SDW DMIC or PCH DMIC included in the configuration. Thus the
last SDW link ID will be 2 and the HDMI link ID will start with 3.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Use int32_t instead of int64_t to improve performance in level_update.
Improve comments in max_mic_distance function to better explain the
distance calculation between all possible microphone pairs. Correct
the typo in line_array_mode_check function.
Signed-off-by: Shriram Shastry <malladi.sastry@intel.com>
Address reviewer comments: Improve comments in max_mic_distance and
correct typo in line_array_mode_check
In the case where the copier has more than one output and,
additionally, we will be using a pin other than pin 0
(for example, when we want to copy data from pin 1 of
a gateway-type copier to the next pipeline), it is necessary
to copy data in playback path from the source to the output
for all possible active sinks.
Signed-off-by: Damian Nikodem <damian.nikodem@intel.com>
Add the label "(optional)" in the function documentation for functions
whose implementation by a module is optional. The module adapter checks
whether the function is provided by the module before calling it.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
The Logger class ia a log wrapper intended for use by IADK loadable
modules. Remove it because it is not needed in the sof.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Add the const modifier to system_service structures containing pointers to
shared functions to protect them from accidental modification.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Total of 391 commits.
Changes include:
44464c4d4fc drivers: dai: intel: ssp: Introduce DMA control set API
5084decbc46 drivers: dai: intel: ssp: Refactor TLV parsing into a
separate function
230709e4ae6 include: dai: Introduce runtime DAI configuration update API
1497f77cc89 intel: adsp: make SRAM power-off configurable
293fa118df9 intel: adsp: fix firmware image in IMR overwriting
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Start moving SoundWire topologies from the shadows into main...
We generate a single topology for RT722-based skews since the link
information is not used in the matching with the machine driver
dailinks. The same topology can be used for link0 or link3 setups.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This change enables CONFIG_CADENCE_CODEC in the app/stub_build_all_ipc3/4.conf files.
With this, the Cadence Codec component will be included in builds for CI testing.
Signed-off-by: Anne Onciulescu <anne.onciulescu@gmail.com>
Adds channel map parameter to get_convertion_func() to support remapping
conversion functions.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
When the hardware is able to return a valid number of DMA buffer audio
channels (e.g., extracted from a blob), give the returned number
of channels higher precedence over the number supplied via the base config
params.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Adds a set of conversion functions that perform both format conversion
and channel remapping. These are required to swap channels for the device
posture feature.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Adds a channel map parameter to conversion functions, allowing for
the introduction of conversions that can handle both format conversion
and channel remapping.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Prepare DAI gateway to support channel remapping conversion functions
that can modify number of channels. Consequently, frames, not samples,
should be used for DMA copy bytes calculation.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Copier may have multiple sinks connected to different pipelines. While
the copier pipeline might already be running, the sink pipeline has not yet
initialized stream parameters of the buffer connected to copier's sink.
It appears that checking for the sink component state is not enough.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
The multi-gateway channel copy function and the DAI process function serve distinct purposes.
Although they currently share the same number of arguments of the same type, this similarity
is coincidental and might be changed during future refactoring.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
If a module contains 0 as its CPC value, the consumption calculation
routine will assign a "safe" maximum value to keep the DSP running at
the maximum clock rate. This works when constructing a pipeline, but
when a pipeline is torn down, returning the maximum clock rate leads
to the clock being reduced to a small value. Fix this by detecting
such cases in pipeline termination code.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Export missing symbols for modular DRC builds and select it as a
module on MTL and LNL. DRC isn't built by default, so we cannot
use CONFIG_LIBRARY_DEFAULT_MODULAR for it.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Add support for LLEXT building to drc. Since multiband DRC calls
functions from DRC, we cannot so far build it if DRC is configured as
a module. In the future it should be possible to build both as
modules and to export symbols between them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
So far we cannot build identical LLEXT modules under Linux and
Windows, build a monolithic firmware for this test.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When pipelines are destroyed, component drivers' .reset() and .free()
are called. If those drivers were loaded dynamically their memory is
then unmapped. But logging takes place in a low priority task, so it
is important that no logging is done from those methods.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>