On Tue, Feb 07, 2017 at 09:41:22PM -0500, Chris Brandt wrote: > This fixes the condition where the controller has not fully completed its > final transfer and leaves the bus and controller in a undesirable state. > > At the end of the last transmitted byte, the existing driver would just > signal for a STOP condition to be transmitted then immediately signal > completion. However, the full STOP procedure might not have fully taken > place by the time the runtime PM shuts off the peripheral clock, leaving > the bus in a suspended state. > > Alternatively, the STOP condition on the bus may have completed, but when > the next transaction is requested by the upper layer, not all the > necessary register cleanup was finished from the last transfer which made > the driver return BUS BUSY when it really wasn't. > > This patch now makes all transmit and receive transactions wait for the > STOP condition to fully complete before signaling a completed transaction. > With this new method, runtime PM no longer seems to be an issue. > > Fixes: 310c18a41450 ("i2c: riic: add driver") > Signed-off-by: Chris Brandt <chris.brandt@xxxxxxxxxxx> Reviewed-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> Applied to for-next, thanks!
Attachment:
signature.asc
Description: PGP signature