~canonical-hwe-team/hwe-next/+git/sof:imx-stable-v1.6

Last commit made on 2020-12-18
Get this branch:
git clone -b imx-stable-v1.6 https://git.launchpad.net/~canonical-hwe-team/hwe-next/+git/sof

Branch merges

Branch information

Name:
imx-stable-v1.6
Repository:
lp:~canonical-hwe-team/hwe-next/+git/sof

Recent commits

849a878... by Iuliana Prodan <email address hidden> on 2020-12-16

schedule: dma_multi_chan: fix null pointer when scanning for tasks

When scanning all channels for a certain task we end up comparing
with a null task.
That's because we have multiple channels (e.g. 32 for i.MX) but only
some of them are used in certain scenarios. For example, for simultaneous
playback/capture we use only 2 DMA channels.
To fix this, validate task before using it.

Fixes #3690
Fixes: 647390f75e6a ("schedule: dma_multi_chan: fix a DMA channel interrupt race")

Signed-off-by: Daniel Baluta <email address hidden>
Signed-off-by: Iuliana Prodan <email address hidden>

dfd39b2... by Daniel Baluta <email address hidden> on 2020-11-23

drivers: imx: sai: Use rate from topology

So far we only used topologies with rate set
to 48KHz. This is no longer true now when
we enabled KWD pipelines.

So, use rate from parameters passed from kernel.

Signed-off-by: Daniel Baluta <email address hidden>

8431774... by Daniel Baluta <email address hidden> on 2020-11-23

ipc: dai: Align sof_ipc_dai_sai_params with kernel

We add fsync_rate, bclk_rate because now we
actually need them.

Also, notice that mclk_rate was moved near the other rates
fields.

I think this was broken from the beginning but didn't
show up as a bug because SAI is used in consumer mode
and the clock is provided by the codec.

Signed-off-by: Daniel Baluta <email address hidden>

4fdc9ff... by Daniel Baluta <email address hidden> on 2020-11-23

drivers: imx: sai: Add SAI private data

We allocate SAI private data to save config and
parameters and use them later.

Signed-off-by: Daniel Baluta <email address hidden>

81e242f... by Daniel Baluta <email address hidden> on 2020-11-10

topology: imx8: Introduce topology demonstrating mixer component

This works with i.MX8QXP / i.MX8QM boards with wm8960 codecs. Loading
this component will create one sound card with two subdevices.

Samples pushed two the two subdevices are mixed and send to SAI1 and
then to wm8960 codec.

Signed-off-by: Daniel Baluta <email address hidden>

2ca1ac5... by Daniel Baluta <email address hidden> on 2020-11-11

platform: imx: Fix PLATFORM_DCACHE_ALIGN

At this point PLATFORM_DCACHE_ALIGN is equal with DCACHE_LINE_SIZE
which on i.MX boards is 128.

Functions like rmalloc and rzalloc are allocating memory aligned at
PLATFORM_DCACHE_ALIGN bytes. This means that blocks under 128 bytes
are not really used and blocks sized > 128 are preffered for small
allocations.

This seems to be an unnecessary overhead which results in SOF not
being abel to allocate memory for simple pipelines (e.g simple
pipeline with a mixer).

For this reason, we set PLATFORM_DCACHE_ALIGN to a smaller value
(sizeof(void*)) but keep HEAP_BUF_ALIGNMENT unchanged.

Signed-off-by: Daniel Baluta <email address hidden>

e55fa1f... by Daniel Baluta <email address hidden> on 2020-10-20

drivers: imx: sai: Make sure Tx/Rx is disabled at stop

TE/RE bit will remain set until the end of current frame. So,
for example, even if we set TE to 0 the transmitter will still be
enabled until the end of current frame.

This can have unexpected results when quickly restarting a channel.
Signed-off-by: Daniel Baluta <email address hidden>

7fd3315... by Daniel Baluta <email address hidden> on 2020-10-27

drivers: imx: sdma: Fix SDMA watermark

After experiments I found that current SDMA watermark
causes SDMA to miss SAI DMA requests.

The empirical value was chosen so that watermark is a
divisor of min(bd_count, fifo watermark).

Of course this needs to be revisited, but for now "it just works" (tm).

Signed-off-by: Daniel Baluta <email address hidden>

a01e42d... by Daniel Baluta <email address hidden> on 2020-10-26

drivers: imx: sdma: Cleanup event handling

For handling events we only needs an enable/disable functionalities.
Setting up an event (that means reading the event number and saving
it in dma_pdata is already done at config time).

So, this patch just introduces:
 * smda_enable_event
 * sdma_disable_event

and removes existing sdma_clear_event and sdma_set_event.

Signed-off-by: Daniel Baluta <email address hidden>

732c6c5... by Daniel Baluta <email address hidden> on 2020-10-26

drivers: imx: sdma: Cleanup sdma_set_event

Do not touch overrides values in sdma_set_event as they are properly
set at config time.

Signed-off-by: Daniel Baluta <email address hidden>