ipc: intel_adsp: fix inverted sync wait condition
The synchronous send helper intel_adsp_ipc_send_message_sync() had
inverted logic for determining when to wait for host acknowledgment.
Before this fix, the function would:
- Return immediately (without waiting) when send succeeded (ret == 0)
- Try to wait on semaphore when send failed (ret < 0)
This is backwards. The correct behavior is to wait for the host ACK
semaphore only when the message was successfully queued for
transmission.
The inverted logic caused multiple test failures:
- HDA tests received -EBUSY on subsequent sends because tx_ack_pending
remained true when no wait occurred
- Smoke IPC tests timed out waiting for msg_flag/done_flag because
messages were sent without waiting for host responses
- Clock calibration tests failed because timestamp responses were never
received
This aligns the SoC glue implementation with the test-local helper
implementations and restores the original pre-refactoring behavior.
Related to: #102103
Related to: #102106
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
1 file changed