DW-DMA is more optimal using 32bit data size when transferring between
memories. Set configuration to always use 32 bit mode for non peripheral
copies from memory to memory.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
All GPDMA share the same irq on cannonlake, this is different with
appololake.The change is:probe GPDMA array when initilized, set the
array to the irq function; check the interrupt status of GPDMA array
in irq function, process the correct GPDMA that produces interrupt.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Add a host and link DMA driver for Intel HDA DMA gateway.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Fix the dma not stop issue for using Hardware Link List mode.
Only enable it for APL/CNL at the moment.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Host GW DMA has no callback so host component has to manually notify
DMA driver when to copy each period.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Let clients know if they can expect a callback from DMA.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Allow clients to request a particular DMA channel if supported by the DMA
driver and it's available. If requested channel is not supported by DMAC
then return another channel. If requested channel is not free then we
return an error.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Some DMACs have an array of register elements to config and control
DMA channels. Provide a mapping here so that FW can easily calculate
the correct channel offset.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This API allows clients to manually inform the DMAC when they need more
data copied. The DMAC can then copy the desired amount of data.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
For dai component, it's frame_fmt may be different with host,
we usually configure it from topology, here fix it.
Contributor: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Due to misplaced parentheses the computation gives half of correct
result and omits rounding. Currently this macro is not used by code
in SOF git repository. Developers who may use format.h macros should
check their code.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
For hardware link list mode, we also need to configure address
and config registers for the first link list, here fix it.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
On Apollolake, the interrupt number for different channels of
the same controller are different, here add implementation of
it: register interrupt handler for each channel, and don't
need check channel in its specific handler anymore.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This patch provides library build support for host platform architecture.
It enables creating separate libraries for each SOF audio component.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Use Linux checkpatch.pl to check for style problems on each commit
rather than waste time on mailing lists.
The hooks are installed by default with autogen.sh if there are
no pre-existing hooks, e.g. if a global template is used.
Commits can still be forced by using git commit -n (or --no-verify) if
you absolutely need to bypass checkpatch.pl in a work branch.
Note that both checkpatch.pl and spelling.txt are provided under
a GPL v2 license.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Add a support for a secondary boot loader than cant be used to bootstrap
multiple firmware modules.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Apollolake has reset vector in ROM and some other changes that need
configured after reset.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Apollolake and Cannonlake have some register differences in DW-DMA HW.
Add macros to support those differences.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Allow interrupts to have a parent and child relationship in order to
support nested interrupts between different HW interrupt controllers.
This patch allows child handler to be registered for secondary interrupt
controllers and allow multiple child interrupt sources to share a single
interrupt pin.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>