android_kernel_oneplus_msm8998/drivers/i2c
Adamski, Krzysztof (Nokia - PL/Wroclaw) 0d997e1635 i2c-axxia: check for error conditions first
[ Upstream commit 4f5c85fe3a60ace555d09898166af372547f97fc ]

It was observed that when using seqentional mode contrary to the
documentation, the SS bit (which is supposed to only be set if
automatic/sequence command completed normally), is sometimes set
together with NA (NAK in address phase) causing transfer to falsely be
considered successful.

My assumption is that this does not happen during manual mode since the
controller is stopping its work the moment it sets NA/ND bit in status
register. This is not the case in Automatic/Sequentional mode where it
is still working to send STOP condition and the actual status we get
depends on the time when the ISR is run.

This patch changes the order of checking status bits in ISR - error
conditions are checked first and only if none of them occurred, the
transfer may be considered successful. This is required to introduce
using of sequentional mode in next patch.

Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-02-20 10:13:09 +01:00
..
algos i2c: algo-pca: fix typo in comment 2015-06-01 08:41:19 +09:00
busses i2c-axxia: check for error conditions first 2019-02-20 10:13:09 +01:00
muxes i2c: mux: fix up dependencies 2016-11-26 09:54:52 +01:00
i2c-boardinfo.c i2c: remove __init from i2c_register_board_info() 2018-02-25 11:03:48 +01:00
i2c-core.c i2c: print correct device invalid address 2017-01-19 20:17:20 +01:00
i2c-core.h
i2c-dev.c i2c: dev: prevent adapter retries and timeout being set as minus value 2019-01-16 22:16:12 +01:00
i2c-mux.c i2c: add ACPI support for I2C mux ports 2015-10-25 15:49:46 +01:00
i2c-slave-eeprom.c i2c: Drop owner assignment from i2c_driver 2015-08-10 08:37:35 +02:00
i2c-smbus.c i2c: smbus: fix typo in commet 2015-06-01 08:41:26 +09:00
i2c-stub.c
Kconfig i2c: mux: fix up dependencies 2016-11-26 09:54:52 +01:00
Makefile