aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/intel/gma/gma.adb
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2019-02-18 01:25:58 +0100
committerNico Huber <nico.h@gmx.de>2019-08-05 16:12:53 +0000
commitb92c4e36837635252c0d2eddf381dc87edfb06c0 (patch)
tree083f8dd8220376ea20bb23535eae10adabf477b8 /src/drivers/intel/gma/gma.adb
parent3071c8114a8ea29b66916b9207d8ac07aad3b676 (diff)
drivers/intel/gma: Export Read_EDID() to C
Change-Id: Icf802904c569e621ca3b3105b6107936776c5cee Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/31458 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/drivers/intel/gma/gma.adb')
-rw-r--r--src/drivers/intel/gma/gma.adb37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/drivers/intel/gma/gma.adb b/src/drivers/intel/gma/gma.adb
new file mode 100644
index 0000000000..10885e6e09
--- /dev/null
+++ b/src/drivers/intel/gma/gma.adb
@@ -0,0 +1,37 @@
+with HW.GFX.GMA;
+with HW.GFX.GMA.Display_Probing;
+
+use HW.GFX.GMA;
+
+package body GMA is
+
+ function read_edid
+ (raw_edid : out HW.GFX.EDID.Raw_EDID_Data;
+ port : in Interfaces.C.int)
+ return Interfaces.C.int
+ is
+ use type Interfaces.C.int;
+ success : Boolean := true;
+ begin
+ if port not in Active_Port_Type'Pos (Active_Port_Type'First)
+ .. Active_Port_Type'Pos (Active_Port_Type'Last)
+ then
+ raw_edid := (others => 0);
+ return -2;
+ else
+ if not HW.GFX.GMA.Is_Initialized then
+ HW.GFX.GMA.Initialize (Success => success);
+ end if;
+ if success then
+ HW.GFX.GMA.Display_Probing.Read_EDID
+ (raw_edid, Active_Port_Type'Val (port), success);
+ end if;
+ if success then
+ return 0;
+ else
+ return -1;
+ end if;
+ end if;
+ end read_edid;
+
+end GMA;