MAX_CORE_COUNT is a duplicate of CONFIG_MAX_CORE_COUNT, remove the
former and use the latter instead.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Currently the Zephyr ll-scheduler avoids holding a lock for the
entire duration of its scheduling run by using a temporary list.
However, this means, that tasks, added to the list while the
scheduler is running, cannot be ordered properl WRT already queued
tasks. To fix this this patch removes the temporary list. Instead it
now takes care to manually find next tasks with the lock held and
releases the lock when running tasks.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@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>
The optimized copy() functions could output data outside source
buffer without this check. The test in params() checked only
channel select parameter vs. max channels count. The changed code
checks it vs. actual stream channels count. There's in params() a
channels count check so this one could be modified.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch replaces the per sample done circular copies with
audio_stream_read/write_frag_s16/32() functions calls with
max. length linear copies.
The original copy function for >1ch sink is just 1:1 copy
from source to sink without controllable channel select. This
patch preserves the functionality and implements the copy with
memcpy().
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@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>
The cd->hvol always remain NULL, there is no code path which would
configure it which makes the mapped volume unusable and unused.
The kernel does not use this feature either.
Remove all related code to this non supported feature.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
It seems most of the tokens added in ABI3.18-3.20 have not been
added at all to tokens.h. This is problematic as this is the main
interface reference and used by multiple tools in SOF repository
(the tplg parser and testbench).
Align definitons to latest in Linux kernel tree current ABI3.20
implementation in the firmware repository.
Signed-off-by: Kai Vehmanen <kai.vehmanen@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>
uint8_t iterator does not work for period size above 256 frames.
Using large buffers (>5ms @ 48kHz) without this patch results
in the copy being an infinite loop.
Signed-off-by: Lionel Koenig <lionelk@google.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>
For BT module not support 16Khz sample rate anymore,
we need to change sai sample rate to 8Khz to match
BT.
Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
There are two types of power setting ops: set_d0ix and
set_dx. set_d0ix will disable power gating on core 0 and
set_dx will power up the specific core.
Signed-off-by: Rander Wang <rander.wang@intel.com>
This is a logical revert of eb45907
Based on recently merged #4941, C99 comments are now OK. I never found
any rationale or even written down coding style for excluding them in
the first place.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Audio driver only create single buffer but SOF requires
double buffer. Since obs should be equal to ibs, buffer
size will be set to obs * 2.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Ipc4 stream have container size and valid sample size.
In windows system, container size is normally 32bit
and valid sample size is 16bit or 24bit rely on system
setting. Currently host and dai component are included
by copier module to manage gateway. These two components
don't support container size and all the code is designed
for the case that container size is always equal to valid
sample size.
To avoid affecting current IPC3, this patch adds endpoint
buffer to support host or dai in a way that endpoint buffer
uses the same container and valid size and copier will do
the conversion between endpoint buffer and ipc4 buffer since
copier also supports format conversion.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Sample format is alway equal to container format for
ipc3 case but it is not true for ipc4, .e.g sample format
is S16_LE but container format will be S32_LE. This patch
adds container_fmt for ipc4 to do stream copy.
Signed-off-by: Rander Wang <rander.wang@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>
Discovered the hard way that the Zephyr build assumes sof-logger is
always up to date when present. It's not clear from cmake's
ExternalProject documentation why that is the case. In any case
BUILD_ALWAYS fixes the issue and takes very little time because it does
not rebuild sof-logger from scratch. BUILD_ALWAYS is already used for
XTOS.
Fixes commit f6c71c21d0 ("zephyr/CMakeLists.txt: build smex and
sof-logger")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>