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>
hpsram_mask passed to power_down procedure was improperly initialized
on CNL which lead to infinite loop waiting to power gate hpsram banks
that were not present.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
missing 2 in DAI_ADD() macro. This seems to be the only place where this
typo/mistake happens
we really need a parameter checker or move away from M4...
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
filter out modprobe log if module is not in tree
also add missing codecs (rt5682 and wm8804) and reorder codec list
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Use new block types added to describe memory for
a platform as an array of zones. The block type
will be an index into the array.
A memory zone is described by (base, size, host_offset).
With this map we can now easily find for a given section
in which memory zone it belongs.
Because we have 10 zones reserved this patch will allocate
extra 12 * 10 = 120 bytes that are not used yet.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Change the name of the enums to reflect the type
of memory where the given block will be loaded.
DATA section is mapped to DRAM, TEXT section is mapped to
SRAM. No ABI breakage.
We also reserve several slots for future use.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Nocodec machine driver adds all the BE dai links with
ID's linearly incrementing from 0. So the link ID
should match with the SSP dai index.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Aligns linked list items to 32 bytes to not cross
cache line in case of having more than two items.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Take over ownership of drivers/dw, platform/suecreek and some other Sue
Creek related files.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Tracing functions can sleep on some platforms, remove them out of
spin-lock protected areas, even though sometimes that can produce
inconsistent output. Since dw_dma_stop() can be called from an
atomic context, use a non-sleeping tracing function.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
On some versions of the DesignWare DMA controller IP the peripheral
ID field in CFG_HI is split into two parts. Fix this for Sue Creek,
other platforms will have to verify that field too.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Fixed flow issue in which channels would be invalid number
and being later used to stop dma. When freeing
stream that have not even started FW tried to stop dma
which should not be the case since it was not started.
Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>