lkml.org 
[lkml]   [2020]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 3/3] i2c: imx: Don't generate STOP condition if arbitration has been lost
    On Fri, Oct 02, 2020 at 05:23:05PM +0200, Christian Eggers wrote:
    > 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>
    > Cc: stable@vger.kernel.org # Requires trivial backporting, simple remove
    > # the 3rd argument from the calls to
    > # i2c_imx_bus_busy().
    > ---
    > drivers/i2c/busses/i2c-imx.c | 12 ++++++++++--
    > 1 file changed, 10 insertions(+), 2 deletions(-)
    >

    Tested (not extensively) on Vybrid VF500 (Toradex VF50):
    Tested-by: Krzysztof Kozlowski <krzk@kernel.org>

    The I2C on Vybrid VF500 still works fine (also bigger transfers). I did
    not test this actual condition (arbitration) but only a regular I2C
    driver (BQ27xxx fuel gauge). Obviously this only proves that regular
    operation is not broken...

    Best regards,
    Krzysztof

    \
     
     \ /
      Last update: 2020-10-05 10:17    [W:2.482 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site