Commit 61e6fe5
i2c: imx: Don't generate STOP condition if arbitration has been lost
If arbitration is lost, the master automatically changes to slave mode.
I2SR_IBB may or may not be reset by hardware. Raising a STOP condition
by resetting I2CR_MSTA has no effect and will not clear I2SR_IBB.
So calling i2c_imx_bus_busy() is not required and would busy-wait until
timeout.
Signed-off-by: Christian Eggers <ceggers@arri.de>
Tested (not extensively) on Vybrid VF500 (Toradex VF50):
Tested-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: stable@vger.kernel.org # Requires trivial backporting, simple remove
# the 3rd argument from the calls to
# i2c_imx_bus_busy().
Signed-off-by: Wolfram Sang <wsa@kernel.org>1 parent 1de67a3 commit 61e6fe5
1 file changed
Lines changed: 10 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
615 | 615 | | |
616 | 616 | | |
617 | 617 | | |
| 618 | + | |
| 619 | + | |
618 | 620 | | |
619 | 621 | | |
620 | 622 | | |
| |||
778 | 780 | | |
779 | 781 | | |
780 | 782 | | |
| 783 | + | |
| 784 | + | |
781 | 785 | | |
782 | 786 | | |
783 | | - | |
| 787 | + | |
| 788 | + | |
784 | 789 | | |
785 | 790 | | |
786 | 791 | | |
| |||
905 | 910 | | |
906 | 911 | | |
907 | 912 | | |
| 913 | + | |
| 914 | + | |
908 | 915 | | |
909 | 916 | | |
910 | | - | |
| 917 | + | |
| 918 | + | |
911 | 919 | | |
912 | 920 | | |
913 | 921 | | |
| |||
0 commit comments