Cache was invalidated in improper order, which led to using rubbish
data on slave core during pipeline trigger start.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
On BDW, DMA trace doesn't update trace log to host.
platform_timer_start function would set up some registers
for HW and make timer ready. On BDW, cpu timer is used to
driver work queue while on other platforms, external timer
is used. we don't need to enable timer interrupt now or it
will trigger unexpect interrupt which would make scheduler
in unknown status. timer_enable function would enable it
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Check for prepare state in dai_params. It allows for
configuring multiple host pipelines connected to one
dai pipeline e.g. mixer topology.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
After commit 425aa5e917 ("ipc: Add support for creating pipelines
dynamically") the prototype of init_static_pipeline function has
changed.
Use the correct prototype to call init_static_pipline to avoid
compilation failure when STATIC_PIPE is defined.
Fixes: 425aa5e917 ("ipc: Add support for creating pipelines dynamically")
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Move large functions from src/include/sof/wait.h to src/lib/wait.c to
avoid building them multiple times.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Move large functions from src/arch/xtensa/include/arch/task.h to
src/arch/xtensa/smp/init.c to avoid building them multiple times.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Many functions in src/include/sof/panic.h are too large to be inlined
and repeated every time the header is included. Move them out to
src/lib/panic.c
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
src/arch/xtensa/smp/include/arch/idc.h has way too much code for a
header, it is included by platform/idc.h on various platforms, and
that header in turn is included by bultiple .c files, which builds
the code multiple times into the firmware. Move it to a C file.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Changes flow to trigger only current pipeline.
Stops on meeting component from the other pipeline.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
(1) set PSP according to APL
(2) we don't need to decrease one for TFT&RFT because
SSCR1_TFT and SSCR1_RFT do this.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
When setting sar & dar registers in GP DMA, src address
and dest address should be masked for DMA engine to
identify memory space.
On BDW, the memory address in dsp is composed by 6 hex-number
like 0xABCDEF, and the address on BYT is a style of 0xFFABCDEF.
So it is correct on BYT even without mask.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Enables copy of connected pipelines if the pipelines
were set to have the same scheduling component.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Moves xtos_exc_handler_table to bss for SMP arch.
It's modified at runtime, so shouldn't be kept
in data, which is supposed to be read-only.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Add topology for WHL with RT5682. This will be merged with
sof-cml-rt5682 in the future to avoid maintaining 2 files
with just the difference in SSP port numbers.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The CML board has the rt5682 connected to SSP0 and the
machine driver defines the dai link for the headset
with the name "SSP0-codec" too. So change the topology
file accordingly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
On i.MX we have only two software interrupts available. One is used
as PLATFORM_SCHEDULER_IRQ and the other one for PLATFORM_IRQ_TASK_HIGH.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This patch adds three configuration profiles DMIC_FIR_LOW_MEMORY,
DMIC_FIR_FULL, and DMIC_FIR_CUSTOM.
The first is recommended for systems with need for only 48 kHz
and 16 kHz sample rates support with default 2.4 MHz microphone
clock. It can work with some other configurations also but if
driver rejects are seen for desired parameters the full or custom
configuration should be used.
The full configuration includes all defined FIR coefficients for
all supported decimation factors to support several rates between
8 - 96 kHz.
Custom set allows to select all decimation factors separately.
The rename of CONFIG_DMIC to CONFIG_CAVS_DMIC caused update need
to platform defconfig files and memory configuration header files.
There are no other changes but the macro rename for them.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
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>
Adds helper function for easier processing of wrapped buffer.
Processing modules should switch to this function instead of
directly using read and write pointers of buffer.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
Adds currently used dma_buffer to dai_data.
Now it's much easier to get buffer and also it's aligned
with what is done for host component.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
HDaudio support was missing, along with a slew of codecs
Also add a log on module insertion
Tested on Up2 with HDMI&PCM512x, and CHT w/ rt5645
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>