Merge branch 'master' of git://git.denx.de/u-boot-socfpga
[oweals/u-boot.git] / drivers / i2c / stm32f7_i2c.c
index 3872364d6bf59454cc26b5f19fdb0629c2c13c8d..50c4fd0de23ab7e8d54ab918a65336a2a56adc99 100644 (file)
@@ -500,7 +500,7 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup,
        af_delay_max = setup->analog_filter ?
                       STM32_I2C_ANALOG_FILTER_DELAY_MAX : 0;
 
-       sdadel_min = setup->fall_time - i2c_specs[setup->speed].hddat_min -
+       sdadel_min = i2c_specs[setup->speed].hddat_min + setup->fall_time -
                     af_delay_min - (setup->dnf + 3) * i2cclk;
 
        sdadel_max = i2c_specs[setup->speed].vddat_max - setup->rise_time -
@@ -540,8 +540,12 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup,
                                        p_prev = p;
 
                                        list_add_tail(&v->node, solutions);
+                                       break;
                                }
                        }
+
+                       if (p_prev == p)
+                               break;
                }
        }