Every module which needs AMS for notifications uses the same flow when
configuring itself as a consumer or producer for such notifications.
Add AMS helper functions to avoid code repetition.
Signed-off-by: Ievgen Ganakov <ievgen.ganakov@intel.com>
This got merged too fast. Turns out it broke the newer fuzz
integration that was in the same YAML file. Also there are some
evolving review comments. Will resubmit.
This reverts commit 11e57f5030.
Signed-off-by: Andy Ross <andyross@google.com>
Fuzzing via the new framework is now integrated at oss-fuzz upstream,
so there's no point to keep this in SOF anymore. The github workflow
has bitrot vs. the newer build.sh, and that docker build is very
heavyweight vs. the newer fuzz.sh smoke test that runs in the regular
build container anyway.
Signed-off-by: Andy Ross <andyross@google.com>
Send panic notification message to host when panic happens. The panic
detail is built by Zephyr framework and included in debug memory window.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Rander Wang <rander.wang@intel.com>
Co-developed-by: Rander Wang <rander.wang@intel.com>
For emergency like FW panic event, we need to send notification IPC
message to host directly without inserting this message in msg_list
since at this time the system is not stable now and it is very possible
that the normal message processing logic can't work.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Rander Wang <rander.wang@intel.com>
Co-developed-by: Rander Wang <rander.wang@intel.com>
Since IncludeByKey uses Regular expressions to validate text match,
the expression [1-1000] does not filter number between 1 to 1000 as
intended. For example, DEEPBUFFER_FW_DMA_MS=0 results in matched while
DEEPBUFFER_FW_DMA_MS=5 returns not found, fix with regex flavor pattern.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
To handle zero config size case in set_configuration would let
dts_codec_apply_config never be called due to early return when checking
if md->new_config_size is zero. This causes the problem that DTS
tuning parameter would never be set. Instead, check the config size in
dts_codec_apply_config() could resolve the zero config case and let the
tuning parameter could be set successfully.
Signed-off-by: Joe.Cheng <joe.cheng@xperi.com>
Two structures are both need 4 bytes aligned, since its content
started with int32, add 4 bytes align in current code.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Rename and align ipcgtw exposed function name that exposed to copier.
Add static to the functions that only used inside copier_ipcgtw.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Move those ipcgtw specific functions out of copier, this can make
copier module more simple and easy to read, also prepare for copier
module adapter, also expand ipcgtw_new/free, since it is small and
only called at local file.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
This is preparation work for split copier to separate host, dai,
ipcgtw, some functions need be public for different module usage,
so public it first for later usage.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
When there are aggregated amps, the topology includes a DAI copier for
each aggregated DAI. But, since the second DAI is not connected to
anything in topology, it doesn't show up in the graph. So, add a virtual
widget and connect it to the aggregated DAI and the gain module to show
its existence in the graph. When parsing the topology, the kernel
ignores all routes that contain a virtual widget at any end of the
route.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the use of the generic dai-copier class with the ALH specific
DAI copier and pipeline class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Create a new class for ALH because they are different from the other DAI
types with DAI index being irrelevant. So, it would need a new naming
scheme that's more meaningful. For ex: dai-copier-ALH.SDW1-Playback.0
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
-Wl,EL is a linker option, not a compiler option and clang does not
like it at compilation time; it fails like this:
```
cd smex
cmake -B build -DCMAKE_C_COMPILER=clang
make -C build
clang-15: error: -Wl,-EL: 'linker' input unused
[-Werror,-Wunused-command-line-argument]
```
Reported by @andyross in https://github.com/google/oss-fuzz/pull/10342
oss-fuzz does not need smex at all but this one-line fix is just
faster and simpler than a bigger CMake re-architecture just for
oss-fuzz.
Also simplify this for clang compatibility:
```
error: unknown warning option '-Wimplicit-fallthrough=3'; did you mean
'-Wimplicit-fallthrough'? [-Werror,-Wunknown-warning-option]
```
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Runner OS for the Zephyr workflow had been updated to Ubuntu 22.04,
so upgrading this workflow too.
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
New Zephyr Docker container v.26.4 is based on Ubuntu 22.04,
upgrading build-linux job OS to match the one in the container.
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
New Docker container tagged v0.26.4 contains new Zephyr SDK v0.16.1
needed to build with Zephyr main branch.
New Zephyr SDK is backward compatible with the older Zephyr revisions
so the upgrade is done for SOF manifest revisions too.
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
Installation of new Zephyr SDK 0.16.1 does not require unzip anymore
in the setup.cmd script. This tool had been replaced by 7z that is
by default present on all Github Windows runners.
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
Zephyr main branch requires new Zephyr SDK.
Upgraded version of Zephyr SDK to newest available v0.16.1 in the
build-windows job. New SDK is backward compatible with old Zephyr
revisions so the upgrade is applied to all CI.
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
Rename mixin and mixout Analog Playback volumes. Rewrite the names of
the mixers to better reflect their position in the topology.
As a result of this commit mixers are renamed in sof-hda-generic.tplg.
'gain.1.1 1 2nd Playback Volume' becomes
'gain.1.1 Pre Mixer Analog Playback Volume'
and
'gain.2.1 2 Main Playback Volume' becomes
'gain.2.1 Post Mixer Analog Playback Volume'
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
This invalidation is required in order for the driver to correctly
report the available/free bytes on a given DMA channel.
Fixes: 87d79c48dd ("drivers: imx: sdma: Add SDMA support to SOF")
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
It is now handled by the host-copier class. Renaming the copier class to
dai-copier and modifying its naming convention will be done in the
follow up patches.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier object in the pipeline class
definition and all its instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
With the work done for zephyr DMA domain we got a lot of insights
about how scheduler works.
So add myself and Laurentiu as codeowners.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This replaces and simplifies commit a823958a8d ("xtensa-build-zephyr:
pass sof build version to rimage") with a constant 1.
That commit was submitted to avoid a test failure in a broken, internal
test looking for an SOF_BUILD value... hardcoded to 1! (internal FW issue
257, test TestLoadFwExtended::()::test_00_01_load_fw_and_check_version")
The final goal is for this script to stop extracting anything from
`generated/sof_versions.h` so rimage can be configured _before_ the build
has started. Other commits will deal with other parts of sof_versions.h
SOF_BUILD can be replaced by a constant because it has always been one
when building with Zephyr. The optional BLD_COUNTERS feature - disabled
by default in XTOS since commit 9f8cce1522 ("Disable __TIME__ and the
non-reproducible build counter by default") for build reproducibility
reasons - has never worked with Zephyr for the following reasons:
- The sof_add_build_counter_rule() invocation is located in the
top-level sof/CMakeLists.txt file which has never been used by the
Zephyr build.
- sof_add_build_counter_rule() registers a POST_BUILD command for the
top-level "sof" CMake target but there is no "sof" build target in the
Zephyr build.
- Variables like VERSION_BUILD_COUNTER_CMAKE_PATH are not defined in the
Zephyr build for some unknown reason.
- Probably others.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
No need to handle this differently as multi-endpoint DAIs no longer
create endpoint devices/buffers too.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
These are not used anymore for the multi-endpoint DAI copiers, so remove
the creation/freeing of endpoint devices/buffers.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>