aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/common/vbt.c
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2017-10-05 17:32:43 +0200
committerPatrick Georgi <pgeorgi@google.com>2017-10-06 16:59:20 +0000
commitcba7316c2662ee1c916345b034ca08dad43984f7 (patch)
tree3a41c6c78ff9d0d1a67328c2f8cd336dd80ea205 /src/soc/intel/common/vbt.c
parentc1ef5c1752cc440f4436968e54f8dd79f638951e (diff)
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.c17
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);
}