diff options
author | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2019-04-03 14:40:11 +0200 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2019-04-16 13:08:12 +0200 |
commit | 7168bff2cfd710293bda52eab4036582c89e07fc (patch) | |
tree | 2cadf90c762ede420d10bc097cd50b17314ed205 | |
parent | i2c: core: introduce callbacks for atomic transfers (diff) | |
download | linux-7168bff2cfd710293bda52eab4036582c89e07fc.tar.xz linux-7168bff2cfd710293bda52eab4036582c89e07fc.zip |
i2c: mux: populate the new *_atomic callbacks
If the parent adapter has atomic_xfer callbacks, populate them for the
mux adapter as well. We can use the same translation function as for the
non-atomic xfer callback.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Peter Rosin <peda@axentia.se>
Reviewed-by Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
-rw-r--r-- | drivers/i2c/i2c-mux.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c index f330690b4125..603252fa1284 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -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 */ |