Hi Peter, On 05.01.2016 17:57, Peter Rosin wrote: > From: Peter Rosin <peda@xxxxxxxxxx> > > The initial core mux structure starts off small with only the parent > adapter pointer, which all muxes have, and a priv pointer for mux > driver private data. > > Add i2c_mux_alloc function to unify the creation of a mux. > > Where appropriate, pass around the mux core structure instead of the > parent adapter or the driver private data. > > Remove the parent adapter pointer from the driver private data for all > mux drivers. > > Signed-off-by: Peter Rosin <peda@xxxxxxxxxx> is it still under review? If yes, please find one question from me below :) [snip] > @@ -196,21 +195,21 @@ static int i2c_arbitrator_probe(struct platform_device *pdev) > dev_err(dev, "Cannot parse i2c-parent\n"); > return -EINVAL; > } > - arb->parent = of_get_i2c_adapter_by_node(parent_np); > + muxc->parent = of_find_i2c_adapter_by_node(parent_np); why do you prefer here to use "unlocked" version of API? Foe example would it be safe/possible to unload an I2C bus device driver module or unbind I2C device itself in runtime? > of_node_put(parent_np); > - if (!arb->parent) { > + if (!muxc->parent) { > dev_err(dev, "Cannot find parent bus\n"); > return -EPROBE_DEFER; > } > > /* Actually add the mux adapter */ > - arb->child = i2c_add_mux_adapter(arb->parent, dev, arb, 0, 0, 0, > + arb->child = i2c_add_mux_adapter(muxc, dev, arb, 0, 0, 0, > i2c_arbitrator_select, > i2c_arbitrator_deselect); > if (!arb->child) { > dev_err(dev, "Failed to add adapter\n"); > ret = -ENODEV; > - i2c_put_adapter(arb->parent); > + i2c_put_adapter(muxc->parent); > } > > return ret; -- With best wishes, Vladimir -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html