
As determined by experimentation and asking a hardware person, the FIFO in the Cadence IP is actually only 8 entries long, not 32. This is fixed in patch #1.
As a bonus, patches #2 and #3 fix two other things I noticed while debugging this.
Changes since v1: - Rewrite commit message of patch #1 - Only reduce response_buf to 34 (32 + 2) - Trim RX_FIFO_AVAIL to length of response_buf instead of expected FIFO size
Richard Fitzgerald (3): soundwire: cadence: Don't overflow the command FIFOs soundwire: cadence: Remove wasted space in response_buf soundwire: cadence: Drain the RX FIFO after an IO timeout
drivers/soundwire/cadence_master.c | 46 +++++++++++++++++++----------- drivers/soundwire/cadence_master.h | 13 ++++++++- 2 files changed, 41 insertions(+), 18 deletions(-)