i2c: stm32f7_i2c: Fix warnings when compiling with W=1
[oweals/u-boot.git] / drivers / i2c / stm32f7_i2c.c
index 50c4fd0de23ab7e8d54ab918a65336a2a56adc99..2b18735fea6b470c02d15a1e804dab335fb14934 100644 (file)
@@ -519,13 +519,13 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup,
        /* Compute possible values for PRESC, SCLDEL and SDADEL */
        for (p = 0; p < STM32_PRESC_MAX; p++) {
                for (l = 0; l < STM32_SCLDEL_MAX; l++) {
-                       u32 scldel = (l + 1) * (p + 1) * i2cclk;
+                       int scldel = (l + 1) * (p + 1) * i2cclk;
 
                        if (scldel < scldel_min)
                                continue;
 
                        for (a = 0; a < STM32_SDADEL_MAX; a++) {
-                               u32 sdadel = (a * (p + 1) + 1) * i2cclk;
+                               int sdadel = (a * (p + 1) + 1) * i2cclk;
 
                                if (((sdadel >= sdadel_min) &&
                                     (sdadel <= sdadel_max)) &&
@@ -613,10 +613,12 @@ static int stm32_i2c_choose_solution(struct stm32_i2c_setup *setup,
                                if ((tscl >= clk_min) && (tscl <= clk_max) &&
                                    (tscl_h >= i2c_specs[setup->speed].h_min) &&
                                    (i2cclk < tscl_h)) {
-                                       int clk_error = tscl - i2cbus;
+                                       u32 clk_error;
 
-                                       if (clk_error < 0)
-                                               clk_error = -clk_error;
+                                       if (tscl > i2cbus)
+                                               clk_error = tscl - i2cbus;
+                                       else
+                                               clk_error = i2cbus - tscl;
 
                                        if (clk_error < clk_error_prev) {
                                                clk_error_prev = clk_error;