I2c-mux channels are created as mux siblings while they should be children of the mux itself. Fix it. Signed-off-by: Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> Suggested-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> --- Hello, while inspecting child nodes of an i2c adapter it has been noted that child devices of an i2c-mux are listed as children of the i2c adapter itself, and not of the i2c-mux. The hierarchy of devices looked like -- i2c-04 --- eeprom@57 --- video_receiver@70 --- video_receiver@34 --- gmsl-deserializer@0 <-- MUX --- gmsl-deserializer@0/i2c@0 <-- MUX CHANNEL It now looks like -- i2c-04 --- eeprom@57 --- video_receiver@70 --- video_receiver@34 --- gmsl-deserializer@0 ---- gmsl-deserializer@0/i2c@0 v1 -> v2: - change commit message as suggested by Geert drivers/i2c/i2c-mux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c index 83768e8..37b7804 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -324,7 +324,7 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc, priv->adap.owner = THIS_MODULE; priv->adap.algo = &priv->algo; priv->adap.algo_data = priv; - priv->adap.dev.parent = &parent->dev; + priv->adap.dev.parent = muxc->dev; priv->adap.retries = parent->retries; priv->adap.timeout = parent->timeout; priv->adap.quirks = parent->quirks; -- 2.7.4