Moved the constant is_2byte if-else check out of while loop. We then have 2
while loops and the constant becomes to be checked once.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Change to run smart_amp pipelines on DSP core 1, this will help reduce
the core 0 usage and add multi-core to the CI coverage.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Move the code that sets the scheduling comp for
a pipeline to allow setting it in ipc_pipeline_complete().
This removes the restriction that the scheduling comp must
be set up before the pipeline widget and provides the
flexibility in the kernel to set up the widgets in any order
while parsing topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The delayed work API is deprecated, convert to use the replacement
delayable work API.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Replace sch->domain with a local domain pointer variable on many
occasions.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
With Zephyr timer domain handlers are per-core, therefore
rescheduling has to be performed after each scheduler run, but the
next scheduling tick must be calculated only once.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
In timer_domain_set() timer_domain is a pointer to a single struct
timer_domain object, not an array. Fix potential access beyond the
object memory.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Trying to write back cache on uncached addresses can overwrite data.
Invalidating cache should have no ill effects but isn't very
meaningful either. Disable both.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When built with Zephyr all memory except stack is sharable: either it
is read-only, or it is accessed via the non-caching address range.
Besides no .shared_data section is actually created under Zephyr,
therefore trying to place data in it leads to linker warnings and
actually moves that data to the caching address range.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Builds a configuration of the max98373-rt5682 topology with AMP_SSP=2
defined and includes the IIR component
Signed-off-by: Ross Chisholm <ross.chisholm@xperi.com>
Some devices are using rt711 only, without amplifiers.
Add the "EXT_AMP" option in sof-tgl-rt711-rt1308.
Signed-off-by: Libin Yang <libin.yang@intel.com>
The key-phrase-buffer (kpb) component can be included in
Zephyr-based builds, but the component is not initialized
properly in the builds.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This will allow topologies to use different size dai periods.
Fixes: 1280987999 ("topology: use DAI_PERIODS in calculation of DAI buffer size")
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
More robust support for "manual" installations.
Also rephrase usage string to remove a single quote breaking
the shell parser in one editor I use (sorry).
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Previously we had a channel map macro only in general dmic topology. As
the pipelines used with dmic are also used with other topologies the
dmic specific macro does not work anymore. Thus define generic macro in
pipeline.m4 that defaults to stereo channel map. This can be overridden
in topologies as shown in general dmic.
fixes: #4136
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
This reverts commit 2c69afc5fd.
The dynamic pipeline feature is broken with PA enabled. Revert
this change until the issue is sorted.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This commit consists of files for adding IGO_NR component in arbitrary
topology. The proprietary static library shall be released by intelliGo
via private channel upon request.
Signed-off-by: fy.tsuo <fy.tsuo@intelli-go.com>
Notifier data has to be per-core and its allocation is
performed in init_system_notify(), no need to also do it in
architecture code.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
sof_main() doesn't run on secondary cores. Instead we provide
a new function, that initialises a dummy thread, runs SOF
initialisation by calling secondary_core_init() and switches
over to the dummy thread.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When running on Zephyr, timer domain and EDF scheduling is
implemented by per-core work queues. Make sure they only run
on designated cores.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Pcm converter function definitions are under same format configs as all
other component format configs. This creates problems if you want to for
example configure whole pipeline to 16 bits but your dai needs to be
fixed in other format. Thus duplicate and rename the format configs for
pcm converter for fine grained tuning.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
By default, the Zephyr build does not log its version. The fix has
already been submitted at
https://github.com/zephyrproject-rtos/zephyr/pull/34842 however:
- 34842 may take some time. Zephyr reviewers are even busier than the
SOF reviewer.
- 34842 could even be rejected
- 34842 will at best log the SHA1 and no context. This is more verbose
and future-proof because it supports more complex situations like
testing a pull/12345/merge
As seen in (unrelated) PR #4123, we need Zephyr git versions NOW.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes 33c5f5d38e ("xtensa-build-zephyr: do not clone a second version of
sof.git")
The very first version of this test was checking whether the rimage/
directory exists, which proves nothing. So I switched to
rimage/CMakelists.txt but forgot change the `test` flag.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This patch adds development topology to run ASRC playback and
capture via SSP port to headset plug. We don't have many topologies
to test ASRC in current development devices so this is useful
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Calling codec_process() multiple times in a loop limits the minimum
pipeline period we can choose.
For example with AAC one codec_process() can take up to 0.7ms which
means that we cannot reliable set pipeline period to 1ms on i.MX where
DSP has only 1 core.
In order to avoid this and to simplify the code remove the processing
loop hence each codec_adapter_copy() call will call exactly once the
codec_process() function.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Where possible container_of() should always be used instead of
direct type-casting.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Even when addressing 16-bit data the register number remains
the same - 32-bit.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Now that schedule_edf() is just a static function, use a
proper type for its parameter.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Remove a log-module declaration to eliminate unused static
variables until we return to using the LOH_* Zephyr API.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Move logging code and static data to platform/library and
declare a LOG module properly.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
In both native and Zephyr builds schedule_edf_ops and
schedule_ll_ops are only used in one file each, make them
static.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>