diff options
author | Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com> | 2018-01-31 14:47:11 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-02-01 08:05:49 -0500 |
commit | 31f044bd91df58bed6bb8cfadfc187eedac1442e (patch) | |
tree | 6ec2b974d9b6c14666e9b743d5078a6f5b0ab050 /env/mmc.c | |
parent | 42a1820bbcc7dfedcf625b88a1013c11e9ef6709 (diff) | |
download | u-boot-31f044bd91df58bed6bb8cfadfc187eedac1442e.tar.gz |
env: move more common code to env_import_redund
There is more common code in mmc, nand and ubi env drivers that
can be shared by moving to env_import_redund.
For this, a status/error value whether the buffers were loaded
are passed as additional parameters to env_import_redund.
Ideally, these are already returned to the env driver by the
storage driver. This is the case for mmc, nand and ubi, so for
this change, code deduplicated.
Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'env/mmc.c')
-rw-r--r-- | env/mmc.c | 23 |
1 files changed, 2 insertions, 21 deletions
@@ -290,27 +290,8 @@ static int env_mmc_load(void) read1_fail = read_env(mmc, CONFIG_ENV_SIZE, offset1, tmp_env1); read2_fail = read_env(mmc, CONFIG_ENV_SIZE, offset2, tmp_env2); - if (read1_fail && read2_fail) - puts("*** Error - No Valid Environment Area found\n"); - else if (read1_fail || read2_fail) - puts("*** Warning - some problems detected " - "reading environment; recovered successfully\n"); - - if (read1_fail && read2_fail) { - errmsg = "!bad CRC"; - ret = -EIO; - goto fini; - } else if (!read1_fail && read2_fail) { - gd->env_valid = ENV_VALID; - env_import((char *)tmp_env1, 1); - } else if (read1_fail && !read2_fail) { - gd->env_valid = ENV_REDUND; - env_import((char *)tmp_env2, 1); - } else { - env_import_redund((char *)tmp_env1, (char *)tmp_env2); - } - - ret = 0; + ret = env_import_redund((char *)tmp_env1, read1_fail, (char *)tmp_env2, + read2_fail); fini: fini_mmc_for_env(mmc); |