/** @file\r
Support for Graphics output spliter.\r
- \r
-Copyright (c) 2006 - 2009, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
\r
**/\r
\r
#include "ConSplitter.h"\r
\r
-\r
-CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
+CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
\r
/**\r
Returns information for an available graphics mode that the graphics device\r
@retval EFI_SUCCESS Mode information returned.\r
@retval EFI_BUFFER_TOO_SMALL The Info buffer was too small.\r
@retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the video mode.\r
- @retval EFI_NOT_STARTED Video display is not initialized. Call SetMode ()\r
@retval EFI_INVALID_PARAMETER One of the input args was NULL.\r
@retval EFI_OUT_OF_RESOURCES No resource available.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
-ConSpliterGraphicsOutputQueryMode (\r
+ConSplitterGraphicsOutputQueryMode (\r
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
IN UINT32 ModeNumber,\r
OUT UINTN *SizeOfInfo,\r
)\r
{\r
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
\r
- if (This == NULL || Info == NULL || SizeOfInfo == NULL || ModeNumber >= This->Mode->MaxMode) {\r
+ if ((This == NULL) || (Info == NULL) || (SizeOfInfo == NULL) || (ModeNumber >= This->Mode->MaxMode)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
Private = GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
\r
- if (Private->HardwareNeedsStarting) {\r
- return EFI_NOT_STARTED;\r
- }\r
+ GraphicsOutput = NULL;\r
\r
- *Info = AllocatePool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));\r
- if (*Info == NULL) {\r
- return EFI_OUT_OF_RESOURCES;\r
+ if (Private->CurrentNumberOfGraphicsOutput == 1) {\r
+ //\r
+ // Find the only one GraphicsOutput.\r
+ //\r
+ for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {\r
+ GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;\r
+ if (GraphicsOutput != NULL) {\r
+ break;\r
+ }\r
+ }\r
}\r
\r
- *SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);\r
+ if (GraphicsOutput != NULL) {\r
+ //\r
+ // If only one physical GOP device exist, return its information.\r
+ //\r
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)ModeNumber, SizeOfInfo, Info);\r
+ return Status;\r
+ } else {\r
+ //\r
+ // If 2 more phyiscal GOP device exist or GOP protocol does not exist,\r
+ // return GOP information (PixelFormat is PixelBltOnly) created in ConSplitterAddGraphicsOutputMode ().\r
+ //\r
+ *Info = AllocatePool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));\r
+ if (*Info == NULL) {\r
+ return EFI_OUT_OF_RESOURCES;\r
+ }\r
\r
- CopyMem (*Info, &Private->GraphicsOutputModeBuffer[ModeNumber], *SizeOfInfo);\r
+ *SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);\r
+ CopyMem (*Info, &Private->GraphicsOutputModeBuffer[ModeNumber], *SizeOfInfo);\r
+ }\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Set the video device into the specified mode and clears the visible portions of\r
the output display to black.\r
**/\r
EFI_STATUS\r
EFIAPI\r
-ConSpliterGraphicsOutputSetMode (\r
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL * This,\r
- IN UINT32 ModeNumber\r
+ConSplitterGraphicsOutputSetMode (\r
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
+ IN UINT32 ModeNumber\r
)\r
{\r
- EFI_STATUS Status;\r
- TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;\r
- UINTN Index;\r
- EFI_STATUS ReturnStatus;\r
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Mode;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- UINTN NumberIndex;\r
- UINTN SizeOfInfo;\r
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ EFI_STATUS Status;\r
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;\r
+ UINTN Index;\r
+ EFI_STATUS ReturnStatus;\r
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Mode;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *PhysicalGraphicsOutput;\r
+ UINTN NumberIndex;\r
+ UINTN SizeOfInfo;\r
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
\r
if (ModeNumber >= This->Mode->MaxMode) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
- if (ModeNumber == This->Mode->Mode) {\r
- return EFI_SUCCESS;\r
- }\r
-\r
Private = GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
- Mode = &Private->GraphicsOutputModeBuffer[ModeNumber];\r
+ Mode = &Private->GraphicsOutputModeBuffer[ModeNumber];\r
\r
- ReturnStatus = EFI_SUCCESS;\r
+ ReturnStatus = EFI_SUCCESS;\r
+ GraphicsOutput = NULL;\r
+ PhysicalGraphicsOutput = NULL;\r
//\r
// return the worst status met\r
//\r
for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {\r
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;\r
if (GraphicsOutput != NULL) {\r
+ PhysicalGraphicsOutput = GraphicsOutput;\r
//\r
// Find corresponding ModeNumber of this GraphicsOutput instance\r
//\r
- for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex ++) {\r
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) NumberIndex, &SizeOfInfo, &Info);\r
+ for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex++) {\r
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)NumberIndex, &SizeOfInfo, &Info);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
if ((Info->HorizontalResolution == Mode->HorizontalResolution) && (Info->VerticalResolution == Mode->VerticalResolution)) {\r
FreePool (Info);\r
break;\r
}\r
+\r
FreePool (Info);\r
}\r
\r
- Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32) NumberIndex);\r
+ Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32)NumberIndex);\r
if (EFI_ERROR (Status)) {\r
ReturnStatus = Status;\r
}\r
\r
This->Mode->Mode = ModeNumber;\r
\r
- CopyMem (This->Mode->Info, &Private->GraphicsOutputModeBuffer[ModeNumber], This->Mode->SizeOfInfo);\r
-\r
- //\r
- // Information is not enough here, so the following items remain unchanged:\r
- // GraphicsOutputMode->Info->Version, GraphicsOutputMode->Info->PixelFormat\r
- // GraphicsOutputMode->SizeOfInfo, GraphicsOutputMode->FrameBufferBase, GraphicsOutputMode->FrameBufferSize\r
- // These items will be initialized/updated when a new GOP device is added into ConsoleSplitter.\r
- //\r
-\r
- Private->HardwareNeedsStarting = FALSE;\r
+ if ((Private->CurrentNumberOfGraphicsOutput == 1) && (PhysicalGraphicsOutput != NULL)) {\r
+ //\r
+ // If only one physical GOP device exist, copy physical information to consplitter.\r
+ //\r
+ CopyMem (This->Mode->Info, PhysicalGraphicsOutput->Mode->Info, PhysicalGraphicsOutput->Mode->SizeOfInfo);\r
+ This->Mode->SizeOfInfo = PhysicalGraphicsOutput->Mode->SizeOfInfo;\r
+ This->Mode->FrameBufferBase = PhysicalGraphicsOutput->Mode->FrameBufferBase;\r
+ This->Mode->FrameBufferSize = PhysicalGraphicsOutput->Mode->FrameBufferSize;\r
+ } else {\r
+ //\r
+ // If 2 more phyiscal GOP device exist or GOP protocol does not exist,\r
+ // return GOP information (PixelFormat is PixelBltOnly) created in ConSplitterAddGraphicsOutputMode ().\r
+ //\r
+ CopyMem (This->Mode->Info, &Private->GraphicsOutputModeBuffer[ModeNumber], This->Mode->SizeOfInfo);\r
+ }\r
\r
return ReturnStatus;\r
}\r
\r
-\r
-\r
/**\r
The following table defines actions for BltOperations.\r
\r
\r
@retval EFI_SUCCESS The Blt operation completed.\r
@retval EFI_INVALID_PARAMETER BltOperation is not valid.\r
- @retval EFI_DEVICE_ERROR A hardware error occured writting to the video\r
+ @retval EFI_DEVICE_ERROR A hardware error occurred writting to the video\r
buffer.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
-ConSpliterGraphicsOutputBlt (\r
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL\r
- IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,\r
- IN UINTN SourceX,\r
- IN UINTN SourceY,\r
- IN UINTN DestinationX,\r
- IN UINTN DestinationY,\r
- IN UINTN Width,\r
- IN UINTN Height,\r
- IN UINTN Delta OPTIONAL\r
+ConSplitterGraphicsOutputBlt (\r
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,\r
+ IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,\r
+ IN UINTN SourceX,\r
+ IN UINTN SourceY,\r
+ IN UINTN DestinationX,\r
+ IN UINTN DestinationY,\r
+ IN UINTN Width,\r
+ IN UINTN Height,\r
+ IN UINTN Delta OPTIONAL\r
)\r
{\r
EFI_STATUS Status;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
\r
+ if ((This == NULL) || (((UINTN)BltOperation) >= EfiGraphicsOutputBltOperationMax)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
Private = GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
\r
ReturnStatus = EFI_SUCCESS;\r
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;\r
if (GraphicsOutput != NULL) {\r
Status = GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- BltBuffer,\r
- BltOperation,\r
- SourceX,\r
- SourceY,\r
- DestinationX,\r
- DestinationY,\r
- Width,\r
- Height,\r
- Delta\r
- );\r
+ GraphicsOutput,\r
+ BltBuffer,\r
+ BltOperation,\r
+ SourceX,\r
+ SourceY,\r
+ DestinationX,\r
+ DestinationY,\r
+ Width,\r
+ Height,\r
+ Delta\r
+ );\r
if (EFI_ERROR (Status)) {\r
ReturnStatus = Status;\r
} else if (BltOperation == EfiBltVideoToBltBuffer) {\r
}\r
\r
UgaDraw = Private->TextOutList[Index].UgaDraw;\r
- if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
+ if ((UgaDraw != NULL) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = UgaDraw->Blt (\r
- UgaDraw,\r
- (EFI_UGA_PIXEL *) BltBuffer,\r
- (EFI_UGA_BLT_OPERATION) BltOperation,\r
- SourceX,\r
- SourceY,\r
- DestinationX,\r
- DestinationY,\r
- Width,\r
- Height,\r
- Delta\r
- );\r
+ UgaDraw,\r
+ (EFI_UGA_PIXEL *)BltBuffer,\r
+ (EFI_UGA_BLT_OPERATION)BltOperation,\r
+ SourceX,\r
+ SourceY,\r
+ DestinationX,\r
+ DestinationY,\r
+ Width,\r
+ Height,\r
+ Delta\r
+ );\r
if (EFI_ERROR (Status)) {\r
ReturnStatus = Status;\r
} else if (BltOperation == EfiBltVideoToBltBuffer) {\r
**/\r
EFI_STATUS\r
EFIAPI\r
-ConSpliterUgaDrawGetMode (\r
- IN EFI_UGA_DRAW_PROTOCOL *This,\r
- OUT UINT32 *HorizontalResolution,\r
- OUT UINT32 *VerticalResolution,\r
- OUT UINT32 *ColorDepth,\r
- OUT UINT32 *RefreshRate\r
+ConSplitterUgaDrawGetMode (\r
+ IN EFI_UGA_DRAW_PROTOCOL *This,\r
+ OUT UINT32 *HorizontalResolution,\r
+ OUT UINT32 *VerticalResolution,\r
+ OUT UINT32 *ColorDepth,\r
+ OUT UINT32 *RefreshRate\r
)\r
{\r
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;\r
if ((HorizontalResolution == NULL) ||\r
(VerticalResolution == NULL) ||\r
(RefreshRate == NULL) ||\r
- (ColorDepth == NULL)) {\r
+ (ColorDepth == NULL))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
//\r
// retrieve private data\r
//\r
- Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
+ Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
\r
*HorizontalResolution = Private->UgaHorizontalResolution;\r
*VerticalResolution = Private->UgaVerticalResolution;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Set the current video mode information.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
-ConSpliterUgaDrawSetMode (\r
- IN EFI_UGA_DRAW_PROTOCOL *This,\r
- IN UINT32 HorizontalResolution,\r
- IN UINT32 VerticalResolution,\r
- IN UINT32 ColorDepth,\r
- IN UINT32 RefreshRate\r
+ConSplitterUgaDrawSetMode (\r
+ IN EFI_UGA_DRAW_PROTOCOL *This,\r
+ IN UINT32 HorizontalResolution,\r
+ IN UINT32 VerticalResolution,\r
+ IN UINT32 ColorDepth,\r
+ IN UINT32 RefreshRate\r
)\r
{\r
- EFI_STATUS Status;\r
- TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;\r
- UINTN Index;\r
- EFI_STATUS ReturnStatus;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- UINTN NumberIndex;\r
- UINTN SizeOfInfo;\r
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ EFI_STATUS Status;\r
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;\r
+ UINTN Index;\r
+ EFI_STATUS ReturnStatus;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ UINTN NumberIndex;\r
+ UINTN SizeOfInfo;\r
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
\r
Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
\r
//\r
// Update the Mode data\r
//\r
- Private->UgaHorizontalResolution = HorizontalResolution;\r
- Private->UgaVerticalResolution = VerticalResolution;\r
- Private->UgaColorDepth = ColorDepth;\r
- Private->UgaRefreshRate = RefreshRate;\r
+ Private->UgaHorizontalResolution = HorizontalResolution;\r
+ Private->UgaVerticalResolution = VerticalResolution;\r
+ Private->UgaColorDepth = ColorDepth;\r
+ Private->UgaRefreshRate = RefreshRate;\r
\r
//\r
// return the worst status met\r
//\r
for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {\r
-\r
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;\r
if (GraphicsOutput != NULL) {\r
//\r
// Find corresponding ModeNumber of this GraphicsOutput instance\r
//\r
- for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex ++) {\r
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) NumberIndex, &SizeOfInfo, &Info);\r
+ for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex++) {\r
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)NumberIndex, &SizeOfInfo, &Info);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
if ((Info->HorizontalResolution == HorizontalResolution) && (Info->VerticalResolution == VerticalResolution)) {\r
FreePool (Info);\r
break;\r
}\r
+\r
FreePool (Info);\r
}\r
\r
- Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32) NumberIndex);\r
+ Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32)NumberIndex);\r
if (EFI_ERROR (Status)) {\r
ReturnStatus = Status;\r
}\r
- } else if (FeaturePcdGet (PcdUgaConsumeSupport)){\r
+ } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
UgaDraw = Private->TextOutList[Index].UgaDraw;\r
if (UgaDraw != NULL) {\r
Status = UgaDraw->SetMode (\r
- UgaDraw,\r
- HorizontalResolution,\r
- VerticalResolution,\r
- ColorDepth,\r
- RefreshRate\r
- );\r
+ UgaDraw,\r
+ HorizontalResolution,\r
+ VerticalResolution,\r
+ ColorDepth,\r
+ RefreshRate\r
+ );\r
if (EFI_ERROR (Status)) {\r
ReturnStatus = Status;\r
}\r
return ReturnStatus;\r
}\r
\r
-\r
/**\r
Blt a rectangle of pixels on the graphics screen.\r
\r
\r
@retval EFI_SUCCESS The Blt operation completed.\r
@retval EFI_INVALID_PARAMETER BltOperation is not valid.\r
- @retval EFI_DEVICE_ERROR A hardware error occured writting to the video buffer.\r
+ @retval EFI_DEVICE_ERROR A hardware error occurred writting to the video buffer.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
-ConSpliterUgaDrawBlt (\r
- IN EFI_UGA_DRAW_PROTOCOL *This,\r
- IN EFI_UGA_PIXEL *BltBuffer, OPTIONAL\r
- IN EFI_UGA_BLT_OPERATION BltOperation,\r
- IN UINTN SourceX,\r
- IN UINTN SourceY,\r
- IN UINTN DestinationX,\r
- IN UINTN DestinationY,\r
- IN UINTN Width,\r
- IN UINTN Height,\r
- IN UINTN Delta OPTIONAL\r
+ConSplitterUgaDrawBlt (\r
+ IN EFI_UGA_DRAW_PROTOCOL *This,\r
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,\r
+ IN EFI_UGA_BLT_OPERATION BltOperation,\r
+ IN UINTN SourceX,\r
+ IN UINTN SourceY,\r
+ IN UINTN DestinationX,\r
+ IN UINTN DestinationY,\r
+ IN UINTN Width,\r
+ IN UINTN Height,\r
+ IN UINTN Delta OPTIONAL\r
)\r
{\r
EFI_STATUS Status;\r
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;\r
if (GraphicsOutput != NULL) {\r
Status = GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) BltBuffer,\r
- (EFI_GRAPHICS_OUTPUT_BLT_OPERATION) BltOperation,\r
- SourceX,\r
- SourceY,\r
- DestinationX,\r
- DestinationY,\r
- Width,\r
- Height,\r
- Delta\r
- );\r
+ GraphicsOutput,\r
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)BltBuffer,\r
+ (EFI_GRAPHICS_OUTPUT_BLT_OPERATION)BltOperation,\r
+ SourceX,\r
+ SourceY,\r
+ DestinationX,\r
+ DestinationY,\r
+ Width,\r
+ Height,\r
+ Delta\r
+ );\r
if (EFI_ERROR (Status)) {\r
ReturnStatus = Status;\r
- } else if (BltOperation == EfiBltVideoToBltBuffer) {\r
+ } else if (BltOperation == EfiUgaVideoToBltBuffer) {\r
//\r
// Only need to read the data into buffer one time\r
//\r
}\r
}\r
\r
- if (Private->TextOutList[Index].UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
+ if ((Private->TextOutList[Index].UgaDraw != NULL) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = Private->TextOutList[Index].UgaDraw->Blt (\r
Private->TextOutList[Index].UgaDraw,\r
BltBuffer,\r
// been checked in ConSplitterTextOutSetCursorPosition. And (0, 0) should\r
// always be supported.\r
//\r
- Private->TextOutMode.Mode = (INT32) ModeNumber;\r
+ Private->TextOutMode.Mode = (INT32)ModeNumber;\r
Private->TextOutMode.CursorColumn = 0;\r
Private->TextOutMode.CursorRow = 0;\r
Private->TextOutMode.CursorVisible = TRUE;\r