:: commit 5b6c4ffc34cf57fe1e1938b4fd8db59a0872fb06

mintsuki <mintsuki@protonmail.com> — 2022-03-18 01:45

parents: 9f44fe6c4e

limine: Add EDID to framebuffer response

diff --git a/common/limine.h b/common/limine.h
index c9a1faf5..0d9f141d 100644
--- a/common/limine.h
+++ b/common/limine.h
@@ -66,6 +66,8 @@ struct limine_framebuffer {
     uint8_t blue_mask_size;
     uint8_t blue_mask_shift;
     uint8_t unused;
+    uint64_t edid_size;
+    LIMINE_PTR(void *) edid;
     uint8_t reserved[256];
 };
 
diff --git a/common/protos/limine.c b/common/protos/limine.c
index 2c38e6aa..43df1333 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -391,6 +391,12 @@ FEAT_START
     framebuffer_response->fbs = reported_addr(fbp);
     framebuffer_response->fbs_count = 1;
 
+    struct edid_info_struct *edid_info = get_edid_info();
+    if (edid_info != NULL) {
+        fbp->edid_size = sizeof(struct edid_info_struct);
+        fbp->edid = reported_addr(edid_info);
+    }
+
     fbp->memory_model     = LIMINE_FRAMEBUFFER_RGB;
     fbp->address          = reported_addr((void *)(uintptr_t)fb.framebuffer_addr);
     fbp->width            = fb.framebuffer_width;
diff --git a/test/limine.c b/test/limine.c
index 006a8f09..a181f9d2 100644
--- a/test/limine.c
+++ b/test/limine.c
@@ -153,6 +153,8 @@ FEAT_START
         e9_printf("Green mask shift: %d", fb->green_mask_shift);
         e9_printf("Blue mask size: %d", fb->blue_mask_size);
         e9_printf("Blue mask shift: %d", fb->blue_mask_shift);
+        e9_printf("EDID size: %d", fb->edid_size);
+        e9_printf("EDID at: %x", fb->edid);
     }
 FEAT_END
 
tab: 248 wrap: offon