:: commit 7ae67812826b44daf3bfdaa250179f3240371845

mintsuki <mintsuki@protonmail.com> — 2020-04-16 12:53

parents: 0a3f00f6e2

Handle if EDID returns resolution of 0 and update binary image

diff --git a/qloader2.bin b/qloader2.bin
index 0f517fb2..3c38d75d 100644
Binary files a/qloader2.bin and b/qloader2.bin differ
diff --git a/src/drivers/vbe.c b/src/drivers/vbe.c
index e9fb0e82..31ca8d54 100644
--- a/src/drivers/vbe.c
+++ b/src/drivers/vbe.c
@@ -120,18 +120,20 @@ int init_vbe(uint64_t *framebuffer, uint16_t *pitch, uint16_t *target_width, uin
 
     struct edid_info_struct edid_info;
     if (!*target_width || !*target_height || !*target_bpp) {
-        *target_bpp = 32;
-        if (get_edid_info(&edid_info)) {
-            print("vbe: EDID unavailable, defaulting to 1024x768\n");
-            *target_width  = 1024;
-            *target_height = 768;
-        } else {
-            *target_width   = (int)edid_info.det_timing_desc1[2];
-            *target_width  += ((int)edid_info.det_timing_desc1[4] & 0xf0) << 4;
-            *target_height  = (int)edid_info.det_timing_desc1[5];
-            *target_height += ((int)edid_info.det_timing_desc1[7] & 0xf0) << 4;
-            print("vbe: EDID detected screen resolution of %ux%u\n",
-                  *target_width, *target_height);
+        *target_width  = 1024;
+        *target_height = 768;
+        *target_bpp    = 32;
+        if (!get_edid_info(&edid_info)) {
+            int edid_width   = (int)edid_info.det_timing_desc1[2];
+                edid_width  += ((int)edid_info.det_timing_desc1[4] & 0xf0) << 4;
+            int edid_height  = (int)edid_info.det_timing_desc1[5];
+                edid_height += ((int)edid_info.det_timing_desc1[7] & 0xf0) << 4;
+            if (edid_width && edid_height) {
+                *target_width  = edid_width;
+                *target_height = edid_height;
+                print("vbe: EDID detected screen resolution of %ux%u\n",
+                      *target_width, *target_height);
+            }
         }
     } else {
         print("vbe: Requested resolution of %ux%ux%u\n",
tab: 248 wrap: offon