Hi,
The IPC4 use of doorbell registers leaves some corner cases not well defined and the 'correct sequences' are subjective in a sense. The DSP doorbell registers are used as separate and independent channels and the sequences for host -> DSP -> host (reply) can be racy.
For example: The ACKing of a received message can happen before the firmware sends the reply or it can as well happen after the reply has been sent and received by the host. Both can be considered 'correct sequences' but they need different handling.
This series will allow the kernel to service any interpretation of the sequencing on the firmware side.
Regards, Peter --- Peter Ujfalusi (4): ASoC: SOF: ipc4: Log the tx message before sending it ASoC: SOF: Intel: ipc4: Read the interrupt reason registers at the same time ASoC: SOF: Intel: ipc4: Wait for channel to be free before sending a message ASoC: SOF: Intel: ipc4: Ack a received reply or notification separately
sound/soc/sof/intel/cnl.c | 26 ++++++++++++++++++++++---- sound/soc/sof/intel/hda-ipc.c | 27 +++++++++++++++++++++++---- sound/soc/sof/intel/hda.c | 11 +++++++++++ sound/soc/sof/intel/hda.h | 9 +++++++++ sound/soc/sof/intel/mtl.c | 24 +++++++++++++++++++++--- sound/soc/sof/ipc4.c | 4 ++-- 6 files changed, 88 insertions(+), 13 deletions(-)