diff --git a/drivers/i2c/busses/i2c-designware-common.c b/drivers/i2c/busses/i2c-designware-common.c index a4efb891da9fa..2eb5cba21ffb4 100644 --- a/drivers/i2c/busses/i2c-designware-common.c +++ b/drivers/i2c/busses/i2c-designware-common.c @@ -949,18 +949,18 @@ int i2c_dw_probe(struct dw_i2c_dev *dev) if (ret) return ret; - if (!dev->sda_hold_time) - dev->sda_hold_time = dev->fs_lcnt / 2; - - ret = i2c_dw_set_sda_hold(dev); + ret = i2c_dw_set_fifo_size(dev); if (ret) return ret; - ret = i2c_dw_set_fifo_size(dev); + ret = i2c_dw_probe_master(dev); if (ret) return ret; - ret = i2c_dw_probe_master(dev); + if (!dev->sda_hold_time) + dev->sda_hold_time = dev->fs_lcnt / 2; + + ret = i2c_dw_set_sda_hold(dev); if (ret) return ret;