UINT8 *EdidOverrideDataBlock;\r
UINTN EdidActiveDataSize;\r
UINT8 *EdidActiveDataBlock;\r
+ UINT32 HighestHorizontalResolution;\r
+ UINT32 HighestVerticalResolution;\r
+ UINTN HighestResolutionMode;\r
\r
EdidFound = TRUE;\r
EdidOverrideFound = FALSE;\r
EdidOverrideDataBlock = NULL;\r
EdidActiveDataSize = 0;\r
EdidActiveDataBlock = NULL;\r
+ HighestHorizontalResolution = 0;\r
+ HighestVerticalResolution = 0;\r
+ HighestResolutionMode = 0;\r
\r
//\r
// Allocate buffer under 1MB for VBE data structures\r
continue;\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
+ HighestHorizontalResolution = BiosVideoPrivate->VbeModeInformationBlock->XResolution;\r
+ HighestVerticalResolution = BiosVideoPrivate->VbeModeInformationBlock->YResolution;\r
+ HighestResolutionMode = ModeNumber;\r
+ }\r
+\r
//\r
// Add mode to the list of available modes\r
//\r
//\r
// Find the best mode to initialize\r
//\r
+ if ((PcdGet32 (PcdVideoHorizontalResolution) == 0x0) || (PcdGet32 (PcdVideoVerticalResolution) == 0x0)) {\r
+ DEBUG_CODE (\r
+ BIOS_VIDEO_MODE_DATA *ModeData;\r
+ ModeData = &BiosVideoPrivate->ModeData[HighestResolutionMode];\r
+ DEBUG ((EFI_D_INFO, "BiosVideo set highest resolution %d x %d\n",\r
+ ModeData->HorizontalResolution, ModeData->VerticalResolution));\r
+ );\r
+ PreferMode = HighestResolutionMode;\r
+ }\r
Status = BiosVideoGraphicsOutputSetMode (&BiosVideoPrivate->GraphicsOutput, (UINT32) PreferMode);\r
if (EFI_ERROR (Status)) {\r
for (PreferMode = 0; PreferMode < ModeNumber; PreferMode ++) {\r