Go to file
Ranjani Sridharan 0b7b3a5c7e ipc4: helper: Fix module free
When 2 modules are bound together, they are bound with a buffer between
them with the connection like this : source_module->buffer->sink_module.

So, what this means is that there is only one connection going from a
module to the buffer. So, calling pipeline_disconnect() from the same
module to the same buffer in both directions makes no sense.

Consider the following pipeline:
host_copier->gain->mixin

With the current logic, while iterating through the list of modules, if
mixin goes first for freeing, we'd end up freeing the buffer between the
mixin and gain before it is disconnected from the gain.

The right way to free a module would be first disconnect the module from
the sink buffer, then check if the sink buffer has been disconnected
from its sink module. If so, the buffer should be freed. Otherwise the
buffer will be freed whenever the sink module is disconnected from it.
The same thing must be repeated for the module's source buffer as well.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-10-27 19:31:35 +03:00
.github .github: extract standalone testbench.yml from Main Actions 2022-10-24 12:20:11 +01:00
app ipc4_overlay: tgl/tgl-h: Add CONFIG_COMP_VOLUME_WINDOWS_FADE 2022-10-20 17:57:55 +03:00
doc header: rtos: decouple headers into rtos specific directories. 2022-08-31 12:01:07 +01:00
installer installer: remove byt..jsl platforms 2022-08-31 21:03:16 +01:00
keys
rimage@3ee717eebc west.yml: upgrade rimage to 3ee717eebc 2022-10-20 11:09:53 +02:00
scripts xtensa-build-zephyr.py: restore lost reproducible .ri checksum 2022-10-24 16:15:12 +01:00
smex header: rtos: decouple headers into rtos specific directories. 2022-08-31 12:01:07 +01:00
src ipc4: helper: Fix module free 2022-10-27 19:31:35 +03:00
submanifests Add west.yml configuring zephyr dependencies from sof 2022-08-03 11:43:22 +01:00
test module-adapter: add a constant data pointer 2022-10-26 15:56:49 +01:00
third_party/include component: add initial post processing component and topology 2022-06-20 16:06:17 +01:00
tools module-adapter: add a constant data pointer 2022-10-26 15:56:49 +01:00
xtos/include zephyr: cpu: moving outside of the wrapper 2022-10-26 13:27:25 +01:00
zephyr zephyr: cpu: moving outside of the wrapper 2022-10-26 13:27:25 +01:00
.gitignore .gitignore: stop ignoring CMake files for in-source doxygen builds 2022-07-19 09:38:30 +01:00
.gitmodules .gitmodules: remove .git suffix from rimage.git 2021-09-30 15:56:44 +01:00
.travis.yml .github: replace HAVE_CONFIG KConfig hack with an override 2021-03-23 12:17:22 +00:00
CMakeLists.txt cmake: stop sneakily downloading missing submodules at build time 2022-08-31 10:40:04 +01:00
CODEOWNERS OWNERS: move google files to team reference 2022-05-30 09:45:24 +01:00
Kconfig kconfig: allow SOF Kconfig to be included in other projects 2021-08-04 12:34:39 +01:00
Kconfig.sof perf_cnt: add the tracing of window-based average calculation 2022-05-05 21:52:13 +01:00
Kconfig.xtos-build kconfig: move BUILD_VM_ROM Kconfig.xtos-build 2021-05-25 15:53:39 +01:00
Kconfig.xtos-dbg Kconfig: use uncached buffer only for debugging 2021-09-29 16:36:27 +01:00
Kconfig.zephyr-log sof: replace log calls with zephyr logging api 2022-04-27 15:05:24 +01:00
LICENCE LICENCE: Add Khronos Group Inc license header 2022-04-12 19:41:27 +03:00
README.md readme: remove IRC link 2021-06-16 22:13:08 +01:00
west.yml west.yml: upgrade rimage to 3ee717eebc 2022-10-20 11:09:53 +02:00

README.md

Sound Open Firmware

Status

GitHub Actions Build Status Gitter chat

Documentation

See docs

Running the tests

See unit testing documentation

Deployment

TODO: Add additional notes about how to deploy this on a live system

Contributing

See Contributing to the Project

License

This project is licensed under the BSD Clause 3 - see the LICENCE file for details