The existing code reports a NAK only when ACK=0 This is not aligned with the SoundWire 1.x specifications.
Table 32 in the SoundWire 1.2 specification shows that a Device shall not set NAK=1 if ACK=1. But Table 33 shows the Combined Response may very well be NAK=1/ACK=1, e.g. if another Device than the one addressed reports a parity error.
NAK=1 signals a 'Command_Aborted', regardless of the ACK bit value.
Move the tests for NAK so that the NAK=1/ACK=1 combination is properly detected according to the specification.
Also, improve the demesg log to get more information for debugging.
Bard Liao (1): soundwire: bus: add more details to track failed transfers
Pierre-Louis Bossart (4): soundwire: use consistent format for Slave devID logs soundwire: cadence: add status in dev_dbg 'State change' log soundwire: cadence: fix ACK/NAK handling soundwire: cadence: adjust verbosity in response handling
drivers/soundwire/bus.c | 11 ++++++----- drivers/soundwire/cadence_master.c | 29 +++++++++++++++-------------- drivers/soundwire/slave.c | 10 ++++------ 3 files changed, 25 insertions(+), 25 deletions(-)