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>
This commit is contained in:
parent
c1ef5c1752
commit
cba7316c26
4 changed files with 9 additions and 22 deletions
|
@ -99,8 +99,7 @@ uintptr_t fsp_load_vbt(void)
|
|||
struct region_device rdev;
|
||||
void *vbt_data = NULL;
|
||||
|
||||
if (locate_vbt(&rdev) != CB_ERR)
|
||||
vbt_data = rdev_mmap_full(&rdev);
|
||||
vbt_data = locate_vbt(&rdev);
|
||||
|
||||
if (vbt_data == NULL)
|
||||
printk(BIOS_NOTICE, "Could not locate a VBT file in CBFS\n");
|
||||
|
|
|
@ -27,12 +27,7 @@ enum cb_err init_igd_opregion(igd_opregion_t *opregion)
|
|||
optionrom_vbt_t *vbt;
|
||||
optionrom_vbt_t *ext_vbt;
|
||||
|
||||
if (locate_vbt(&vbt_rdev) == CB_ERR) {
|
||||
printk(BIOS_ERR, "VBT not found\n");
|
||||
return CB_ERR;
|
||||
};
|
||||
|
||||
vbt = rdev_mmap_full(&vbt_rdev);
|
||||
vbt = locate_vbt(&vbt_rdev);
|
||||
|
||||
if (!vbt) {
|
||||
printk(BIOS_ERR, "VBT couldn't be read\n");
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
*/
|
||||
const char *mainboard_vbt_filename(void);
|
||||
|
||||
/* locate .vbt file */
|
||||
enum cb_err locate_vbt(struct region_device *rdev);
|
||||
/* locate vbt.bin file. Returns a pointer to its content. */
|
||||
void *locate_vbt(struct region_device *rdev);
|
||||
/*
|
||||
* Returns VBT pointer and mapping after checking prerequisites for Pre OS
|
||||
* Graphics initialization
|
||||
|
|
Loading…
Reference in a new issue