Calling the __i2c_smbus_xfer wrapper in __i2c_mux_smbus_xfer provides retries and thus makes the parent-locked case consistent with the both mux-locked (i2c_mux_smbus_xfer) and the I2C transfer cases. Signed-off-by: Peter Rosin <peda@xxxxxxxxxx> --- drivers/i2c/i2c-mux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c index 300ab4b672e4..221365eb7c05 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -87,8 +87,8 @@ static int __i2c_mux_smbus_xfer(struct i2c_adapter *adap, ret = muxc->select(muxc, priv->chan_id); if (ret >= 0) - ret = parent->algo->smbus_xfer(parent, addr, flags, - read_write, command, size, data); + ret = __i2c_smbus_xfer(parent, addr, flags, + read_write, command, size, data); if (muxc->deselect) muxc->deselect(muxc, priv->chan_id); -- 2.11.0