\r
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
\r
- 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
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
-#include <IndustryStandard/VmwareSvga.h>\r
#include "Qemu.h"\r
\r
STATIC\r
\r
Private->PciIo->GetBarAttributes (\r
Private->PciIo,\r
- 0,\r
+ Private->FrameBufferVramBarIndex,\r
NULL,\r
(VOID**) &FrameBufDesc\r
);\r
Mode->FrameBufferBase = FrameBufDesc->AddrRangeMin;\r
Mode->FrameBufferSize = Info->HorizontalResolution * Info->VerticalResolution;\r
Mode->FrameBufferSize = Mode->FrameBufferSize * ((ModeData->ColorDepth + 7) / 8);\r
+ Mode->FrameBufferSize = EFI_PAGES_TO_SIZE (\r
+ EFI_SIZE_TO_PAGES (Mode->FrameBufferSize)\r
+ );\r
DEBUG ((EFI_D_INFO, "FrameBufferBase: 0x%Lx, FrameBufferSize: 0x%Lx\n",\r
Mode->FrameBufferBase, (UINT64)Mode->FrameBufferSize));\r
\r
return EFI_SUCCESS;\r
}\r
\r
-STATIC\r
-EFI_STATUS\r
-QemuVideoVmwareSvgaCompleteModeData (\r
- IN QEMU_VIDEO_PRIVATE_DATA *Private,\r
- OUT EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode\r
- )\r
-{\r
- EFI_STATUS Status;\r
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
- EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *FrameBufDesc;\r
- UINT32 BytesPerLine, FbOffset, BytesPerPixel;\r
-\r
- Info = Mode->Info;\r
- CopyMem (Info, &Private->VmwareSvgaModeInfo[Mode->Mode], sizeof (*Info));\r
- BytesPerPixel = Private->ModeData[Mode->Mode].ColorDepth / 8;\r
- BytesPerLine = Info->PixelsPerScanLine * BytesPerPixel;\r
-\r
- FbOffset = VmwareSvgaRead (Private, VmwareSvgaRegFbOffset);\r
-\r
- Status = Private->PciIo->GetBarAttributes (\r
- Private->PciIo,\r
- PCI_BAR_IDX1,\r
- NULL,\r
- (VOID**) &FrameBufDesc\r
- );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_DEVICE_ERROR;\r
- }\r
-\r
- Mode->FrameBufferBase = FrameBufDesc->AddrRangeMin + FbOffset;\r
- Mode->FrameBufferSize = BytesPerLine * Info->VerticalResolution;\r
-\r
- FreePool (FrameBufDesc);\r
- return Status;\r
-}\r
-\r
-\r
//\r
// Graphics Output Protocol Member Functions\r
//\r
\r
*SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);\r
\r
- if (Private->Variant == QEMU_VIDEO_VMWARE_SVGA) {\r
- CopyMem (*Info, &Private->VmwareSvgaModeInfo[ModeNumber], sizeof (**Info));\r
- } else {\r
- ModeData = &Private->ModeData[ModeNumber];\r
- (*Info)->HorizontalResolution = ModeData->HorizontalResolution;\r
- (*Info)->VerticalResolution = ModeData->VerticalResolution;\r
- QemuVideoCompleteModeInfo (ModeData, *Info);\r
- }\r
+ ModeData = &Private->ModeData[ModeNumber];\r
+ (*Info)->HorizontalResolution = ModeData->HorizontalResolution;\r
+ (*Info)->VerticalResolution = ModeData->VerticalResolution;\r
+ QemuVideoCompleteModeInfo (ModeData, *Info);\r
\r
return EFI_SUCCESS;\r
}\r
case QEMU_VIDEO_BOCHS:\r
InitializeBochsGraphicsMode (Private, &QemuVideoBochsModes[ModeData->InternalModeIndex]);\r
break;\r
- case QEMU_VIDEO_VMWARE_SVGA:\r
- InitializeVmwareSvgaGraphicsMode (\r
- Private,\r
- &QemuVideoBochsModes[ModeData->InternalModeIndex]\r
- );\r
- break;\r
default:\r
ASSERT (FALSE);\r
return EFI_DEVICE_ERROR;\r
This->Mode->Info->VerticalResolution = ModeData->VerticalResolution;\r
This->Mode->SizeOfInfo = sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);\r
\r
- if (Private->Variant == QEMU_VIDEO_VMWARE_SVGA) {\r
- QemuVideoVmwareSvgaCompleteModeData (Private, This->Mode);\r
- } else {\r
- QemuVideoCompleteModeData (Private, This->Mode);\r
- }\r
+ QemuVideoCompleteModeData (Private, This->Mode);\r
\r
//\r
// Re-initialize the frame buffer configure when mode changes.\r