~canonical-hwe-team/hwe-next/+git/sof:imx-stable-v2.2

Last commit made on 2022-08-29
Get this branch:
git clone -b imx-stable-v2.2 https://git.launchpad.net/~canonical-hwe-team/hwe-next/+git/sof

Branch merges

Branch information

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

Recent commits

f627eea... by Laurentiu Mihalcea <email address hidden>

xtensa: configs: Enable comp legacy on i.MX platforms

PCM capture followed by PCM playback would not work if
done immediately (less than 2s, sof suspend timeout)

Signed-off-by: Laurentiu Mihalcea <email address hidden>

5bbbecd... by Daniel Baluta <email address hidden>

platform: imx: Set PLATFORM_DCACHE_ALIGN to 32

Ideally PLATFORM_DCACHE_ALIGN should be equal with DCACHE_LINE_SIZE,
but on i.MX dcache line size is 128 and it is too big for XTOS based
memory allocator.

See commit 8354454b4df0 ("platform: imx: Fix PLATFORM_DCACHE_ALIGN")

On the other hand the current value which is 4 doesn't work well with
Zephyr.

So, increase the PLATFORM_DCACHE_ALIGN to 32 which works well for XTOS /
Zephyr.

Signed-off-by: Daniel Baluta <email address hidden>
(cherry picked from commit 4dbfe15809c9765c1f3a7fb0f12c0e308dee32b3)

1238872... by Laurentiu Mihalcea <email address hidden>

imx: edma: Remove CSR_START register set on edma_start

The aim of this patch is to fix the following issue:
after some pause-release operations the sound would play
with higher volume in one earpiece compared to the other one.
This seemed to happen only during a certain part of some song
(the beginning).

By removing the unnecessary set of CSR_START register in
edma_start the problem seemed to have disappeared. Setting
aforementioned register in edma_start is not necessary
because we don't need to explicitly start a channel in the
software. The hardware will take care of it.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

d7c802d... by Laurentiu Mihalcea <email address hidden>

imx: sai: Handle COMP_TRIGGER_RELEASE using sai_release

Since we introduced a new function used to handle the release
case (sai_release), we want to handle COMP_TRIGGER_RELEASE
using said function and not use sai_start.

The aim of this and the previous patch is to fix the
following issue: after a sequence of pause-release operations a
static sound would play along with the song. This static sound
would sometimes disappear after another sequence of pause-release
operations and would appear again after another sequence of
those operations.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

cb50968... by Laurentiu Mihalcea <email address hidden>

imx: sai: Add new function to handle sai release case

Since the release and start operations should behave
differently, we need to add a new function which will
be used to handle the release case.

Initially, release would be treated just as start which is not
really correct because:
 1) we don't need to do a software reset of the SAI.
 (according to the documentation, apart from
 resetting the SAI internal logic, it was also
 resetting the FIFO read and write pointers which
 was not required)

 2) we don't need to enable the flags that were
 not disabled by sai_stop.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

648a3c3... by Laurentiu Mihalcea <email address hidden>

imx: sdma: Change COMP_STATE_SUSPEND into COMP_STATE_PAUSED

Currently, SDMA's edma_start considers that COMP_STATE_SUSPEND
is a state from which you can get to COMP_STATE_ACTIVE which
is not true because the SDMA channel never reaches that state.

According to the device state diagram, we can only reach
the COMP_STATE_ACTIVE state if we are currently in
COMP_STATE_PAUSED or COMP_STATE_PREPARE.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

962a399... by Laurentiu Mihalcea <email address hidden>

imx: edma: Change channel state to COMP_STATE_PREPARE

On COMP_TRIGGER_RELEASE, dai_trigger first calls edma_release and then
calls edma_start. Currently, edma_release changes the state of the
channel to COMP_STATE_ACTIVE which is wrong because that state
should be achieved after calling edma_start.

Since we know that edma_release is followed by edma_start the
correct state for the channel after a edma_release should
be COMP_STATE_PREPARE.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

8a33768... by Laurentiu Mihalcea <email address hidden>

imx: edma: Change COMP_STATE_SUSPEND into COMP_STATE_PAUSED

Currently, EDMA's edma_start considers that COMP_STATE_SUSPEND
is a state from which you can get to COMP_STATE_ACTIVE which
is not true because the EDMA channel never reaches that state.

According to the device state diagram, we can only reach
the COMP_STATE_ACTIVE state if we are currently in
COMP_STATE_PAUSED or COMP_STATE_PREPARE.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

63643e3... by Laurentiu Mihalcea <email address hidden>

topology1: Add new i.MX topology for PCM capture using compress API

We add a new i.MX8MP topology which will use the compress API for PCM
capture. This topology is mainly used for testing.

Signed-off-by: Laurentiu Mihalcea <email address hidden>

98b4491... by Laurentiu Mihalcea <email address hidden>

topology1: Add new i.MX topology for PCM playback using compress API

We add a new i.MX8MP topology which will use the compress API for PCM
playback. This topology is mainly used for testing.

Signed-off-by: Laurentiu Mihalcea <email address hidden>