env_sf: factor out prepare_flash_device

copy&paste code found in single/double buffered code path

Signed-off-by: Andreas Fenkart <afenkart@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagan Teki <jagan@openedev.com>
Tested-by: Jagan Teki <jagan@openedev.com>
master
Andreas Fenkart 7 years ago committed by Jagan Teki
parent ac6991fb5f
commit afa81a7750
  1. 48
      common/env_sf.c

@ -45,15 +45,11 @@ char *env_name_spec = "SPI Flash";
static struct spi_flash *env_flash; static struct spi_flash *env_flash;
#if defined(CONFIG_ENV_OFFSET_REDUND) static int setup_flash_device(void)
int saveenv(void)
{ {
env_t env_new;
char *saved_buffer = NULL, flag = OBSOLETE_FLAG;
u32 saved_size, saved_offset, sector = 1;
int ret;
#ifdef CONFIG_DM_SPI_FLASH #ifdef CONFIG_DM_SPI_FLASH
struct udevice *new; struct udevice *new;
int ret;
/* speed and mode will be read from DT */ /* speed and mode will be read from DT */
ret = spi_flash_probe_bus_cs(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS, ret = spi_flash_probe_bus_cs(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS,
@ -76,6 +72,20 @@ int saveenv(void)
} }
} }
#endif #endif
return 0;
}
#if defined(CONFIG_ENV_OFFSET_REDUND)
int saveenv(void)
{
env_t env_new;
char *saved_buffer = NULL, flag = OBSOLETE_FLAG;
u32 saved_size, saved_offset, sector = 1;
int ret;
ret = setup_flash_device();
if (ret)
return ret;
ret = env_export(&env_new); ret = env_export(&env_new);
if (ret) if (ret)
@ -242,30 +252,10 @@ int saveenv(void)
char *saved_buffer = NULL; char *saved_buffer = NULL;
int ret = 1; int ret = 1;
env_t env_new; env_t env_new;
#ifdef CONFIG_DM_SPI_FLASH
struct udevice *new;
/* speed and mode will be read from DT */ ret = setup_flash_device();
ret = spi_flash_probe_bus_cs(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS, if (ret)
0, 0, &new); return ret;
if (ret) {
set_default_env("!spi_flash_probe_bus_cs() failed");
return 1;
}
env_flash = dev_get_uclass_priv(new);
#else
if (!env_flash) {
env_flash = spi_flash_probe(CONFIG_ENV_SPI_BUS,
CONFIG_ENV_SPI_CS,
CONFIG_ENV_SPI_MAX_HZ, CONFIG_ENV_SPI_MODE);
if (!env_flash) {
set_default_env("!spi_flash_probe() failed");
return 1;
}
}
#endif
/* Is the sector larger than the env (i.e. embedded) */ /* Is the sector larger than the env (i.e. embedded) */
if (CONFIG_ENV_SECT_SIZE > CONFIG_ENV_SIZE) { if (CONFIG_ENV_SECT_SIZE > CONFIG_ENV_SIZE) {

Loading…
Cancel
Save