At the end of the DMA, we need to set the channel status into
parapre, otherwise next dma start will fail.
This will fix APL pause resume issues.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
--
Test with:
Mininow max rt5651 and GP-MRB nocodec
SOF master: 728f1ff3e3
SOF-Tool master: 5b5bbe31e6https://github.com/plbossart/sound/tree/topic/sof-v4.14:
fe5e29155127a717ba5ae454b4bdde99afa67723
This patch fixes the bug with volume ramp down which causes volume
to underflow causing unspecified behaviour.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Clean up SSPSP bits to make SSP output follow ALSA ASoC definition
of all I2S/DSP_A/DSP_B/LEFT_J modes.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
The channel numbers of playback and capture are reversed on CNL.
The channel number of playback is 9.
The channel number of capture is 7.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
Work queue cannot work rightly because it uses wrong timer setting.
Based on Keyon's comments, use SSP CLK intead of CPU CLK.
It is confirmed on my CNL platform.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
detected with sonarcloud: fix pointer test and avoid
redundant evaluation of lli as always true.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Detected with sonarcloud: test evaluates as always true.
Make sure both volume and switch are handled correctly
Fixes: 43e86cab60 ('volume: fix logic for volume mute/unmute')
Cc: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
missing assignment of 'ret' variable, fix
Detected with sonarcloud.
Fixes: 4252c49d53 ('pipeline: Add XRUN state and handler within pipeline')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The optimization assumes that sub-filters have length that is multiple
of four. The int24 Q1.23 format filter coefficients are replaced by
int32 Q1.31 format coefficients due to better match with Xtensa HiFi2
EP and and HiFi3 fractional types.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch moves generic common code to src.c/h from src_core.c/h and
places generic C optimized filter to src_generic.c. The HiFi EP
version is in src_hifi2ep.c and HiFi3 version is in src_hifi3.c. Use of
the Xtensa optimized versions require xt-xcc compiler.
The non-used SRC in/out rates query code is removed. The 24 bit
coefficients were replaced by 32 bit coefficients those are compatible
with Xtensa fractional integer types.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The src_width and dest_width are configured already in Bytes,
here fix it, otherwise 24/32 bit copying with hda-dma may have
problem.
Reported-by: Zhigang Wu <zhigang.wu@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
All other platforms use RZONE_SYS, not sure why CannonLake
should be any different.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The directions configured in sg_elem are actually dma transfer type,
not playback/capture direction, here correct them.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
rmalloc should also check the buffer heap if no capable memory can be
found in the runtime heap.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add memeory window for stream region. And position offset binding for
component. Replace IPC position update with memory window update.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add stream region memory window into sof_ipc_window used for position
update.
For APL and CNL, we got a 1 page space for stream region.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add sof_ipc_window for all platforms, and add IPC send after boot
compelted. Also remove the deprecated ready window.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Currently memory heap pools are statically defined in the allocator core
and don't define the capabilities of the memory in each pool.
This patch adds support for different memory capabilities so that users
can allocate memory that complies with any capability requirements for
requested memory.
The patch also moves the memory heap pool mappings to platform specific
code so that platforms can define their own mappings, support multiple
mappings and can move the mappings into different physical memory areas.
mappings
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a sanity check to make sure that data/rodata contains expected values
otherwise this can cause unpredictable behaviour that is difficult to
later diagnose.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Compiler cannot check the real type of "void*" pointer.
It is easy to cause pointer conversion error.
So use the pointer of element list of struct dma_sg_elem instead
of void* pointer.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
The actual text size will change and the hard code base_fw_text_size_fixup
could not fit the changing size. We should get the fixup size from the
module info just from the memory mapping.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Add total text size we used in memory mapping into module info to
help rimage build the right FW binary.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Liam's previous patch modify the structure variable from instance to
pointer. So it is unnecessary to use "&".
This parameter of parse_page_descriptors() is "void*", so complier
doesn't find this error.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>