#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
#include <Library/DebugLib.h>\r
+#include <Library/PcdLib.h>\r
\r
EFI_STATUS\r
GetGraphicsBitMapFromFV (\r
// Try to open GOP first\r
//\r
Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR(Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
GraphicsOutput = NULL;\r
//\r
// Open GOP failed, try to open UGA\r
//\r
Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiUgaDrawProtocolGuid, (VOID **) &UgaDraw);\r
- if (EFI_ERROR (Status)) {\r
- return EFI_UNSUPPORTED;\r
- }\r
+ }\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_UNSUPPORTED;\r
}\r
\r
Badging = NULL;\r
if (GraphicsOutput != NULL) {\r
SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;\r
SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;\r
- } else {\r
+ } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = UgaDraw->GetMode (UgaDraw, &SizeOfX, &SizeOfY, &ColorDepth, &RefreshRate);\r
if (EFI_ERROR (Status)) {\r
return EFI_UNSUPPORTED;\r
Height,\r
Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
);\r
- } else {\r
+ } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = UgaDraw->Blt (\r
UgaDraw,\r
(EFI_UGA_PIXEL *) Blt,\r
Height,\r
Width * sizeof (EFI_UGA_PIXEL)\r
);\r
+ } else {\r
+ Status = EFI_UNSUPPORTED;\r
}\r
}\r
\r
if (GraphicsOutput != NULL) {\r
HorizontalResolution = GraphicsOutput->Mode->Info->HorizontalResolution;\r
VerticalResolution = GraphicsOutput->Mode->Info->VerticalResolution;\r
- } else {\r
+ } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
//\r
// Get the current mode information from the UGA Draw Protocol\r
//\r
GLYPH_HEIGHT,\r
BufferGlyphWidth * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
);\r
- } else {\r
+ } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = UgaDraw->Blt (\r
UgaDraw,\r
(EFI_UGA_PIXEL *) (UINTN) LineBuffer,\r
GLYPH_HEIGHT,\r
BufferGlyphWidth * sizeof (EFI_UGA_PIXEL)\r
);\r
+ } else {\r
+ Status = EFI_UNSUPPORTED;\r
}\r
\r
Error:\r
(VOID **) &GraphicsOutput\r
);\r
\r
- if (EFI_ERROR (Status)) {\r
+ if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
GraphicsOutput = NULL;\r
\r
Status = gBS->HandleProtocol (\r
&gEfiUgaDrawProtocolGuid,\r
(VOID **) &UgaDraw\r
);\r
+ }\r
\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
}\r
\r
Status = gBS->HandleProtocol (\r