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@xxxxxxxxxxx> Applied to for-current, thanks!
Attachment:
signature.asc
Description: PGP signature