]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/i2c/muxes/i2c-demux-pinctrl.c
Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-5.2
[linux.git] / drivers / i2c / muxes / i2c-demux-pinctrl.c
index 035032e203276e96b27dd57770f47af98ee5146f..4eecffc265275ede52ba0c890cb27d416f550390 100644 (file)
@@ -99,6 +99,8 @@ 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;
+       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),
@@ -219,8 +221,8 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       priv = devm_kzalloc(&pdev->dev, sizeof(*priv)
-                          + num_chan * sizeof(struct i2c_demux_pinctrl_chan), GFP_KERNEL);
+       priv = devm_kzalloc(&pdev->dev, struct_size(priv, chan, num_chan),
+                           GFP_KERNEL);
 
        props = devm_kcalloc(&pdev->dev, num_chan, sizeof(*props), GFP_KERNEL);