7b18e54...
by
Liam Girdwood <email address hidden>
pm: send IPC on PM power off completion.
Send command completion IPC after powedown completes instead of before
power off completes. This allows host to know that DSP is in OFF state
prior to driver PM actions.
dai: recovery dai buffer and dma pointer for none-init start
For none-init first trigger start, need to recovery buffer state and set
the dma pointer as pause/release did.
This will allow ALSA STOP/START recovery pattern work now.
ebd3ada...
by
Liam Girdwood <email address hidden>
cmocka: host: Make sure cmocka builds and runs for host test bench
Fix some build issues with cmocka for host test bench target so that
cmocka UTs can run native on host architecture. This makes it easy for
users to update UTs when APIs change as they dont need architecture
specific version of cmocka.
6b253f0...
by
Liam Girdwood <email address hidden>
scheduler: check task state prior to completion
High priority IRQ handlers can potentially reschedule tasks prior to task
completion. i.e.
1. Task runs and unmasks high priority IRQ prior to completion.
2. High priority IRQ prempts task context and reschedules task (changing
task->state).
3. Initial task resumes and then completes (clobbering task->state in 2).
Make sure this flow is supported for high priority IRQ scheduling.
4f58fdb...
by
Ranjani Sridharan <email address hidden>
scheduler: allow RUNNING tasks to be re-scheduled in the future.
Because of a race condition between when the DONE interrupt
is sent to the host and when the previous ipc task's
state is updated to COMPLETED, new ipc's from the host
could end up not being scheduled. This leads to ipc
time outs on the host.
In order to prevent this, this patch introduces a new task state
called PENDING which is assigned to the task when it is picked
as the next task to be run. The state is then updated to running
when the task function is executed. This way when a ipc task
comes in, a RUNNING task could get scheduled again and assigned
the PENDING state to ensure that it doesnt get missed.
23da635...
by
Liam Girdwood <email address hidden>
ipc: abi: Make sure we pass all IPC data to client APIs.
Make sure we pass the entirety of IPC data between FW and host by
using the raw buffer for client APIs and the local copy for local
ABI safe instrospection & validation.
Make sure this works both ways and add a max_data_size argument to
comp_cmd() API in order for client API's to to overflow the return buffer.