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 <p...@axentia.se>
---
 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

Reply via email to