]> git.karo-electronics.de Git - linux-beck.git/commitdiff
i2c: designware: retry transfer on transient failure
authorBaruch Siach <baruch@tkos.co.il>
Wed, 23 Dec 2015 16:43:24 +0000 (18:43 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Sun, 10 Jan 2016 08:24:56 +0000 (09:24 +0100)
Set the i2c_adapter retries field to a sensible value. This allows the i2c core
to retry master_xfer() when it returns -EAGAIN. Currently the i2c-designware
driver returns -EAGAIN only on Tx arbitration failure (DW_IC_TX_ARB_LOST).

Reported-by: Rolland Chau <zourongrong@gmail.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-designware-core.c

index 8c48b27ba05975e51a40ddaab979e7b23302e3e0..8055cbd4cba1adb9618d4d5a9f48e470fbf49728 100644 (file)
@@ -854,6 +854,7 @@ int i2c_dw_probe(struct dw_i2c_dev *dev)
 
        snprintf(adap->name, sizeof(adap->name),
                 "Synopsys DesignWare I2C adapter");
+       adap->retries = 3;
        adap->algo = &i2c_dw_algo;
        adap->dev.parent = dev->dev;
        i2c_set_adapdata(adap, dev);