Re: [PATCH] i2c: pasemi: Wait for write xfers to finish

Wolfram Sang
2022-04-15T21:12:54Z

[-- Attachment #1: Type: text/plain, Size: 1045 bytes --]

On Tue, Mar 29, 2022 at 08:38:17PM +0200, Martin Povišer wrote:
> Wait for completion of write transfers before returning from the driver.
> At first sight it may seem advantageous to leave write transfers queued
> for the controller to carry out on its own time, but there's a couple of
> issues with it:
>
> * Driver doesn't check for FIFO space.
>
> * The queued writes can complete while the driver is in its I2C read
> transfer path which means it will get confused by the raising of
> XEN (the 'transaction ended' signal). This can cause a spurious
> ENODATA error due to premature reading of the MRXFIFO register.
>
> Adding the wait fixes some unreliability issues with the driver. There's
> some efficiency cost to it (especially with pasemi_smb_waitready doing
> its polling), but that will be alleviated once the driver receives
> interrupt support.
>
> Fixes: beb58aa39e6e ("i2c: PA Semi SMBus driver")
> Signed-off-by: Martin Povišer <povik+lin@cutebit.org>

Applied to for-current, thanks!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]