If the parent has an atomic callback, we need to translate it the same
way as the non-atomic callback.

Signed-off-by: Wolfram Sang <[email protected]>
---
 drivers/i2c/muxes/i2c-demux-pinctrl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c 
b/drivers/i2c/muxes/i2c-demux-pinctrl.c
index 035032e20327..5d00adfbe578 100644
--- a/drivers/i2c/muxes/i2c-demux-pinctrl.c
+++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c
@@ -99,6 +99,9 @@ static int i2c_demux_activate_master(struct 
i2c_demux_pinctrl_priv *priv, u32 ne
 
        /* Now fill out current adapter structure. cur_chan must be up to date 
*/
        priv->algo.master_xfer = i2c_demux_master_xfer;
+       /* FIXME: regular muxes need proper handling, too! */
+       if (adap->algo->master_xfer_atomic)
+               priv->algo.master_xfer_atomic = i2c_demux_master_xfer;
        priv->algo.functionality = i2c_demux_functionality;
 
        snprintf(priv->cur_adap.name, sizeof(priv->cur_adap.name),
-- 
2.11.0

Reply via email to