Hi Fabrizio, Thanks for working on that. I think your solution fixes the issue we had on atmel boards [1] in a clean way (still have to find some time to test it). On Mon, 5 Nov 2018 13:56:48 +0000 Fabrizio Castro <fabrizio.castro@xxxxxxxxxxxxxx> wrote: > @@ -441,6 +558,9 @@ static int sii902x_remove(struct i2c_client *client) > { > struct sii902x *sii902x = i2c_get_clientdata(client); > > + if (sii902x->i2cmux) > + i2c_mux_del_adapters(sii902x->i2cmux); > + Just one tiny detail: I think you can safely call i2c_mux_del_adapters() unconditionally since ->remove() will only be called if ->probe() succeeded, which guarantees that sii902x->i2cmux != NULL. > drm_bridge_remove(&sii902x->bridge); > > return 0; [1]https://patchwork.kernel.org/patch/9532005/