[coreboot-gerrit] Change in coreboot[master]: soc/intel/common/opregion: Use enum cb_err as return value

Patrick Rudolph (Code Review) gerrit at coreboot.org
Thu Jun 15 09:32:48 CEST 2017


Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/20220


Change subject: soc/intel/common/opregion: Use enum cb_err as return value
......................................................................

soc/intel/common/opregion: Use enum cb_err as return value

Return CB_SUCCESS and CB_ERR and check return values.
Do not write ACPI table in case no valid opregion
was provided.

Change-Id: Ib99fcfe347b98736979fc82ab3de48bfc6fc7dcd
Signed-off-by: Patrick Rudolph <siro at das-labor.org>
---
M src/soc/intel/apollolake/graphics.c
M src/soc/intel/common/opregion.c
M src/soc/intel/common/opregion.h
M src/soc/intel/skylake/igd.c
M src/soc/intel/skylake/opregion.c
5 files changed, 14 insertions(+), 13 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/20/20220/1

diff --git a/src/soc/intel/apollolake/graphics.c b/src/soc/intel/apollolake/graphics.c
index 7123e4f..0893d7d 100644
--- a/src/soc/intel/apollolake/graphics.c
+++ b/src/soc/intel/apollolake/graphics.c
@@ -44,7 +44,7 @@
 	printk(BIOS_DEBUG, "ACPI:    * IGD OpRegion\n");
 	opregion = (igd_opregion_t *)current;
 
-	if (!init_igd_opregion(opregion))
+	if (init_igd_opregion(opregion) != CB_SUCCESS)
 		return current;
 
 	current += sizeof(igd_opregion_t);
diff --git a/src/soc/intel/common/opregion.c b/src/soc/intel/common/opregion.c
index 25c0a58..6cb388c 100644
--- a/src/soc/intel/common/opregion.c
+++ b/src/soc/intel/common/opregion.c
@@ -21,7 +21,7 @@
 #include "opregion.h"
 #include "vbt.h"
 
-int init_igd_opregion(igd_opregion_t *opregion)
+enum cb_err init_igd_opregion(igd_opregion_t *opregion)
 {
 	struct region_device vbt_rdev;
 	optionrom_vbt_t *vbt;
@@ -29,14 +29,14 @@
 
 	if (locate_vbt(&vbt_rdev) == CB_ERR) {
 		printk(BIOS_ERR, "VBT not found\n");
-		return 0;
+		return CB_ERR;
 	};
 
 	vbt = rdev_mmap_full(&vbt_rdev);
 
 	if (!vbt) {
 		printk(BIOS_ERR, "VBT couldn't be read\n");
-		return 0;
+		return CB_ERR;
 	}
 
 	memset(opregion, 0, sizeof(igd_opregion_t));
@@ -51,7 +51,7 @@
 
 		if (ext_vbt == NULL) {
 			printk(BIOS_ERR, "Unable to add Ext VBT to cbmem!\n");
-			return 0;
+			return CB_ERR;
 		}
 
 		memcpy(ext_vbt, vbt, vbt->hdr_vbt_size);
@@ -71,5 +71,5 @@
 
 	rdev_munmap(&vbt_rdev, vbt);
 
-	return 1;
+	return CB_SUCCESS;
 }
diff --git a/src/soc/intel/common/opregion.h b/src/soc/intel/common/opregion.h
index bcffe6e..7945a49 100644
--- a/src/soc/intel/common/opregion.h
+++ b/src/soc/intel/common/opregion.h
@@ -19,6 +19,6 @@
 #include <drivers/intel/gma/opregion.h>
 
 /* Loads vbt and initializes opregion. Returns non-zero on success */
-int init_igd_opregion(igd_opregion_t *opregion);
+enum cb_err init_igd_opregion(igd_opregion_t *opregion);
 
 #endif /* _COMMON_OPREGION_H_ */
diff --git a/src/soc/intel/skylake/igd.c b/src/soc/intel/skylake/igd.c
index 7aa8db7..30e7d88 100644
--- a/src/soc/intel/skylake/igd.c
+++ b/src/soc/intel/skylake/igd.c
@@ -168,10 +168,11 @@
 
 	printk(BIOS_DEBUG, "ACPI: * IGD OpRegion\n");
 	opregion = (igd_opregion_t *)current;
-	init_igd_opregion(opregion);
-	update_igd_opregion(opregion);
-	current += sizeof(igd_opregion_t);
-	current = acpi_align_current(current);
+	if (init_igd_opregion(opregion) == CB_SUCCESS) {
+		update_igd_opregion(opregion);
+		current += sizeof(igd_opregion_t);
+		current = acpi_align_current(current);
+	}
 
 	printk(BIOS_DEBUG, "current = %lx\n", current);
 	return current;
diff --git a/src/soc/intel/skylake/opregion.c b/src/soc/intel/skylake/opregion.c
index 4539560..ef7d4ab 100644
--- a/src/soc/intel/skylake/opregion.c
+++ b/src/soc/intel/skylake/opregion.c
@@ -19,7 +19,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-int init_igd_opregion(igd_opregion_t *opregion)
+enum cb_err init_igd_opregion(igd_opregion_t *opregion)
 {
 	const optionrom_vbt_t *vbt;
 	uint32_t vbt_len;
@@ -46,5 +46,5 @@
 	/* We just assume we're mobile for now */
 	opregion->header.mailboxes = MAILBOXES_MOBILE;
 
-	return 0;
+	return CB_SUCCESS;
 }

-- 
To view, visit https://review.coreboot.org/20220
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib99fcfe347b98736979fc82ab3de48bfc6fc7dcd
Gerrit-Change-Number: 20220
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <siro at das-labor.org>



More information about the coreboot-gerrit mailing list