board: atmel: fix pda variable not being reset
authorEugen Hristev <eugen.hristev@microchip.com>
Wed, 12 Jun 2019 10:16:18 +0000 (13:16 +0300)
committerEugen Hristev <eugen.hristev@microchip.com>
Thu, 27 Jun 2019 06:47:49 +0000 (09:47 +0300)
In case someone detects a PDA and u-boot sets the 'pda' variable,
and the user does a saveenv, the pda is set in env, and if the
screen is removed, u-boot will still have in the env the 'pda'
variable, even if no screen is attached.
In order to fix this, we have to reset the 'pda' variable,
such that it's not just set if the screen is detected, but also unset
if no screen is detected.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
board/atmel/common/board.c

index fc300a4210bdde3ec98ecb49888f4c770d13f5b0..20c3b8c086d73c79697b0621f4b2abf5fb426c67 100644 (file)
@@ -29,7 +29,7 @@ void at91_pda_detect(void)
 
        ret = w1_get_bus(AT91_PDA_EEPROM_DEFAULT_BUS, &bus);
        if (ret)
-               return;
+               goto pda_detect_err;
 
        for (device_find_first_child(bus, &dev);
             dev;
@@ -41,7 +41,7 @@ void at91_pda_detect(void)
                        ret = w1_eeprom_read_buf(dev, AT91_PDA_EEPROM_ID_OFFSET,
                                                 (u8 *)buf, AT91_PDA_EEPROM_ID_LENGTH);
                        if (ret)
-                               return;
+                               goto pda_detect_err;
                        break;
                }
        }
@@ -61,6 +61,8 @@ void at91_pda_detect(void)
                printf("PDA TM5000 detected\n");
                break;
        }
+
+pda_detect_err:
        env_set("pda", (const char *)buf);
 }
 #else