Let's enable this capability, with CAVS_1_5 left out for now since there
are known issues with suspend-resume on Up2 board that were never
root-caused.
Enabling this at the firmware level is not enough, this capability
need to be enabled by kernel patches in
https://github.com/thesofproject/linux/pull/3340
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
All SSP drivers handle COMP_TRIGGER_RELEASE and COMP_TRIGGER_START in
the same way. Similarly sai.c handles COMP_TRIGGER_PAUSE and
COMP_TRIGGER_STOP identically. This patch joins those flows.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
mm_pm_context_save() and mm_pm_context_restore() are never used,
remove them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
.dma_pm_context_store and .dma_pm_context_restore DMA operations are
never used, remove them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
.pm_context_store and .pm_context_restore DAI operations are never
used, remove them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
COMP_TRIGGER_* values are internal to SOF, they aren't a part of an
API, their numeric values are unimportant. Convert them to an enum to
make removing deprecated and adding new values easier.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
COMP_TRIGGER_SUSPEND and COMP_TRIGGER_RESUME are never issues, remove
them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
In order to ease porting algorithm to SOF, it is convenient to have
stubs for some operating system function.
Those stubs are not meant to be called.
Signed-off-by: Lionel Koenig <lionelk@google.com>
The fewer macros, the better.
Commit 1758279623 ("perf: make trace part of perf counting
configurable") provided no specific rationale for using macros. It did
not explain why it passed some ignored arguments either - renamed
accordingly.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Rename the codec_free() function to module_free() and remove an
unnecessary pair of braces from the function. No functional change.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The interface will be common for all processing modules not just the
codecs. So rename struct codec_interface to struct module_interface.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
In 8186 mtk dsp (hifi5), we meet a system exception when irq is rasied.
The panic is LoadStoreAlignmentCause.
We found the problem is in int-xxx-dispatcher.S
mov a11, a1
addi a11, a11, UEXC_cp1
xchal_cp1_store a11, a12, a13, a14, a15
In xchal_cp1_store macro, ptr must a certain byte aligned address
In the 8186 mtk dsp Xtensa header, we have
/*
* Macro to store the state of TIE coprocessor AudioEngineLX.
* Required parameters:
* ptr Save area pointer address register (clobbered)
* (register must contain a 16 byte aligned address).
* at1..at4 Four temporary address registers (first XCHAL_CP1_NUM_ATMPS
* registers are clobbered, the remaining are unused).
* Optional parameters are the same as for xchal_ncp_store.
*/
.macro xchal_cp1_store ptr at1 at2 at3 at4 continue=0 ofs=-1 select=XTHAL_SAS_ALL alloc=0
In xtruntime-frames.h, the UEXC_cp1 macro is
STRUCT_AFIELD (long,4,UEXC_,cp1, XCHAL_CP1_SA_SIZE / 4)
I have checked history and found the original UEXC_cp1 define is using STRUCT_AFIELD.
(After 3e1eebe)
In 8186 mtk dsp, we need 16 aligned address in xchal_cp1_store using STRUCT_AFIELD_A
with XCHAL_TOTAL_SA_ALIGN.
Introduce a new component to perform acoustic echo cancellation
on capture path using a buffer from the playback as a reference.
1. Put the google_rtc_audio_processing at
$SOF_REPO/third_party_libraries
- libgoogle_rtc_audio_processing.a
- libgoogle_rtc_audio_processing_tuning.a
- libc++.a (Corresponding stdlibc++)
- libc++abi.a
2. Put the header in $SOF_REPO/third_party_includes
- google_rtc_audio_processing.h
3. Build firmware and tool with xcc
4. To verify it works:
- aplay some speech
- At the same time arecord the mic which uses AEC
The mic signal should not exhibit any echo from the playback.
Signed-off-by: Lionel Koenig <lionelk@google.com>
When built with Zephyr, SOF ideally should be a fully platform-
agnostic application. All platform-specific code should reside in
Zephyr itself, including core architecture and platform
infrastructures and drivers. To prepare for this transition we add a
generic SOF-Zephyr platform. It is based on the current Tiger Lake
architecture and should be usable for cAVS 2.5 and newer systems.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
used only for rare cases where two pipelines are connected by a shared
buffer and 2 copiers, this will set source format only for shared buffers
for a short time when the second pipeline already started
and the first one is not ready yet along with sink buffers params
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Implement set_freq callback function to set dsp clock, dsp clock source
can be 26M(13/26M) or ADSPPLL(370/540/720M) for different use cases,
default support is 720MHz.
Signed-off-by: YC Hung <yc.hung@mediatek.com>
scheduler_free_ll() function should invoke domain_unregister()
in case when SOF_SCHEDULER_FREE_IRQ_ONLY flag is used, because
in timer domain case, timer_domain_unregister() function
unregisters timer interrupts.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
The audio_stream_read/write_frag_s16/s32() functions usage and
sample-by-sample copying are replaced by more efficient block
memcpy() operations.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The audio_stream_read_frag_s16/s32() functions usage and
sample-by-sample copying are replaced by more efficient block
memcpy() operations.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The audio_stream_write_frag_s16/s32() functions usage and
sample-by-sample copying are replaced by block memcpy()
operations.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>