diff options
author | Peter Rosin <peda@axentia.se> | 2016-09-14 13:24:12 (GMT) |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2016-09-21 21:10:21 (GMT) |
commit | 463e8f845cbf1c01e4cc8aeef1703212991d8e1e (patch) | |
tree | dfa5cfe2776a77298702dc819d83a5d623e0138f | |
parent | 371a015344b6e270e7e3632107d9554ec6d27a6b (diff) | |
download | linux-463e8f845cbf1c01e4cc8aeef1703212991d8e1e.tar.xz |
i2c: mux: pca954x: retry updating the mux selection on failure
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>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
-rw-r--r-- | drivers/i2c/muxes/i2c-mux-pca954x.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c index 528e755..3278ebf 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; |