diff options
author | Simon Glass <sjg@chromium.org> | 2017-08-03 12:22:02 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-08-15 20:50:27 -0400 |
commit | 7938822a6b75b69fff9793b6b1769dddf1249525 (patch) | |
tree | 10eacede3b5e5e51bac424bd54036dedb97c4d8f /env/env.c | |
parent | e5bce247b01ae057f05cc80178f0df28ec1d27a7 (diff) | |
download | u-boot-7938822a6b75b69fff9793b6b1769dddf1249525.tar.gz |
env: Drop common init() functions
Most of the init() implementations just use the default environment.
Adjust env_init_new() to do this automatically, and drop the redundant
code.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'env/env.c')
-rw-r--r-- | env/env.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -128,14 +128,18 @@ int env_save(void) int env_init_new(void) { struct env_driver *drv = env_driver_lookup_default(); - int ret; + int ret = -ENOENT; if (!drv) return -ENODEV; - if (!drv->init) - return -ENOSYS; - ret = drv->init(); - if (ret) { + if (drv->init) + ret = drv->init(); + if (ret == -ENOENT) { + gd->env_addr = (ulong)&default_environment[0]; + gd->env_valid = 0; + + return 0; + } else if (ret) { debug("%s: Environment failed to init (err=%d)\n", __func__, ret); return ret; |