Message ID | 1473859452-8069-1-git-send-email-peda@axentia.se |
---|---|
State | Accepted |
Headers | show |
On Wed, Sep 14, 2016 at 03:24:12PM +0200, Peter Rosin wrote: > The cached value of the last selected channel prevents retries on the > next call, even on failure to update the selected channel. Fix that. > > Signed-off-by: Peter Rosin <peda@axentia.se> Looks good. Is this 4.8 material or rather 4.9?
[Resend, with lists added back...] On 2016-09-15 21:52, Wolfram Sang wrote: > On Wed, Sep 14, 2016 at 03:24:12PM +0200, Peter Rosin wrote: >> The cached value of the last selected channel prevents retries on the >> next call, even on failure to update the selected channel. Fix that. >> >> Signed-off-by: Peter Rosin <peda@axentia.se> > > Looks good. Is this 4.8 material or rather 4.9? I have no real-world event or report backing the change, but it is simple enough and fixes problems that are potentially very hard to detect/reproduce. Certainly fodder for 4.8 and probably stable as well (if you care). But no biggie, so personally I don't mind if you wait until 4.9, but then again I don't depend on the driver... Cheers, Peter -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Sep 14, 2016 at 03:24:12PM +0200, Peter Rosin wrote: > The cached value of the last selected channel prevents retries on the > next call, even on failure to update the selected channel. Fix that. > > Signed-off-by: Peter Rosin <peda@axentia.se> Applied to for-current and added stable, thanks!
diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c index 528e755c468f..3278ebf1cc5c 100644 --- a/drivers/i2c/muxes/i2c-mux-pca954x.c +++ b/drivers/i2c/muxes/i2c-mux-pca954x.c @@ -164,7 +164,7 @@ static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) /* Only select the channel if its different from the last channel */ if (data->last_chan != regval) { ret = pca954x_reg_write(muxc->parent, client, regval); - data->last_chan = regval; + data->last_chan = ret ? 0 : regval; } return ret;
The cached value of the last selected channel prevents retries on the next call, even on failure to update the selected channel. Fix that. Signed-off-by: Peter Rosin <peda@axentia.se> --- drivers/i2c/muxes/i2c-mux-pca954x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)