The old code does not deal correctly with input streams going away
without everything stopping. This commit ensures only active streams are
considered as mixer input, and the other streams are ignored (considered
zeroed out).
Signed-off-by: Paul Olaru <paul.olaru@nxp.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>
This should avoid error in tools/oss-fuzz build:
sof_ep/install/lib/libsof.a(dai.c.o):
in function `dai_assign_group':
dai.c:(.text.dai_assign_group[dai_assign_group]+0x0):
multiple definition of `dai_assign_group';
/usr/bin/ld: DWARF error: invalid or unhandled FORM value: 0x25
sof_ep/install/lib/libsof.a(dai-legacy.c.o):dai-legacy.c:
(.text.dai_assign_group[dai_assign_group]+0x0): first defined here
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This avoids tools/oss-fuzz build fail to issue
dai-legacy.c:
(.text.dai_comp_trigger_internal[dai_comp_trigger_internal]+0xaca):
undefined reference to `platform_dai_wallclock'
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Currently host build of module adapter builds the module adapter core
for each module. Lets only build it once on host.
Signed-off-by: Liam Girdwood <liam.r.girdwood@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>
When calculating the time_ratio, a situation may occur
where cd->initial_ramp is equal to zero. To avoid dividing
by zero it is necessary to insert an additional condition
Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
This is a follow up with #7330, remove dai zephyr part callback
register/unregister, call callback function directly at notifier
event place.
Signed-off-by: Baofeng Tian <baofeng.tian@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>
Src can module API, but is still getting data from buffers
What more dangerous, it is calling buffer_acquire on source
and sink.
Both buffers have already been taken by module adapter, so
it may lead to deadlocks.
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Adding attenuation checking based on the frame_fmt
from the config of the module instead of calling
sink->stream.frame_fmt, because sending IPC_SET_ATTENUATION
before calling module_prepare results in an error,
because at this stage the sink values are not yet set
(sink->stream.frame_fmt is zero)
Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
This patch adds for host gcc build the updated atomic
operations. These are intended to replace the previous
__sync built-ins. For more information see
https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html .
The atomic functions for xcc are fake but sufficient for
host arch build for static single-thread testbench.
Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Start using zephyr pm_runtime, clk and dma glue code in cavs25 native
drivers build. Move the files from ace/lib into zephyr/lib.
Also update west.yaml to related zephyr commit as power related
files have been moved to zephyr side.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Remove unnecessary blank line after '{' as reported
by checkpatch:
"CHECK: Blank lines aren't necessary after an open
brace '{'".
Signed-off-by: Alaa Emad <eng.alaaemad.ae@gmail.com>
- Create new setup() function
- Separate export for set -e compatibility
- Don't use the generic `build` directory but a more specific
`build-fuzz` instead.
- De-hardcode zephyr path thanks to west
- shellcheck clean
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add Kconfig options to specify when to reload DMA, by default it will
reload 4ms before the buffer is empty (or full).
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This should reduce DRAM access frequency and allow deeper power
saving modes, particularly when using Deep Buffer PCMs.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Add fast mode which enables to support unlimited transfer size (more than
ibs/obs) between a dma buffer and the copier. Enable it to satisfy
specific module requirements to guarantee enough data size to decoders or
from encoders since the pcm audio period size does not apply to variable
size frame.
Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
Real-world experience has proved again that big READMEs are not enough,
not even when they're only a couple lines away as the one added in
commit 8fd351ea9a ("west.yml: add warning to keep git submodules in
sync"). Only some failure / red color stand a chance.
It also seems some people rarely use "git status". This was discovered
in commit d9eb16aa66 ("cmake: add warning when git submodule changes
are found") but is still surprising.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add blank line after struct declaration as reported
by checkpatch:
"WARNING: Missing a blank line after declarations"
Signed-off-by: Alaa Emad <eng.alaaemad.ae@gmail.com>
---
changes in v2:
-edit subject line to include the file name.
-edit commit message
Remove unnecessary blank line before a close brace as reported
by checkpatch:
"CHECK: Blank lines aren't necessary before a close brace '}'"
Signed-off-by: Alaa Emad <eng.alaaemad.ae@gmail.com>
---
change in v2:
-edit subject line to include the file name.
Remove unnecessary blank lines before a close brace
as reported by checkpatch script
"CHECK: Blank lines aren't necessary before a close brace '}'"
Signed-off-by: Alaa Emad <eng.alaaemad.ae@gmail.com>
---
change in v2:
edit subject line
When adding object allocation to the coherent API the size alignment
was misplaced, re-opening a possibility for cache corruption when
sharing cache lines with adjacent allocations. Add alignment to all
coherent object allocations.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Total of 1128 commits, including following related to
dma-dw/intel_adsp/sparse/dmic/xtensa:
e40859f78712 Revert "dma: dw: Do not program SAR/DAR and CTL_HI/LO when using HW LLI"
7a85983ebcf2 xtensa: remove ELF section address rewriting
b32b321f502a dma: dw: Poll to check for channel disable with timeout
6226f9e6e44f dma: dw: fix the return value check
08d9efb202cc dma: dw: Do not program SAR/DAR and CTL_HI/LO when using HW LLI
045c68673491 dma: dw: Add a debug utility function
bd705e68b048 soc: xtensa: esp32: increase shared memory region
9854c915ffdf intel_adsp: cpu init refactor
9d5c21d58003 dts: xtensa: nxp: remove unused include
68c1cafb411e intel_adsp: dts: ace: lower case 71C00 to fix DTC warning
a8c0123d3c54 intel_adsp: cmake: add_custom_command(.mod) to fix incremental build
b00c63e7640c footprint: ci: Remove audio SOF samples
1efaa94bc64b drivers: audio: dmic_nrfx_pdm: drop -pin support
8ef2cd20d90a Drivers: DAI: Intel: DMIC: Shorten unmute ramp time
eead89e7f22d soc: intel_adsp: cavstool.py: simplify asyncio.run() call
cdae0bb7596e boards: intel_adsp_ace15_mtpm uses xcc-clang toolchain for twister
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Also move system headers stdbool.h and stdint.h last to avoid them being
accidentally included.
Fixes commit b91e253f65 ("include: sof: debug: Split panic.h into
Zephyr and XTOS-specific headers") that broke `scripts/fuzz.sh` because
it stopped `sof/ipc/common.h` from accidentally getting `ipc/stream.h`
through `panic.h`.
Fixes:
```
src/include/sof/ipc/common.h:126:15: warning: declaration of
'struct sof_ipc_host_buffer' will not be visible outside of
this function [-Wvisibility]
struct sof_ipc_host_buffer *ring,
^
```
```
sof/src/ipc/ipc3/host-page-table.c:151:5: error: conflicting types
for 'ipc_process_host_buffer'
int ipc_process_host_buffer(struct ipc *ipc,
^
sof/zephyr/../src/include/sof/ipc/common.h:125:5: note: previous
declaration is here:
int ipc_process_host_buffer(struct ipc *ipc,
```
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
`msg.h` needs `ipc/trace.h` for `sof_ipc_dma_trace_posn`
Fixes commit b91e253f65 ("include: sof: debug: Split panic.h into
Zephyr and XTOS-specific headers") that broke `scripts/fuzz.sh` because
it stopped `ipc/msg.h` from accidentally getting `ipc/trace.h` through
`panic.h`.
Fixes:
```
src/include/sof/ipc/msg.h:146:34: warning: declaration of
'struct sof_ipc_dma_trace_posn' will not be visible outside
of this function [-Wvisibility]
void ipc_build_trace_posn(struct sof_ipc_dma_trace_posn *posn);
```
```
sof/src/trace/dma-trace.c:160:23: warning: incompatible pointer
types passing 'struct sof_ipc_dma_trace_posn *' to parameter of
type 'struct sof_ipc_dma_trace_posn *' [-Wincompatible-pointer-types]
ipc_build_trace_posn(&sof->dmat->posn);
^~~~~~~~~~~~~~~~
sof/zephyr/../src/include/sof/ipc/msg.h:146:58: note: passing argument
to parameter 'posn' here
void ipc_build_trace_posn(struct sof_ipc_dma_trace_posn *posn);
```
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add HiFi3 implementation of dcblock processing functions.
Compared with generic C version, the 16 bit format can save
about 48.1% cycles, and 48.4% for 24 bit format and 52.6%
for 32 bit.
Signed-off-by: Andrula Song <andrula.song@intel.com>
Upgrade to the present rimage upstream version to fix tgl building
with Zephyr main branch head.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Configure in/out buffer stream params.
In Windows scenarios, unconfigured values were causing zero-division
exception in audio_stream_get_avail_frames.
Signed-off-by: Przemyslaw Blaszkowski <przemyslaw.blaszkowski@intel.com>
For calculating sample group size, sample container size should be
taken instead of valid bit depth.
Signed-off-by: Przemyslaw Blaszkowski <przemyslaw.blaszkowski@intel.com>
This patch fixes DMIC capture for TGL platform in IPC3 mode. The
error seen in firmware trace is:
ERROR dmic_irq_handler(): full fifo A or PDM overrun
ERROR dw_dma_get_data_size(): xrun detected
The set of sar and dar is restored to driver. It was removed
with function dw_dma_mask_address() when removing support for
BDW and HSW platforms. The two first lines removed from the
function are needed for all platforms. The lines were added
to where the function was originally called.
Fixes commit d80635054f
("platform: remove support for Broadwell and Haswell")
Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
It is recommended to poll with timeout after disabling the channel to
ensure that the channel has been actually disabled.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
If coherent object is at non-zero offset, the init call ends
up invalidating data cache outside the allocated buffer.
All current users of "struct coherent" have the object as
the first member, so nothing is broken with current code.
Signed-off-by: Kai Vehmanen <kai.vehmanen@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>
During start trigger, the DMA is be started first followed by the DAI. The
same order should also apply for the release triggers. Conversely, during
stop/pause the DAI must be stopped first before the DMA.
But some platforms cannot handle the conventional ordering during the
stop/pause triggers. Add a new config,
COMP_DAI_STOP_TRIGGER_ORDER_REVERSE, that will be used to reverse the
DMA and DAI trigger order during stop/pause. Also, fix the stop case to
use the new config to reverse the ordering instead of
COMP_DMA_SUSPEND_DRAIN.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>