|
|
@@ -310,12 +310,18 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
|
|
|
else
|
|
|
priv->algo.master_xfer = __i2c_mux_master_xfer;
|
|
|
}
|
|
|
+ if (parent->algo->master_xfer_atomic)
|
|
|
+ priv->algo.master_xfer_atomic = priv->algo.master_xfer;
|
|
|
+
|
|
|
if (parent->algo->smbus_xfer) {
|
|
|
if (muxc->mux_locked)
|
|
|
priv->algo.smbus_xfer = i2c_mux_smbus_xfer;
|
|
|
else
|
|
|
priv->algo.smbus_xfer = __i2c_mux_smbus_xfer;
|
|
|
}
|
|
|
+ if (parent->algo->smbus_xfer_atomic)
|
|
|
+ priv->algo.smbus_xfer_atomic = priv->algo.smbus_xfer;
|
|
|
+
|
|
|
priv->algo.functionality = i2c_mux_functionality;
|
|
|
|
|
|
/* Now fill out new adapter structure */
|