vgabios: Unify X_init() functions.
Use the same function signature for cirrus, bochsvga, geodelx, and
stdvga init code.
Have each hardware type explicitly call stdvga_init when needed.
To unify bochsvga_init() signature, store the device BDF passed into
the optionrom init code in a global variable (VgaBDF).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
diff --git a/vgasrc/vgahw.h b/vgasrc/vgahw.h
index 57e41c3..d34b0e7 100644
--- a/vgasrc/vgahw.h
+++ b/vgasrc/vgahw.h
@@ -7,6 +7,7 @@
#include "clext.h" // clext_set_mode
#include "bochsvga.h" // bochsvga_set_mode
#include "stdvga.h" // stdvga_set_mode
+#include "geodelx.h" // geodelx_init
static inline int vgahw_set_mode(int mode, int flags) {
if (CONFIG_VGA_CIRRUS)
@@ -16,4 +17,14 @@
return stdvga_set_mode(mode, flags);
}
+static inline int vgahw_init(void) {
+ if (CONFIG_VGA_CIRRUS)
+ return clext_init();
+ if (CONFIG_VGA_BOCHS)
+ return bochsvga_init();
+ if (CONFIG_VGA_GEODELX)
+ return geodelx_init();
+ return stdvga_init();
+}
+
#endif // vgahw.h