diff options
author | Patrick Georgi <pgeorgi@google.com> | 2017-10-05 17:32:43 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2017-10-06 16:59:20 +0000 |
commit | cba7316c2662ee1c916345b034ca08dad43984f7 (patch) | |
tree | 3a41c6c78ff9d0d1a67328c2f8cd336dd80ea205 /src/soc/intel/common/vbt.c | |
parent | c1ef5c1752cc440f4436968e54f8dd79f638951e (diff) | |
download | coreboot-cba7316c2662ee1c916345b034ca08dad43984f7.tar.xz |
soc/intel/common: refactor locate_vbt
All callers of locate_vbt just care about the file content and
immediately map the rdev for its content.
Instead of repeating this in all call sites, move that code to
locate_vbt.
Change-Id: I5b518e6c959437bd8f393269db7955358a786719
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/21896
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/common/vbt.c')
-rw-r--r-- | src/soc/intel/common/vbt.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/soc/intel/common/vbt.c b/src/soc/intel/common/vbt.c index e3360dcf83..c36f797c9b 100644 --- a/src/soc/intel/common/vbt.c +++ b/src/soc/intel/common/vbt.c @@ -28,7 +28,7 @@ const char *mainboard_vbt_filename(void) return "vbt.bin"; } -enum cb_err locate_vbt(struct region_device *rdev) +void *locate_vbt(struct region_device *rdev) { uint32_t vbtsig = 0; struct cbfsf file_desc; @@ -37,7 +37,7 @@ enum cb_err locate_vbt(struct region_device *rdev) if (cbfs_boot_locate(&file_desc, filename, NULL) < 0) { printk(BIOS_ERR, "Could not locate a VBT file in in CBFS\n"); - return CB_ERR; + return NULL; } cbfs_file_data(rdev, &file_desc); @@ -45,16 +45,14 @@ enum cb_err locate_vbt(struct region_device *rdev) if (vbtsig != VBT_SIGNATURE) { printk(BIOS_ERR, "Missing/invalid signature in VBT data file!\n"); - return CB_ERR; + return NULL; } - return CB_SUCCESS; + return rdev_mmap_full(rdev); } void *vbt_get(struct region_device *rdev) { - void *vbt_data; - if (!IS_ENABLED(CONFIG_RUN_FSP_GOP)) return NULL; @@ -64,10 +62,5 @@ void *vbt_get(struct region_device *rdev) return NULL; if (!display_init_required()) return NULL; - if (locate_vbt(rdev) != CB_ERR) { - vbt_data = rdev_mmap_full(rdev); - return vbt_data; - } else { - return NULL; - } + return locate_vbt(rdev); } |