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 <[email protected]>Reviewed-by: Wolfram Sang <[email protected]> Applied to for-next, thanks!
signature.asc
Description: PGP signature
