]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ti: common: Remove additional i2c read for board detection
authorMichal Simek <michal.simek@xilinx.com>
Thu, 27 Aug 2020 13:43:48 +0000 (15:43 +0200)
committerLokesh Vutla <lokeshvutla@ti.com>
Mon, 31 Aug 2020 09:10:28 +0000 (14:40 +0530)
There shouldn't be a need to call additional i2c read if above failed
already. Based on comment it should be enough to try to detect legacy
boards which are mentioned in the comment.

Fixes: 2463f6728e82 ("ti: common: board_detect: Allow DM I2C without CONFIG_DM_I2C_COMPAT")
Fixes: 0bea813d0018 ("ARM: omap-common: Add standard access for board description EEPROM")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
board/ti/common/board_detect.c

index e09ecda4d7e68d456065a2426b5963f1dfffc103..8b3b4bc825392df0333854d60b5af9262834e747 100644 (file)
@@ -113,18 +113,15 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
 
        /* Corrupted data??? */
        if (hdr_read != header) {
-               rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
                /*
                 * read the eeprom header using i2c again, but use only a
                 * 1 byte address (some legacy boards need this..)
                 */
-               if (rc) {
-                       rc =  i2c_set_chip_offset_len(dev, 1);
-                       if (rc)
-                               return rc;
+               rc = i2c_set_chip_offset_len(dev, 1);
+               if (rc)
+                       return rc;
 
-                       rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
-               }
+               rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
                if (rc)
                        return rc;
        }
@@ -153,16 +150,13 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
 
        /* Corrupted data??? */
        if (hdr_read != header) {
-               rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read, 4);
                /*
                 * read the eeprom header using i2c again, but use only a
                 * 1 byte address (some legacy boards need this..)
                 */
                byte = 1;
-               if (rc) {
-                       rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read,
-                                     4);
-               }
+               rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read,
+                             4);
                if (rc)
                        return rc;
        }