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
