bf008c1...
by
Laurentiu Mihalcea <email address hidden>
src: drivers: imx: ipc.c: Don't assert GIR twice
According to MU's documentation from the i.MX TRM, setting
the GIRn bit to 1 if already 1 may lead to issuing a second interrupt.
This leads to kernel errors such as:
"reply size (16) exceeds the buffer size (12)"
because of the fact that the MU IRQ is triggered prematurely and
the firmware doesn't have enough time to write the reply. As such,
the host will read the message it has sent to the firmware instead
of its reply.
To fix this, make sure that GIRn is set to 0 before setting it 1.
and because `struct audio_stream` is part of `struct comp_buffer`
we see an increase of `struct comp_buffer` size from 256 to 384.
With this modification, i.MX mixer use case goes out of memory:
c0 dma-trace src/lib/alloc.c:765 ERROR failed to alloc 0x180 bytes zone 0x4 caps 0x1 flags 0x0
c0 dma-trace src/audio/buffer.c:51 ERROR buffer_alloc(): could not alloc structure
This is not ideal. Anyhow, it was necessary for new source/sink API.
Fix this by increasing the number of 512-byte heap blocks to 32.
Signed-off-by: Daniel Baluta <email address hidden>
d03ebad...
by
Seppo Ingalsuo <email address hidden>
Audio: Mux: Fix mistake in frames count handling
The source frames count need to be checked from every
active input_buffers[n].size). Similarly in consuming the
source buffers it needs to be updated to every
mod->input_buffers[n].consumed.
Fixes: #7308
Fixes: c399624 ("Audio: Mux: Convert mux and demux to module adapter")
Signed-off-by: Seppo Ingalsuo <email address hidden>
(cherry picked from commit afd86e08081835b16c960713ae2f44ffd3654ecb)
Signed-off-by: Kai Vehmanen <email address hidden>
audio: buffer: do not mix cached and non-cached access in buffer_alloc
No reason to mix cached and noncached operations when
initializing the buffer in buffer_alloc(). We take a cached
reference, so let's use that to initialize the object.
Signed-off-by: Kai Vehmanen <email address hidden>
(cherry picked from commit a209cbd31f9a1a85c21568d12566c4220d573c00)
b69bf48...
by
Adrian Bonislawski <email address hidden>
dai-zephyr: possible division-by-zero if max_block_count is zero
If the max_block_count attribute is zero, this may lead to
division by zero error. Handle this explicitly but reporting
error if max_block_count is zero.
Signed-off-by: Adrian Bonislawski <email address hidden>
dffedba...
by
Andrey Borisovich <email address hidden>
ipc4: fixed possible null dereference
Result of the function call ipc_get_comp_by_id() had been dereferenced
without checking whether the pointer may be null.
Returned pointer may be null when component does not exist on the
list.
topology2: dmic-generic.conf: Rename "DMIC" PCM name to "DMIC Raw"
Rename "DMIC" PCM name to "DMIC Raw" in the generic dmic topology fragment.
The PCM is on the DMIC patch without any processing beyond gain and IIR EQ,
thus the "Raw" extension.
topology2: cavs-nocodec.conf: Rename ssp-capture and DMIC0 Raw PCMs
Rename cavs-nocodec capture PCMs. The current PCM names are confusing. These
should be better names for them. The former
"ssp-capture" is now "Port0 2nd Capture",
"DMIC0 Raw" is now "DMIC SFX1", and
"DMIC0 Raw 2" is now "DMIC SFX2".
The PCMs in question have extra gains in the path to simulate processing.
Also the mixer name is changed to compensate for the matching "Capture"
substring in the end of the PCM name, that is part of the mixer name,
to avoid "Capture Capture" tautology.