Fix the issue that the GOP produced by ConSplitter requires SetMode before GetMode, otherwise EFI_NOT_STARTED is returned from GetMode.

Signed-off-by: niruiyu
Reviewed-by: xdu2

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11815 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
niruiyu 2011-06-13 05:16:02 +00:00
parent 77df6ed94e
commit 9de33db48b
3 changed files with 3 additions and 16 deletions

View File

@ -16,7 +16,7 @@
never removed. Such design ensures sytem function well during none console
device situation.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -169,7 +169,6 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *) NULL,
0,
0,
TRUE,
0,
(TEXT_OUT_AND_GOP_DATA *) NULL,
@ -225,7 +224,6 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *) NULL,
0,
0,
TRUE,
0,
(TEXT_OUT_AND_GOP_DATA *) NULL,
@ -2832,9 +2830,7 @@ Done:
//
// Force GraphicsOutput mode to be set,
// regardless whether the console is in EfiConsoleControlScreenGraphics or EfiConsoleControlScreenText mode
//
Private->HardwareNeedsStarting = TRUE;
Mode = &Private->GraphicsOutputModeBuffer[CurrentIndex];
if ((GraphicsOutput != NULL) &&

View File

@ -1,7 +1,7 @@
/** @file
Private data structures for the Console Splitter driver
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -203,7 +203,6 @@ typedef struct {
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *GraphicsOutputModeBuffer;
UINTN CurrentNumberOfGraphicsOutput;
UINTN CurrentNumberOfUgaDraw;
BOOLEAN HardwareNeedsStarting;
UINTN CurrentNumberOfConsoles;
TEXT_OUT_AND_GOP_DATA *TextOutList;
@ -1766,7 +1765,6 @@ ConSplitterGrowBuffer (
@retval EFI_SUCCESS Mode information returned.
@retval EFI_BUFFER_TOO_SMALL The Info buffer was too small.
@retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the video mode.
@retval EFI_NOT_STARTED Video display is not initialized. Call SetMode ()
@retval EFI_INVALID_PARAMETER One of the input args was NULL.
@retval EFI_OUT_OF_RESOURCES No resource available.

View File

@ -1,7 +1,7 @@
/** @file
Support for Graphics output spliter.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -30,7 +30,6 @@ CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };
@retval EFI_SUCCESS Mode information returned.
@retval EFI_BUFFER_TOO_SMALL The Info buffer was too small.
@retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the video mode.
@retval EFI_NOT_STARTED Video display is not initialized. Call SetMode ()
@retval EFI_INVALID_PARAMETER One of the input args was NULL.
@retval EFI_OUT_OF_RESOURCES No resource available.
@ -55,10 +54,6 @@ ConSplitterGraphicsOutputQueryMode (
//
Private = GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
if (Private->HardwareNeedsStarting) {
return EFI_NOT_STARTED;
}
*Info = AllocatePool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
if (*Info == NULL) {
return EFI_OUT_OF_RESOURCES;
@ -164,8 +159,6 @@ ConSplitterGraphicsOutputSetMode (
// These items will be initialized/updated when a new GOP device is added into ConsoleSplitter.
//
Private->HardwareNeedsStarting = FALSE;
return ReturnStatus;
}