This patch solves the following warnings:

drivers/i2c/stm32f7_i2c.c: In function 'stm32_i2c_compute_solutions':
warning: comparison between signed and unsigned integer expressions 
[-Wsign-compare]
    if (scldel < scldel_min)
               ^
warning: comparison between signed and unsigned integer expressions 
[-Wsign-compare]
     if (((sdadel >= sdadel_min) &&
                  ^~
warning: comparison between signed and unsigned integer expressions 
[-Wsign-compare]
          (sdadel <= sdadel_max)) &&
                  ^~
drivers/i2c/stm32f7_i2c.c: In function 'stm32_i2c_choose_solution':
warning: comparison between signed and unsigned integer expressions 
[-Wsign-compare]
      if (clk_error < clk_error_prev) {
                    ^
Signed-off-by: Patrice Chotard <patrice.chot...@st.com>

Signed-off-by: Patrick Delaunay <patrick.delau...@st.com>
---

 drivers/i2c/stm32f7_i2c.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c
index 50c4fd0..2b18735 100644
--- a/drivers/i2c/stm32f7_i2c.c
+++ b/drivers/i2c/stm32f7_i2c.c
@@ -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;
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to