Hi, thanks for improving this driver! > +static void pca954x_reset_mux(struct pca954x *data) > +{ > + dev_warn(&data->client->dev, "resetting the device\n"); To me, this is not the proper place for such a report. Can't the reset framework be instrumented in some way? > + pca954x_reset_assert(data); > + udelay(1); > + pca954x_reset_deassert(data); > +} > + > static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) > { > struct pca954x *data = i2c_mux_priv(muxc); > @@ -328,6 +348,8 @@ static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) > ret = pca954x_reg_write(muxc->parent, client, regval); > data->last_chan = ret < 0 ? 0 : regval; > } > + if (ret == -ETIMEDOUT && (data->reset_cont)) Braces around 'data...' not needed. Use '--strict' with checkpatch to get notified. > + pca954x_reset_mux(data); > > return ret; > } > - return pca954x_reg_write(muxc->parent, client, > + ret = pca954x_reg_write(muxc->parent, client, > data->last_chan); Indentation of the above line needs to be adapted. Rest looks good to me. Happy hacking, Wolfram