linux-stable/drivers/soundwire
Pierre-Louis Bossart db9d9f944f soundwire: cadence: fix ACK/NAK handling
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.

Fixes: 956baa1992 ('soundwire: cdns: Add sdw_master_ops and IO transfer support')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210115053738.22630-5-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2021-01-19 20:27:34 +05:30
..
bus.c soundwire: bus: add more details to track failed transfers 2021-01-19 20:27:34 +05:30
bus.h soundwire: bus: add enumerated Slave device to device list 2020-09-28 11:17:40 +05:30
bus_type.c soundwire: bus: add enumerated Slave device to device list 2020-09-28 11:17:40 +05:30
cadence_master.c soundwire: cadence: fix ACK/NAK handling 2021-01-19 20:27:34 +05:30
cadence_master.h soundwire: cadence: fix race condition between suspend and Slave device alerts 2020-09-09 13:14:42 +05:30
debugfs.c soundwire: debugfs: use controller id instead of link_id 2021-01-19 20:21:21 +05:30
generic_bandwidth_allocation.c soundwire: remove an unnecessary NULL check 2020-09-23 15:34:48 +05:30
intel.c soundwire: intel: don't return error when clock stop failed 2021-01-19 20:21:21 +05:30
intel.h soundwire: intel: pass link_mask information to each master 2020-09-03 16:14:39 +05:30
intel_init.c soundwire: intel_init: use FIELD_{GET|PREP} 2020-09-04 14:46:42 +05:30
Kconfig soundwire: Add generic bandwidth allocation algorithm 2020-09-18 17:48:51 +05:30
Makefile soundwire: Add generic bandwidth allocation algorithm 2020-09-18 17:48:51 +05:30
master.c soundwire: master: use pm_runtime_set_active() on add 2020-12-02 12:49:34 +05:30
mipi_disco.c soundwire: fix port_ready[] dynamic allocation in mipi_disco 2020-09-03 16:02:29 +05:30
qcom.c soundwire: qcom: Fix build failure when slimbus is module 2020-11-26 09:55:07 +05:30
slave.c soundwire: use consistent format for Slave devID logs 2021-01-19 20:27:34 +05:30
stream.c soundwire updates for 5.10-rc1 2020-10-01 22:59:55 +02:00
sysfs_local.h soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30
sysfs_slave.c soundwire: sysfs: Constify static struct attribute_group 2021-01-19 20:21:20 +05:30
sysfs_slave_dpn.c soundwire: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute 2020-11-24 14:08:51 +05:30