Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: Add a struct device * parameter to i2c_add_mux_adapter()

And adjust all callers.

The new device parameter is used in the next patch to initialize the
mux's of_node so that its children may be automatically populated.

Signed-off-by: David Daney <david.daney@cavium.com>
Tested-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>

authored by

David Daney and committed by
Wolfram Sang
5a3ecd5f d9afca37

+17 -13
+10 -9
drivers/i2c/i2c-mux.c
··· 31 31 struct i2c_algorithm algo; 32 32 33 33 struct i2c_adapter *parent; 34 - void *mux_dev; /* the mux chip/device */ 34 + void *mux_priv; /* the mux chip/device */ 35 35 u32 chan_id; /* the channel id */ 36 36 37 - int (*select)(struct i2c_adapter *, void *mux_dev, u32 chan_id); 38 - int (*deselect)(struct i2c_adapter *, void *mux_dev, u32 chan_id); 37 + int (*select)(struct i2c_adapter *, void *mux_priv, u32 chan_id); 38 + int (*deselect)(struct i2c_adapter *, void *mux_priv, u32 chan_id); 39 39 }; 40 40 41 41 static int i2c_mux_master_xfer(struct i2c_adapter *adap, ··· 47 47 48 48 /* Switch to the right mux port and perform the transfer. */ 49 49 50 - ret = priv->select(parent, priv->mux_dev, priv->chan_id); 50 + ret = priv->select(parent, priv->mux_priv, priv->chan_id); 51 51 if (ret >= 0) 52 52 ret = parent->algo->master_xfer(parent, msgs, num); 53 53 if (priv->deselect) 54 - priv->deselect(parent, priv->mux_dev, priv->chan_id); 54 + priv->deselect(parent, priv->mux_priv, priv->chan_id); 55 55 56 56 return ret; 57 57 } ··· 67 67 68 68 /* Select the right mux port and perform the transfer. */ 69 69 70 - ret = priv->select(parent, priv->mux_dev, priv->chan_id); 70 + ret = priv->select(parent, priv->mux_priv, priv->chan_id); 71 71 if (ret >= 0) 72 72 ret = parent->algo->smbus_xfer(parent, addr, flags, 73 73 read_write, command, size, data); 74 74 if (priv->deselect) 75 - priv->deselect(parent, priv->mux_dev, priv->chan_id); 75 + priv->deselect(parent, priv->mux_priv, priv->chan_id); 76 76 77 77 return ret; 78 78 } ··· 87 87 } 88 88 89 89 struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent, 90 - void *mux_dev, u32 force_nr, u32 chan_id, 90 + struct device *mux_dev, 91 + void *mux_priv, u32 force_nr, u32 chan_id, 91 92 int (*select) (struct i2c_adapter *, 92 93 void *, u32), 93 94 int (*deselect) (struct i2c_adapter *, ··· 103 102 104 103 /* Set up private adapter data */ 105 104 priv->parent = parent; 106 - priv->mux_dev = mux_dev; 105 + priv->mux_priv = mux_priv; 107 106 priv->chan_id = chan_id; 108 107 priv->select = select; 109 108 priv->deselect = deselect;
+2 -1
drivers/i2c/muxes/gpio-i2cmux.c
··· 105 105 for (i = 0; i < pdata->n_values; i++) { 106 106 u32 nr = pdata->base_nr ? (pdata->base_nr + i) : 0; 107 107 108 - mux->adap[i] = i2c_add_mux_adapter(parent, mux, nr, i, 108 + mux->adap[i] = i2c_add_mux_adapter(parent, &pdev->dev, mux, 109 + nr, i, 109 110 gpiomux_select, deselect); 110 111 if (!mux->adap[i]) { 111 112 ret = -ENODEV;
+2 -1
drivers/i2c/muxes/pca9541.c
··· 353 353 force = 0; 354 354 if (pdata) 355 355 force = pdata->modes[0].adap_id; 356 - data->mux_adap = i2c_add_mux_adapter(adap, client, force, 0, 356 + data->mux_adap = i2c_add_mux_adapter(adap, &client->dev, client, 357 + force, 0, 357 358 pca9541_select_chan, 358 359 pca9541_release_chan); 359 360
+1 -1
drivers/i2c/muxes/pca954x.c
··· 226 226 } 227 227 228 228 data->virt_adaps[num] = 229 - i2c_add_mux_adapter(adap, client, 229 + i2c_add_mux_adapter(adap, &client->dev, client, 230 230 force, num, pca954x_select_chan, 231 231 (pdata && pdata->modes[num].deselect_on_exit) 232 232 ? pca954x_deselect_mux : NULL);
+2 -1
include/linux/i2c-mux.h
··· 34 34 * mux control. 35 35 */ 36 36 struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent, 37 - void *mux_dev, u32 force_nr, u32 chan_id, 37 + struct device *mux_dev, 38 + void *mux_priv, u32 force_nr, u32 chan_id, 38 39 int (*select) (struct i2c_adapter *, 39 40 void *mux_dev, u32 chan_id), 40 41 int (*deselect) (struct i2c_adapter *,