diff options
author | Nicolas Le Bayon <nicolas.le.bayon@st.com> | 2019-03-06 18:12:32 +0300 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2019-03-20 19:59:05 +0300 |
commit | 0d7350316a2a773254cd261daa8d3f2c4dd38610 (patch) | |
tree | 9d9416a508c9b04434bf2bffbca6687e79d3ac58 /drivers/i2c/busses/i2c-stm32f7.c | |
parent | c62ebb3d5f0d0e9dafe990c9ce680ca9b46fd4c1 (diff) | |
download | linux-0d7350316a2a773254cd261daa8d3f2c4dd38610.tar.xz |
i2c: i2c-stm32f7: improve loopback in timing algorithm
This avoids useless loops inside the I2C timing algorithm.
Actually, we support only one possible solution per prescaler value.
So after finding a solution with a prescaler, the algorithm can
switch directly to the next prescaler value.
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Bich Hemon <bich.hemon@st.com>
Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c/busses/i2c-stm32f7.c')
-rw-r--r-- | drivers/i2c/busses/i2c-stm32f7.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c index 4284fc991cfd..48337bef5b87 100644 --- a/drivers/i2c/busses/i2c-stm32f7.c +++ b/drivers/i2c/busses/i2c-stm32f7.c @@ -476,8 +476,12 @@ static int stm32f7_i2c_compute_timing(struct stm32f7_i2c_dev *i2c_dev, list_add_tail(&v->node, &solutions); + break; } } + + if (p_prev == p) + break; } } |