Skip to content

Conversation

@nashif
Copy link
Member

@nashif nashif commented Apr 19, 2023

  • topology1: set lower priority for DMIC task in GOOGLE_RTC_AUDIO case
  • Audio: Module adapter: Pass entire cdata to clients for all controls
  • Audio: TDFB: Convert to module adapter
  • Audio: TDFB: Fix a mistake in sound direction updates filtering
  • topology: imx: Rearrange topologies based on platform
  • topology: imx: Add topology file for i.MX8QM with wm8962 codec
  • topology: imx: Combine topology files for i.MX8MP with different options
  • topology: imx: Add topology file for i.MX8MP with wm8962 codec
  • app: remove old cavs platforms
  • platform: ace: register clock using core_kcps_adjust api
  • topology2: io-gateway: Fix a typo
  • topology2: Rename passthrough-capture-be
  • topology2: Rename passthrough-playback.conf
  • topology2: Rename passthrough-capture.conf
  • topology2: copier: Make node_type mandatory
  • topology2: Move common_definitions.conf
  • imx: sai: enable transmitter to output MCLK
  • audio: mixer: Fix inactive streams handling
  • xtensa-build-zephyr.py: log ALL "evil" environment differences
  • module_adapter: Propagate error from module specific callback
  • numbers.sh: do not (re)define ROUND_DOWN() if ZEPHYR
  • smart_amp_test: fix unbind implementation
  • cadence: register module logs in Zephyr
  • zephyr: use system cache API

johnylin76 and others added 24 commits April 6, 2023 21:50
When GOOGLE_RTC_AUDIO is applied, Speaker and DMIC pipeline tasks are
scheduled in the same domain. The AEC function in GOOGLE_RTC_AUDIO
has the hard requirement for input sample synchronization between DMIC
input and Echo reference (sourced from Speaker).

At present, both pipelines are pri-0 so the task order in schedule
list depends on which pipeline starts first. This commit sets DMIC as
pri-1 when GOOGLE_RTC_AUDIO is applied to make sure that DMIC task
will be always put after Speaker task, which guarantees the
requirement for input sample synchronization.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
This patch unifies all the control types (bytes, enum, switch).
Previously for binary control the fragment pointed to
cdata->data[0].data while for other control types the cdata
was passed via fragment. If fragment always points to cdata
the module adapter client can reliably check the control type
from cdata->cmd and handle other than binary control types.

Since the client components with binary control pass the
data to comp_data_blob_set() in data_blob.c the restore of
pointer fragment to cdata->data[0].data can be done there.

A check for SOF_CTRL_CMD_BINARY is added to comp_data_blob_set()
and comp_data_blob_get_cmd() to avoid wrong usage of controls.

With IPC4 in comp_data_blob_set() the use of
struct sof_ipc_ctrl_data pointer step is not done but the
fragment is treated as raw data payload without the header.
The generic support for other than binary control will be
solved later for IPC4.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch converts the time domain fixed beamformer (TDFB) into
module adapter API.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Check for four least significant bits set means that four
previous processes periods need to be high enough signal
level over ambient. The value 0x15 is an obvious mistake and
does not filter properly control events. The purpose of the filter
is to prevent too frequent or unreliable control updates.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Rearrange topologies based on platform type: imx8,
imx8mp and imx8ulp.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Add new topology file for i.MX8QM with wm8962 codec.

While here, use CODEC variable to differentiate between wm8960
and wm8962.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Combine topology files for i.MX8MP with different codecs and rate, by
using CODEC and RATE variables.
Based on CODEC use the proper DAI_CONFIG.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Add new topology file for i.MX8MP with wm8962 codec.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Remove old platforms from zephyr testcase file:

- intel_adsp_cavs15
- intel_adsp_cavs18
- intel_adsp_cavs20

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
core_kcps_adjust is an API to request clock changes indirectly, by
registering KCPS per core. It should be common method for all clock
change requests, to keep KCPS on track.
Currently, in the platform_init, maximum clock is reqeuested. This is a
workaround for missing CPC management. KCPS should be registered together
with clock change.
Even though FW does not request KCPS at any place (feature not ready) so
far, OED driver sends these requests via LargeConfigSet. It is required
to have valid initial value of KCPS in cpu-clk-manager.

Signed-off-by: Przemyslaw Blaszkowski <przemyslaw.blaszkowski@intel.com>
Fix the typo in the pipeline name

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Rename it to io-gateway-capture.conf to align with the documentation.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Rename it to host-gateway-playback.conf to align with the documentation.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Rename it to host-gateway-capture to align it with the documentation.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Introduce a new class for module-to-module copiers and make node_type
mandatory for the copier class.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
These are Intel-specific, so move them to the platform/intel folder

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
On i.MX8MP, the SAI MCLK is bound with TX enable bit.
Therefore, in order to enable MCLK, we need to enable
the transmitter.

This fixes a "wm8962 2-001a: DC servo timed out" -
a Linux Kernel error with wm8962 codec.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
The previous patch 908876c introduced a bug where the wrong input
buffer had the "consumed" field updated. This affected playing from
_only_ the second input stream in weird ways (specifically, sound was
slower and every other period I'd get a "no bytes to copy" message from
the active host component).

This patch fixes the indexing for that update.

Fixes: 908876c "audio: mixer: Improve handling of inactive input streams"
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
This is a typical example of why environment variables are (a sometimes
necessary) evil: imagine you're trying to reproduce exactly the `west
build` command run by xtensa-build-zephyr.py when building with the
`xt-xcc` toolchain. So you would typically look at the logs, feel lucky
that it shows the extra environment variables used and copy them:

```
XTENSA_TOOLCHAIN_PATH=/srv/home/jenkins/xcc/install/tools
TOOLCHAIN_VER=RG-2017.8-linux
XTENSA_SYSTEM=/home/jenkins/xcc/install/builds/RG-2017.8-linux/cavs...
In dir: workspace/sof; running: west build ...
```

Except this won't work because there's one variable currently missing:
`ZEPHYR_TOOLCHAIN_VARIANT`!

Of course there could be more in the future.

Fix this by leveraging the recent os.environ.copy() added by
commit 8aab183 ("xtensa-build-zephyr: fix DEFAULT_TOOLCHAIN_VARIANT
spill on next platf") compare it to the current os.environ and show the
difference in a totally generic, non-hardcoded way.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
When module_prepare() fails we need to return to calling module the
exact specific error not just -EIO.

There is no real use for Host AP to receive an error code that doesn't
reflect the actual error.

While at it, make the code more compact as suggested by Guennadi.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Move the ROUND_DOWN() definition to the nearby #ifndef __ZEPHYR__ block.

The previous `#ifndef ROUND_DOWN` logic depends on the #include order,
so it fails sometimes.

Fixes commit a6f8dae ("kpb: add micselection function")

Fixes XCC compilation failure with
```
./scripts/xtensa-build-zephyr.py  mtl --cmake-args='-DEXTRA_CFLAGS=-Werror'

 - In file included from sof/src/audio/src/src_hifi4.c:22:
zephyr/include/zephyr/sys/util.h:238:9: warning:
         'ROUND_DOWN' macro redefined [-Wmacro-redefined]
        ^
sof/zephyr/../src/include/sof/math/numbers.h:33:9:
         note: previous definition is here
```

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Code in unbind is looking at wrong field for queue-id. This works
some of the time, but in some cases leads to access to freed
heap data and later to heap corruption.

Link: thesofproject#7191
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Use LOG_MODULE_REGISTER() to register cadence in the Zephyr logger
framework.

Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
Use zephyr cache APIs instead of xtensa specific ones.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
@nashif nashif merged commit ffbf9c2 into zephyrproject-rtos:zephyr Apr 20, 2023
@nashif nashif deleted the cache_api branch April 20, 2023 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants