continue;\r
}\r
\r
+ DEBUG ((EFI_D_INFO, "Video Controller Mode 0x%x: %d x %d\n",\r
+ VbeModeNumber, BiosVideoPrivate->VbeModeInformationBlock->XResolution, BiosVideoPrivate->VbeModeInformationBlock->YResolution));\r
+\r
if (EdidFound && (ValidEdidTiming.ValidNumber > 0)) {\r
//\r
// EDID exist, check whether this mode match with any mode in EDID\r
Timing.HorizontalResolution = BiosVideoPrivate->VbeModeInformationBlock->XResolution;\r
Timing.VerticalResolution = BiosVideoPrivate->VbeModeInformationBlock->YResolution;\r
if (!SearchEdidTiming (&ValidEdidTiming, &Timing)) {\r
+ //\r
+ // When EDID comes from INT10 call, EDID does not include 800x600, 640x480 and 1024x768,\r
+ // but INT10 can support these modes, we add them into GOP mode.\r
+ //\r
+ if ((BiosVideoPrivate->EdidDiscovered.SizeOfEdid != 0) &&\r
+ !((Timing.HorizontalResolution) == 1024 && (Timing.VerticalResolution == 768)) &&\r
+ !((Timing.HorizontalResolution) == 800 && (Timing.VerticalResolution == 600)) &&\r
+ !((Timing.HorizontalResolution) == 640 && (Timing.VerticalResolution == 480))) {\r
continue;\r
+ }\r
}\r
}\r
\r
//\r
// Record the highest resolution mode to set later\r
//\r
- if ((BiosVideoPrivate->VbeModeInformationBlock->XResolution >= HighestHorizontalResolution) &&\r
- (BiosVideoPrivate->VbeModeInformationBlock->YResolution >= HighestVerticalResolution)) {\r
+ if ((BiosVideoPrivate->VbeModeInformationBlock->XResolution > HighestHorizontalResolution) ||\r
+ ((BiosVideoPrivate->VbeModeInformationBlock->XResolution == HighestHorizontalResolution) && \r
+ (BiosVideoPrivate->VbeModeInformationBlock->YResolution > HighestVerticalResolution))) {\r
HighestHorizontalResolution = BiosVideoPrivate->VbeModeInformationBlock->XResolution;\r
HighestVerticalResolution = BiosVideoPrivate->VbeModeInformationBlock->YResolution;\r
HighestResolutionMode = ModeNumber;\r