Commit Graph

89 Commits

Author SHA1 Message Date
Janusz Jankowski f9494d9ce5 cmocka: add stdint.h includes
As written in cmocka documentation,
these headers have to be included before cmocka.h:

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-03-20 11:37:04 +00:00
Janusz Jankowski 0cc895d609 cmake: cmocka: add toolchain file for xt
It's needed to make cmocka build correctly
for generic instead of unix system

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-03-20 11:37:04 +00:00
Janusz Jankowski 6f88295017 cmake: fix memory mock lds for windows
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-03-20 11:37:04 +00:00
Janusz Jankowski c47f3dbc03 cmake: fix unit tests for ninja
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-03-20 11:37:04 +00:00
Bartosz Kokoszko 648345065a scheduler: add new generic scheduler api
This commit:
1. Renames specific schedulers:
	- schedule (.c/.h) -> edf_schedule (.c/.h)
	- work (.c/.h) -> ll_schedule (.c/.h)
2. Implements new generic scheduler api based on generic
   struct with scheduler ops. Every specific
   scheduler exports struct with pointers to its
   specific functions.
3. Makes edf and ll using generic api (exports structure
   with pointers to its own specific functions)
4. Updates host and pipeline tests due to scheduler
   changes.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
2019-03-19 14:37:15 +00:00
Jakub Dabek 935d13b891 memory: prework for memcpy calls change
Prepared host build and whole solution to use new memcpy_s
Fixed string.h dependencies

Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>
2019-03-14 10:05:47 +00:00
Lech Betlej 18673780c3 test: selector: add support for binary configuration data
Channel selector component supports configuration get/set using
COMP_CMD_GET_DATA & COMP_CMD_SET_DATA commands
of SOF_CTRL_CMD_BINARY type

Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
2019-03-11 18:25:11 +01:00
Marcin Rajwa c833f572d0 KPB: search for real time sink
This change allows host to keep real time
sink at any position - not forced to be the
very first sink. Pointer to the sink itself
has been added to component private data
therefore .copy takes slightly less resources.

Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
2019-03-11 18:23:39 +01:00
Adrian Bonislawski c06a65a8d0 Memory: self registering ability for audio components
No more need to update global component.h and audio.c component init list

New macro DECLARE_COMPONENT
The component can "register itself" in the appropriate linker section

Example of usage:
DECLARE_COMPONENT(sys_comp_*_init);

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
2019-03-11 15:43:01 +00:00
Tomasz Lauda c694c09824 buffer: add buffer callback
Adds buffer callbacks, which can be called
after produce or consume.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-03-06 14:58:38 +00:00
Tomasz Lauda ad646299af pipeline: change copy flow
Changes copy flow to unify it no matter what is
the source of scheduling. Capture pipelines will always
start from source component and go downstream to sink
component. Playback pipelines for the first time will
start from sink component and go upstream to source
component (preload run). Further playback pipeline
copies will first copy sink component and then go
upstream to source component.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-03-06 14:58:38 +00:00
Tomasz Lauda 6077b57e19 pipeline: add sink component
Adds sink component to pipeline. It will allow
for pipeline copy direction simplification.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-03-06 14:58:38 +00:00
Tomasz Lauda 9a6a38a609 mixer: add support for variable data copy
Adds support to mixer for variable
data size copy.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-03-06 14:20:39 +00:00
Bartosz Kokoszko 0b63fde14d memmap: init memmap in runtime for cavs platforms
This commit adds:
1. memmap struct initialization for cavs in run-time.
2. setting proper .caps for all cores for system runtime memory.
3. add generic defines for heaps.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
2019-03-05 12:05:03 +00:00
Lech Betlej 9845c9d418 test: kpb component name fixed in a configuration file
kpb directory is now added to cmoka test afer CONFIG_COMP_KPB is set

Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
2019-03-04 13:20:57 +01:00
Tomasz Lauda 99ee4432d1 cmocka: add unit tests for channel selector
Adds unit tests for channel selector component.

Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
2019-03-01 18:36:12 +01:00
Bartosz Kokoszko eae1d3a31c mailbox: deduplication of mailbox headers for cavs
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
2019-03-01 10:26:54 +01:00
Marcin Rajwa 53a63eac14 KPB: add cmocka test cases for real time copy and internal buffering
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
2019-03-01 10:16:23 +01:00
Adrian Bonislawski f8bf720ec1 Kconfig: make Mixer component a config option
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
2019-02-28 18:34:26 +01:00
Janusz Jankowski 5ccbab2659 tests: add panic symbols for alloc
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-02-19 16:52:10 +00:00
Janusz Jankowski c5d01530af tests: fix idc for smp
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-02-19 16:52:10 +00:00
Tomasz Lauda 71b4f1d8c1 volume: refactor volume to support variable processing sizes
Refactors generic and HiFi3 volume processing implementations
to support variable processing sizes. The volume_copy method
will also be refactored in the near future to take advantage
of this feature.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-02-14 17:15:20 +00:00
Tomasz Lauda 2a863143e8 component: refactor set state handling
Changes component set state handling. If component
already has the desired state, then the state propagation
will stop at that component. This allows for connecting
multiple source pipelines to one sink pipeline and
properly handling params and prepare calls.
Also removes unit tests, which don't make sense anymore.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-02-13 11:37:30 +00:00
Adrian Bonislawski 7cf738ef51 Kconfig: make volume and src components a config option
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
2019-02-06 16:22:36 +00:00
Janusz Jankowski 6c70f1a929 cmake: tests: support prebuilt Cmocka
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-01-31 20:22:30 +00:00
Jakub Dabek d0323f4d17 test: reinstated rest of memmory tests
Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>
2019-01-30 10:46:43 +00:00
Janusz Jankowski 621e8702cc cmake: use cmocka tiny config
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-01-25 15:57:51 +00:00
Liam Girdwood 0cd5fb0629
Merge pull request #878 from jajanusz/update-cmocka-git
cmake: update cmocka git
2019-01-24 08:17:44 +00:00
Janusz Jankowski 97f3b70d65 cmake: update cmocka git
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-01-23 20:31:24 +01:00
Tomasz Lauda d918f1b3d0 pipeline: refactor whole pipeline component
Refactor the whole pipeline component:
- one method to handle both upstream and downstream walk
  across the pipeline graph,
- code deduplication,
- cuts pipeline implementation size by half.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-01-23 17:07:10 +00:00
Janusz Jankowski d91be6da67 buildsystem: remove autotools from sof
This commit doesn't touch tools buildsystem.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-01-22 15:35:35 +00:00
Janusz Jankowski a59e428b61 test: debugability: fix for full paths
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-01-22 15:35:35 +00:00
Janusz Jankowski 9a3dff5475 cmake: add CMakeLists for unit tests
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-01-22 15:35:35 +00:00
Jakub Dabek 592b0a30fb test: reinstated some of turned off tests
Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>
2019-01-15 11:32:50 +00:00
Janusz Jankowski d40cff319f test: disable xtensa-only tests for host
Disables following tests:
Debugability - not designed to be run on host at all
Volume - needs some tuning to not fail
Buffer - needs some fixes to not have segfault

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2018-12-20 08:38:26 +00:00
Janusz Jankowski da9ab07085 test: fix _zalloc ut
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2018-12-19 13:04:36 +00:00
Liam Girdwood 699321e679 cmocka: host: Make sure cmocka builds and runs for host test bench
Fix some build issues with cmocka for host test bench target so that
cmocka UTs can run native on host architecture. This makes it easy for
users to update UTs when APIs change as they dont need architecture
specific version of cmocka.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2018-12-19 10:20:35 +00:00
Liam Girdwood 6b3f266653 cmocka: update component cmd API to new convention.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2018-12-19 10:20:35 +00:00
Janusz Jankowski dc8aaf3894 test: fix mixer ut ipc
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2018-12-12 11:52:56 +01:00
Tomasz Lauda 2649ec78aa test: alloc: fix system heap alloc tests
Fixes system heap alloc tests, which crashed
due to wrong handling of memory freeing.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2018-11-30 10:07:32 +01:00
ArturX Kloniecki 6ba817bee6 UT: Fix unit tests after faulty PRs were merged.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
2018-11-13 16:06:50 +01:00
Michal Jerzy Wierzbicki 87dad4adc5 preproc: META_COUNT_VARARGS_BEFORE_COMPILE: bugfix for tokens starting with parenthesis not being counted
; also introduced unit tests to check the issue

Signed-off-by: Michal Jerzy Wierzbicki <michalx.wierzbicki@linux.intel.com>
2018-11-06 02:38:16 +01:00
Liam Girdwood 33e4b99351
Merge pull request #455 from mwierzbix/debugability
debugability: macro metaprogramming refactor
2018-11-02 16:00:02 +00:00
Michal Jerzy Wierzbicki b284ac32b5 debugability: Macro Metaprogramming Refactor
Added macro functions to make repetitive, nearly identical functions more maintainable via metaprogramming. They generate code in pre-compile, conceptually similar to C++17 if-constexpr.  sof/trace, host/trace: rewrote _trace_event/d+ functions using preproc.h. test/cmocka/include/test_group_generator: rewrote macros to not conflict with new ones. Added unit tests to check whether more advanced and less obvious macros do in fact work.

Signed-off-by: Michal Jerzy Wierzbicki <michalx.wierzbicki@linux.intel.com>
2018-11-02 11:44:31 +01:00
Marcin Maka d08a1e22d1 test: ut: added more stubs for trace functions
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2018-10-18 16:29:40 +02:00
ArturX Kloniecki b0150764dc debugability: Restore error traces always using mbox.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
2018-10-15 16:40:53 +02:00
Liam Girdwood 1024e946a4
Merge pull request #482 from tlauda/topic/idc-notify
notifier: support for multicore notifications
2018-10-14 20:26:14 +01:00
Tomasz Lauda d16addfe99 notifier: support for multicore notifications
Adds support for multicore notifications:
- IDC that needs to be sent to slave cores.
- Flag which tells notifier, which cores should be notified.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2018-10-11 18:13:07 +02:00
Slawomir Blauciak 246de4bd41 test: Partially fixed alloc unit tests
Unfortunately tests for buffer/runtime zones will remain broken,
might require some rework in the firmware code.
For this reason, they shall be temporarily disabled.

Signed-off-by: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>
2018-10-11 14:06:50 +02:00
Tomasz Lauda 0e92db32c1 ut: fix tests on xtensa-smp
Fixes UT on xtensa-smp architecture.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2018-10-01 16:24:22 +02:00