It is better to have some sort of timeout handling while waiting for the
DMA transfer of the library from host.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Drop the log level to tr_dbg for printing the library_base_address and
print it only if the allocation was successful.
Allocation error will print an error.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
If lib_manager_store_data() fails to read the rest of the library we need
to free up the allocated memory.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Don't overwrite flags when mapping virtual memory and don't map
data for execution.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
HDA DMA for host to DSP transfers should be started once on the
host and then once on the DSP, it shouldn't be restarted
multiple times during transfer.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
There is no need to use local variable in the loop when checking the
progression of the DMA.
Read the DMA status right after start as the DMA might already copied the
data.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Update the memory allocation and cache handling.
Allocate comp_driver and comp_driver_info as uncached to
align with other drivers.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
No need to dynamically allocate memory for DMA block configuration,
it can be placed on stack.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The range of lib_id is only valid for loadable libraries in a range of
1 - MAX_LIBS (15)
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Parse the PCM headers and save the PCM info along with the host
component associated with the PCM.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add an option to parse and save the routes from topology so that the
IPCs can be sent at a later time.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Enables extraction and injection probes for MTL platform.
NOTE: this commit does NOT enable probe log backend.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Both extraction and injection probes require to subscribe to buffer
produce notification. Hence notification subscription logic should be
enabled for both types of probes.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Probe module subscribes to buffer produce notifications in order to
perform data extraction or injection. Hence this fix is required to
enable probe feature.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
comp_update_buffer_consume() and comp_update_buffer_produce() generate
too much log output. Usually such amount of logs results in many log
messages been dropped. It is also results in significant CPU load if
selected log backend formats log messages at runtime.
This patch adds a separate switch to enable these logs only when necessary.
Default value is 'n'.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
This patch ports probe component to use zephyr native drivers.
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Memory windows is set on zephyr side, so remove it and also remove
xsram_window for memory windows to save memory since it is not used
by ipc4.
Signed-off-by: Rander Wang <rander.wang@intel.com>
remove remap support from mixin process, there is no usecase
for remap for now, in future, if there is a need, we can add it back.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
The default values should be "passthrough" since the pipeline
mixout-gain-efx-dai-copier-playback.conf applies them this way:
IncludeByKey.EFX_FIR_PARAMS {
"passthrough" "include/components/eqfir/passthrough.conf"
}
And IIR similarly.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch makes similar change to pipeline as done earlier
for mixout-gain-dai-copier-playback.conf. The 24/32 bit formats
are deleted as unnecessacy. The audio format definition for
DRC is changed to similar style as for copier and gain.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds DRC component to EFX pipeline. The DRC is very
useful for speaker output to enhance loudness and reduce
speaker distortion in loud playback.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Follows after:
214f98378 ("smart amp : Do not use DYNAMIC topology")
which makes DYNAMIC undefined during smart amp tplg pipeline pcm/dai config due
to the use of volatile Kcontrols.
This commit applies the same on sof-eq-iir-dts-codec-smart-amplifier.m4 which
is used for (DTS + smart amp) projects.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Fix multicore test issue on cavs platforms which don't support context
save now, so need to init cpu when the core boot up.
Signed-off-by: Rander Wang <rander.wang@intel.com>
With Zephyr commit cc5763344709 ("Build system: disable
`OUTPUT_DISASSEMBLY` by default"), generation of zephyr.lst
is disabled by default.
Enable disassembly generation in SOF configuration as it is expected by
SOF builds rules for reproducible builds.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Dell SKU0C87 devices have below config:
SDW0: RT714 DMIC
SDW1: RT1318 Speaker
SDW2: RT1318 Speaker
Add topology support in this patch for Dell SKU0C87 devices.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Before HOST can request FW to enter D3 state, has to stop all pipelines.
If it's done properly all possible source of IPC messages from FW to
HOST are disabled.
The only exception from this is logger. If logs are enabled FW will
continue to produce new traces and eventually trigger threshold
notification.
This notification is not critical so we can skip it during D3 entry. The
message will remain in the internal list and will be sent when the DSP
wakes up.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
This patch adds build of tplg1 development topologies
sof-tgl-nocodec-crossover-2way.tplg
sof-tgl-nocodec-crossover-4way.tplg
The tplg2 development topology version is
sof-tgl-nocodec-crossover-2way.tplg
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Extend the definitions for struct tplg_context and struct tplg_comp_info
to include the fields to parse the ipc_payload and audio format
information from topology.
Also, add the logic for parsing the input/output audio formats from the
topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
add peak mcps counter to indicate which period have max mcps.
Also changed sample_cnt to period_cnt to make name more sense.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
The script example_crossover.m is converted to export 2, 3, and 4
way crossover configurations for tplg1 and tplg2.
The crossover parameters like number of sinks, pipeline ids of
sinks, sample rate, and band limits are added to generate blob
filenames.
The changes include fixes for running the script with Matlab in
addition to Octave.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
In some error situations the configuration init_data may be NULL, and
in such a situations we should fail gracefully and not crash. Also adds
check that the IPC message is of correct type and for IPC3 only that it
is of correct type.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
After commit f639fc8e88 ("copier: rename parent_dev to dev") FW for MTL
platform is not building. This should be detected as merge conflict but it
went unnoticed.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>