summaryrefslogtreecommitdiff
path: root/OvmfPkg/VirtioGpuDxe/DriverBinding.c
diff options
context:
space:
mode:
authorMichael Kubacki <michael.kubacki@microsoft.com>2021-12-05 14:54:09 -0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-12-07 17:24:28 +0000
commitac0a286f4d747a4c6c603a7b225917293cbe1e9f (patch)
tree32654f2b35755afc961e2c97296b2dec5762da75 /OvmfPkg/VirtioGpuDxe/DriverBinding.c
parentd1050b9dff1cace252aff86630bfdb59dff5f507 (diff)
downloadedk2-ac0a286f4d747a4c6c603a7b225917293cbe1e9f.zip
edk2-ac0a286f4d747a4c6c603a7b225917293cbe1e9f.tar.gz
edk2-ac0a286f4d747a4c6c603a7b225917293cbe1e9f.tar.bz2
OvmfPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
Diffstat (limited to 'OvmfPkg/VirtioGpuDxe/DriverBinding.c')
-rw-r--r--OvmfPkg/VirtioGpuDxe/DriverBinding.c688
1 files changed, 454 insertions, 234 deletions
diff --git a/OvmfPkg/VirtioGpuDxe/DriverBinding.c b/OvmfPkg/VirtioGpuDxe/DriverBinding.c
index 666d577..21bf2ba 100644
--- a/OvmfPkg/VirtioGpuDxe/DriverBinding.c
+++ b/OvmfPkg/VirtioGpuDxe/DriverBinding.c
@@ -29,13 +29,14 @@
// in the ACPI 3.0b spec, or more recently, to Table B-379, section "B.3.2
// _DOD" in the ACPI 6.0 spec.
//
-STATIC CONST ACPI_ADR_DEVICE_PATH mAcpiAdr = {
+STATIC CONST ACPI_ADR_DEVICE_PATH mAcpiAdr = {
{ // Header
ACPI_DEVICE_PATH, // Type
ACPI_ADR_DP, // SubType
{ sizeof mAcpiAdr, 0 }, // Length
},
- ACPI_DISPLAY_ADR ( // ADR
+ ACPI_DISPLAY_ADR (
+ // ADR
1, // DeviceIdScheme: use the ACPI
// bit-field definitions
0, // HeadId
@@ -51,7 +52,7 @@ STATIC CONST ACPI_ADR_DEVICE_PATH mAcpiAdr = {
//
// Component Name 2 Protocol implementation.
//
-STATIC CONST EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
+STATIC CONST EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
{ "en", L"Virtio GPU Driver" },
{ NULL, NULL }
};
@@ -60,51 +61,72 @@ STATIC
EFI_STATUS
EFIAPI
VirtioGpuGetDriverName (
- IN EFI_COMPONENT_NAME2_PROTOCOL *This,
- IN CHAR8 *Language,
- OUT CHAR16 **DriverName
+ IN EFI_COMPONENT_NAME2_PROTOCOL *This,
+ IN CHAR8 *Language,
+ OUT CHAR16 **DriverName
)
{
- return LookupUnicodeString2 (Language, This->SupportedLanguages,
- mDriverNameTable, DriverName, FALSE /* Iso639Language */);
+ return LookupUnicodeString2 (
+ Language,
+ This->SupportedLanguages,
+ mDriverNameTable,
+ DriverName,
+ FALSE /* Iso639Language */
+ );
}
STATIC
EFI_STATUS
EFIAPI
VirtioGpuGetControllerName (
- IN EFI_COMPONENT_NAME2_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME2_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
- VGPU_DEV *VgpuDev;
+ EFI_STATUS Status;
+ VGPU_DEV *VgpuDev;
//
// Look up the VGPU_DEV "protocol interface" on ControllerHandle.
//
- Status = gBS->OpenProtocol (ControllerHandle, &gEfiCallerIdGuid,
- (VOID **)&VgpuDev, gImageHandle, ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ (VOID **)&VgpuDev,
+ gImageHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Sanity check: if we found gEfiCallerIdGuid on ControllerHandle, then we
// keep its Virtio Device Protocol interface open BY_DRIVER.
//
- ASSERT_EFI_ERROR (EfiTestManagedDevice (ControllerHandle, gImageHandle,
- &gVirtioDeviceProtocolGuid));
+ ASSERT_EFI_ERROR (
+ EfiTestManagedDevice (
+ ControllerHandle,
+ gImageHandle,
+ &gVirtioDeviceProtocolGuid
+ )
+ );
if (ChildHandle == NULL) {
//
// The caller is querying the name of the VGPU_DEV controller.
//
- return LookupUnicodeString2 (Language, This->SupportedLanguages,
- VgpuDev->BusName, ControllerName, FALSE /* Iso639Language */);
+ return LookupUnicodeString2 (
+ Language,
+ This->SupportedLanguages,
+ VgpuDev->BusName,
+ ControllerName,
+ FALSE /* Iso639Language */
+ );
}
//
@@ -113,22 +135,32 @@ VirtioGpuGetControllerName (
// condition below covers the case when we haven't produced the GOP child
// controller yet, or we've destroyed it since.)
//
- if (VgpuDev->Child == NULL || ChildHandle != VgpuDev->Child->GopHandle) {
+ if ((VgpuDev->Child == NULL) || (ChildHandle != VgpuDev->Child->GopHandle)) {
return EFI_UNSUPPORTED;
}
+
//
// Sanity check: our GOP child controller keeps the VGPU_DEV controller's
// Virtio Device Protocol interface open BY_CHILD_CONTROLLER.
//
- ASSERT_EFI_ERROR (EfiTestChildHandle (ControllerHandle, ChildHandle,
- &gVirtioDeviceProtocolGuid));
-
- return LookupUnicodeString2 (Language, This->SupportedLanguages,
- VgpuDev->Child->GopName, ControllerName,
- FALSE /* Iso639Language */);
+ ASSERT_EFI_ERROR (
+ EfiTestChildHandle (
+ ControllerHandle,
+ ChildHandle,
+ &gVirtioDeviceProtocolGuid
+ )
+ );
+
+ return LookupUnicodeString2 (
+ Language,
+ This->SupportedLanguages,
+ VgpuDev->Child->GopName,
+ ControllerName,
+ FALSE /* Iso639Language */
+ );
}
-STATIC CONST EFI_COMPONENT_NAME2_PROTOCOL mComponentName2 = {
+STATIC CONST EFI_COMPONENT_NAME2_PROTOCOL mComponentName2 = {
VirtioGpuGetDriverName,
VirtioGpuGetControllerName,
"en" // SupportedLanguages (RFC 4646)
@@ -137,6 +169,7 @@ STATIC CONST EFI_COMPONENT_NAME2_PROTOCOL mComponentName2 = {
//
// Helper functions for the Driver Binding Protocol Implementation.
//
+
/**
Format the VGPU_DEV controller name, to be looked up and returned by
VirtioGpuGetControllerName().
@@ -170,32 +203,55 @@ STATIC CONST EFI_COMPONENT_NAME2_PROTOCOL mComponentName2 = {
STATIC
EFI_STATUS
FormatVgpuDevName (
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE AgentHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- OUT CHAR16 **ControllerName
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE AgentHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ OUT CHAR16 **ControllerName
)
{
- EFI_HANDLE PciIoHandle;
- EFI_PCI_IO_PROTOCOL *PciIo;
- UINTN Segment, Bus, Device, Function;
- STATIC CONST CHAR16 ControllerNameStem[] = L"Virtio GPU Device";
- UINTN ControllerNameSize;
-
- if (EFI_ERROR (gBS->LocateDevicePath (&gEfiPciIoProtocolGuid, &DevicePath,
- &PciIoHandle)) ||
- EFI_ERROR (gBS->OpenProtocol (PciIoHandle, &gEfiPciIoProtocolGuid,
- (VOID **)&PciIo, AgentHandle, ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL)) ||
- EFI_ERROR (PciIo->GetLocation (PciIo, &Segment, &Bus, &Device,
- &Function))) {
+ EFI_HANDLE PciIoHandle;
+ EFI_PCI_IO_PROTOCOL *PciIo;
+ UINTN Segment, Bus, Device, Function;
+ STATIC CONST CHAR16 ControllerNameStem[] = L"Virtio GPU Device";
+ UINTN ControllerNameSize;
+
+ if (EFI_ERROR (
+ gBS->LocateDevicePath (
+ &gEfiPciIoProtocolGuid,
+ &DevicePath,
+ &PciIoHandle
+ )
+ ) ||
+ EFI_ERROR (
+ gBS->OpenProtocol (
+ PciIoHandle,
+ &gEfiPciIoProtocolGuid,
+ (VOID **)&PciIo,
+ AgentHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ )
+ ) ||
+ EFI_ERROR (
+ PciIo->GetLocation (
+ PciIo,
+ &Segment,
+ &Bus,
+ &Device,
+ &Function
+ )
+ ))
+ {
//
// Failed to retrieve location info, return verbatim copy of static string.
//
- *ControllerName = AllocateCopyPool (sizeof ControllerNameStem,
- ControllerNameStem);
+ *ControllerName = AllocateCopyPool (
+ sizeof ControllerNameStem,
+ ControllerNameStem
+ );
return (*ControllerName == NULL) ? EFI_OUT_OF_RESOURCES : EFI_SUCCESS;
}
+
//
// Location info available, format ControllerName dynamically.
//
@@ -210,9 +266,16 @@ FormatVgpuDevName (
return EFI_OUT_OF_RESOURCES;
}
- UnicodeSPrintAsciiFormat (*ControllerName, ControllerNameSize,
- "%s %04x:%02x:%02x.%x", ControllerNameStem, (UINT32)Segment, (UINT32)Bus,
- (UINT32)Device, (UINT32)Function);
+ UnicodeSPrintAsciiFormat (
+ *ControllerName,
+ ControllerNameSize,
+ "%s %04x:%02x:%02x.%x",
+ ControllerNameStem,
+ (UINT32)Segment,
+ (UINT32)Bus,
+ (UINT32)Device,
+ (UINT32)Function
+ );
return EFI_SUCCESS;
}
@@ -254,20 +317,20 @@ FormatVgpuDevName (
STATIC
EFI_STATUS
InitVgpuGop (
- IN OUT VGPU_DEV *ParentBus,
- IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
- IN EFI_HANDLE ParentBusController,
- IN EFI_HANDLE DriverBindingHandle
+ IN OUT VGPU_DEV *ParentBus,
+ IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
+ IN EFI_HANDLE ParentBusController,
+ IN EFI_HANDLE DriverBindingHandle
)
{
- VGPU_GOP *VgpuGop;
- EFI_STATUS Status;
- CHAR16 *ParentBusName;
- STATIC CONST CHAR16 NameSuffix[] = L" Head #0";
- UINTN NameSize;
- CHAR16 *Name;
- EFI_TPL OldTpl;
- VOID *ParentVirtIo;
+ VGPU_GOP *VgpuGop;
+ EFI_STATUS Status;
+ CHAR16 *ParentBusName;
+ STATIC CONST CHAR16 NameSuffix[] = L" Head #0";
+ UINTN NameSize;
+ CHAR16 *Name;
+ EFI_TPL OldTpl;
+ VOID *ParentVirtIo;
VgpuGop = AllocateZeroPool (sizeof *VgpuGop);
if (VgpuGop == NULL) {
@@ -282,18 +345,29 @@ InitVgpuGop (
// VirtioGpuGetControllerName() to look up. We simply append NameSuffix to
// ParentBus->BusName.
//
- Status = LookupUnicodeString2 ("en", mComponentName2.SupportedLanguages,
- ParentBus->BusName, &ParentBusName, FALSE /* Iso639Language */);
+ Status = LookupUnicodeString2 (
+ "en",
+ mComponentName2.SupportedLanguages,
+ ParentBus->BusName,
+ &ParentBusName,
+ FALSE /* Iso639Language */
+ );
ASSERT_EFI_ERROR (Status);
NameSize = StrSize (ParentBusName) - sizeof (CHAR16) + sizeof NameSuffix;
- Name = AllocatePool (NameSize);
+ Name = AllocatePool (NameSize);
if (Name == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto FreeVgpuGop;
}
+
UnicodeSPrintAsciiFormat (Name, NameSize, "%s%s", ParentBusName, NameSuffix);
- Status = AddUnicodeString2 ("en", mComponentName2.SupportedLanguages,
- &VgpuGop->GopName, Name, FALSE /* Iso639Language */);
+ Status = AddUnicodeString2 (
+ "en",
+ mComponentName2.SupportedLanguages,
+ &VgpuGop->GopName,
+ Name,
+ FALSE /* Iso639Language */
+ );
FreePool (Name);
if (EFI_ERROR (Status)) {
goto FreeVgpuGop;
@@ -302,8 +376,10 @@ InitVgpuGop (
//
// Create the child device path.
//
- VgpuGop->GopDevicePath = AppendDevicePathNode (ParentDevicePath,
- &mAcpiAdr.Header);
+ VgpuGop->GopDevicePath = AppendDevicePathNode (
+ ParentDevicePath,
+ &mAcpiAdr.Header
+ );
if (VgpuGop->GopDevicePath == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto FreeVgpuGopName;
@@ -317,9 +393,12 @@ InitVgpuGop (
//
// Create the child handle with the child device path.
//
- Status = gBS->InstallProtocolInterface (&VgpuGop->GopHandle,
- &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,
- VgpuGop->GopDevicePath);
+ Status = gBS->InstallProtocolInterface (
+ &VgpuGop->GopHandle,
+ &gEfiDevicePathProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ VgpuGop->GopDevicePath
+ );
if (EFI_ERROR (Status)) {
goto FreeDevicePath;
}
@@ -328,12 +407,18 @@ InitVgpuGop (
// The child handle must present a reference to the parent handle's Virtio
// Device Protocol interface.
//
- Status = gBS->OpenProtocol (ParentBusController, &gVirtioDeviceProtocolGuid,
- &ParentVirtIo, DriverBindingHandle, VgpuGop->GopHandle,
- EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER);
+ Status = gBS->OpenProtocol (
+ ParentBusController,
+ &gVirtioDeviceProtocolGuid,
+ &ParentVirtIo,
+ DriverBindingHandle,
+ VgpuGop->GopHandle,
+ EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
+ );
if (EFI_ERROR (Status)) {
goto UninstallDevicePath;
}
+
ASSERT (ParentVirtIo == ParentBus->VirtIo);
//
@@ -351,9 +436,12 @@ InitVgpuGop (
//
// Install the Graphics Output Protocol on the child handle.
//
- Status = gBS->InstallProtocolInterface (&VgpuGop->GopHandle,
- &gEfiGraphicsOutputProtocolGuid, EFI_NATIVE_INTERFACE,
- &VgpuGop->Gop);
+ Status = gBS->InstallProtocolInterface (
+ &VgpuGop->GopHandle,
+ &gEfiGraphicsOutputProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &VgpuGop->Gop
+ );
if (EFI_ERROR (Status)) {
goto UninitGop;
}
@@ -369,12 +457,19 @@ UninitGop:
ReleaseGopResources (VgpuGop, TRUE /* DisableHead */);
CloseVirtIoByChild:
- gBS->CloseProtocol (ParentBusController, &gVirtioDeviceProtocolGuid,
- DriverBindingHandle, VgpuGop->GopHandle);
+ gBS->CloseProtocol (
+ ParentBusController,
+ &gVirtioDeviceProtocolGuid,
+ DriverBindingHandle,
+ VgpuGop->GopHandle
+ );
UninstallDevicePath:
- gBS->UninstallProtocolInterface (VgpuGop->GopHandle,
- &gEfiDevicePathProtocolGuid, VgpuGop->GopDevicePath);
+ gBS->UninstallProtocolInterface (
+ VgpuGop->GopHandle,
+ &gEfiDevicePathProtocolGuid,
+ VgpuGop->GopDevicePath
+ );
FreeDevicePath:
gBS->RestoreTPL (OldTpl);
@@ -412,17 +507,20 @@ FreeVgpuGop:
STATIC
VOID
UninitVgpuGop (
- IN OUT VGPU_DEV *ParentBus,
- IN EFI_HANDLE ParentBusController,
- IN EFI_HANDLE DriverBindingHandle
+ IN OUT VGPU_DEV *ParentBus,
+ IN EFI_HANDLE ParentBusController,
+ IN EFI_HANDLE DriverBindingHandle
)
{
- VGPU_GOP *VgpuGop;
- EFI_STATUS Status;
+ VGPU_GOP *VgpuGop;
+ EFI_STATUS Status;
VgpuGop = ParentBus->Child;
- Status = gBS->UninstallProtocolInterface (VgpuGop->GopHandle,
- &gEfiGraphicsOutputProtocolGuid, &VgpuGop->Gop);
+ Status = gBS->UninstallProtocolInterface (
+ VgpuGop->GopHandle,
+ &gEfiGraphicsOutputProtocolGuid,
+ &VgpuGop->Gop
+ );
ASSERT_EFI_ERROR (Status);
//
@@ -430,12 +528,19 @@ UninitVgpuGop (
//
ReleaseGopResources (VgpuGop, TRUE /* DisableHead */);
- Status = gBS->CloseProtocol (ParentBusController, &gVirtioDeviceProtocolGuid,
- DriverBindingHandle, VgpuGop->GopHandle);
+ Status = gBS->CloseProtocol (
+ ParentBusController,
+ &gVirtioDeviceProtocolGuid,
+ DriverBindingHandle,
+ VgpuGop->GopHandle
+ );
ASSERT_EFI_ERROR (Status);
- Status = gBS->UninstallProtocolInterface (VgpuGop->GopHandle,
- &gEfiDevicePathProtocolGuid, VgpuGop->GopDevicePath);
+ Status = gBS->UninstallProtocolInterface (
+ VgpuGop->GopHandle,
+ &gEfiDevicePathProtocolGuid,
+ VgpuGop->GopDevicePath
+ );
ASSERT_EFI_ERROR (Status);
FreePool (VgpuGop->GopDevicePath);
@@ -452,13 +557,13 @@ STATIC
EFI_STATUS
EFIAPI
VirtioGpuDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
)
{
- EFI_STATUS Status;
- VIRTIO_DEVICE_PROTOCOL *VirtIo;
+ EFI_STATUS Status;
+ VIRTIO_DEVICE_PROTOCOL *VirtIo;
//
// - If RemainingDevicePath is NULL: the caller is interested in creating all
@@ -469,19 +574,25 @@ VirtioGpuDriverBindingSupported (
// specified in RemainingDevicePath. In this case we have to see if the
// requested device path is supportable.
//
- if (RemainingDevicePath != NULL &&
+ if ((RemainingDevicePath != NULL) &&
!IsDevicePathEnd (RemainingDevicePath) &&
- (DevicePathNodeLength (RemainingDevicePath) != sizeof mAcpiAdr ||
- CompareMem (RemainingDevicePath, &mAcpiAdr, sizeof mAcpiAdr) != 0)) {
+ ((DevicePathNodeLength (RemainingDevicePath) != sizeof mAcpiAdr) ||
+ (CompareMem (RemainingDevicePath, &mAcpiAdr, sizeof mAcpiAdr) != 0)))
+ {
return EFI_UNSUPPORTED;
}
//
// Open the Virtio Device Protocol interface on the controller, BY_DRIVER.
//
- Status = gBS->OpenProtocol (ControllerHandle, &gVirtioDeviceProtocolGuid,
- (VOID **)&VirtIo, This->DriverBindingHandle,
- ControllerHandle, EFI_OPEN_PROTOCOL_BY_DRIVER);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gVirtioDeviceProtocolGuid,
+ (VOID **)&VirtIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
if (EFI_ERROR (Status)) {
//
// If this fails, then by default we cannot support ControllerHandle. There
@@ -491,17 +602,23 @@ VirtioGpuDriverBindingSupported (
// allowed.
//
if (Status == EFI_ALREADY_STARTED) {
- EFI_STATUS Status2;
- VGPU_DEV *VgpuDev;
-
- Status2 = gBS->OpenProtocol (ControllerHandle, &gEfiCallerIdGuid,
- (VOID **)&VgpuDev, This->DriverBindingHandle,
- ControllerHandle, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+ EFI_STATUS Status2;
+ VGPU_DEV *VgpuDev;
+
+ Status2 = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ (VOID **)&VgpuDev,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
ASSERT_EFI_ERROR (Status2);
- if (VgpuDev->Child == NULL &&
- (RemainingDevicePath == NULL ||
- !IsDevicePathEnd (RemainingDevicePath))) {
+ if ((VgpuDev->Child == NULL) &&
+ ((RemainingDevicePath == NULL) ||
+ !IsDevicePathEnd (RemainingDevicePath)))
+ {
Status = EFI_SUCCESS;
}
}
@@ -512,8 +629,9 @@ VirtioGpuDriverBindingSupported (
//
// First BY_DRIVER open; check the VirtIo revision and subsystem.
//
- if (VirtIo->Revision < VIRTIO_SPEC_REVISION (1, 0, 0) ||
- VirtIo->SubSystemDeviceId != VIRTIO_SUBSYSTEM_GPU_DEVICE) {
+ if ((VirtIo->Revision < VIRTIO_SPEC_REVISION (1, 0, 0)) ||
+ (VirtIo->SubSystemDeviceId != VIRTIO_SUBSYSTEM_GPU_DEVICE))
+ {
Status = EFI_UNSUPPORTED;
goto CloseVirtIo;
}
@@ -522,13 +640,22 @@ VirtioGpuDriverBindingSupported (
// We'll need the device path of the VirtIo device both for formatting
// VGPU_DEV.BusName and for populating VGPU_GOP.GopDevicePath.
//
- Status = gBS->OpenProtocol (ControllerHandle, &gEfiDevicePathProtocolGuid,
- NULL, This->DriverBindingHandle, ControllerHandle,
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ NULL,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_TEST_PROTOCOL
+ );
CloseVirtIo:
- gBS->CloseProtocol (ControllerHandle, &gVirtioDeviceProtocolGuid,
- This->DriverBindingHandle, ControllerHandle);
+ gBS->CloseProtocol (
+ ControllerHandle,
+ &gVirtioDeviceProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return Status;
}
@@ -537,16 +664,16 @@ STATIC
EFI_STATUS
EFIAPI
VirtioGpuDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
)
{
- EFI_STATUS Status;
- VIRTIO_DEVICE_PROTOCOL *VirtIo;
- BOOLEAN VirtIoBoundJustNow;
- VGPU_DEV *VgpuDev;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_STATUS Status;
+ VIRTIO_DEVICE_PROTOCOL *VirtIo;
+ BOOLEAN VirtIoBoundJustNow;
+ VGPU_DEV *VgpuDev;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
//
// Open the Virtio Device Protocol.
@@ -556,9 +683,14 @@ VirtioGpuDriverBindingStart (
// binding the VirtIo controller on this call (with or without creating child
// controllers), or else we're *only* creating child controllers.
//
- Status = gBS->OpenProtocol (ControllerHandle, &gVirtioDeviceProtocolGuid,
- (VOID **)&VirtIo, This->DriverBindingHandle,
- ControllerHandle, EFI_OPEN_PROTOCOL_BY_DRIVER);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gVirtioDeviceProtocolGuid,
+ (VOID **)&VirtIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
if (EFI_ERROR (Status)) {
//
// The assertions below are based on the success of
@@ -568,14 +700,20 @@ VirtioGpuDriverBindingStart (
//
ASSERT (Status == EFI_ALREADY_STARTED);
- Status = gBS->OpenProtocol (ControllerHandle, &gEfiCallerIdGuid,
- (VOID **)&VgpuDev, This->DriverBindingHandle,
- ControllerHandle, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ (VOID **)&VgpuDev,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
ASSERT_EFI_ERROR (Status);
ASSERT (VgpuDev->Child == NULL);
ASSERT (
- RemainingDevicePath == NULL || !IsDevicePathEnd (RemainingDevicePath));
+ RemainingDevicePath == NULL || !IsDevicePathEnd (RemainingDevicePath)
+ );
VirtIoBoundJustNow = FALSE;
} else {
@@ -589,6 +727,7 @@ VirtioGpuDriverBindingStart (
Status = EFI_OUT_OF_RESOURCES;
goto CloseVirtIo;
}
+
VgpuDev->VirtIo = VirtIo;
}
@@ -596,9 +735,14 @@ VirtioGpuDriverBindingStart (
// Grab the VirtIo controller's device path. This is necessary regardless of
// VirtIoBoundJustNow.
//
- Status = gBS->OpenProtocol (ControllerHandle, &gEfiDevicePathProtocolGuid,
- (VOID **)&DevicePath, This->DriverBindingHandle,
- ControllerHandle, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ (VOID **)&DevicePath,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
goto FreeVgpuDev;
}
@@ -608,19 +752,29 @@ VirtioGpuDriverBindingStart (
// if we aren't *only* creating child handles).
//
if (VirtIoBoundJustNow) {
- CHAR16 *VgpuDevName;
+ CHAR16 *VgpuDevName;
//
// Format a human-readable controller name for VGPU_DEV, and stash it for
// VirtioGpuGetControllerName() to look up.
//
- Status = FormatVgpuDevName (ControllerHandle, This->DriverBindingHandle,
- DevicePath, &VgpuDevName);
+ Status = FormatVgpuDevName (
+ ControllerHandle,
+ This->DriverBindingHandle,
+ DevicePath,
+ &VgpuDevName
+ );
if (EFI_ERROR (Status)) {
goto FreeVgpuDev;
}
- Status = AddUnicodeString2 ("en", mComponentName2.SupportedLanguages,
- &VgpuDev->BusName, VgpuDevName, FALSE /* Iso639Language */);
+
+ Status = AddUnicodeString2 (
+ "en",
+ mComponentName2.SupportedLanguages,
+ &VgpuDev->BusName,
+ VgpuDevName,
+ FALSE /* Iso639Language */
+ );
FreePool (VgpuDevName);
if (EFI_ERROR (Status)) {
goto FreeVgpuDev;
@@ -631,9 +785,13 @@ VirtioGpuDriverBindingStart (
goto FreeVgpuDevBusName;
}
- Status = gBS->CreateEvent (EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_CALLBACK,
- VirtioGpuExitBoot, VgpuDev /* NotifyContext */,
- &VgpuDev->ExitBoot);
+ Status = gBS->CreateEvent (
+ EVT_SIGNAL_EXIT_BOOT_SERVICES,
+ TPL_CALLBACK,
+ VirtioGpuExitBoot,
+ VgpuDev /* NotifyContext */,
+ &VgpuDev->ExitBoot
+ );
if (EFI_ERROR (Status)) {
goto UninitGpu;
}
@@ -641,18 +799,26 @@ VirtioGpuDriverBindingStart (
//
// Install the VGPU_DEV "protocol interface" on ControllerHandle.
//
- Status = gBS->InstallProtocolInterface (&ControllerHandle,
- &gEfiCallerIdGuid, EFI_NATIVE_INTERFACE, VgpuDev);
+ Status = gBS->InstallProtocolInterface (
+ &ControllerHandle,
+ &gEfiCallerIdGuid,
+ EFI_NATIVE_INTERFACE,
+ VgpuDev
+ );
if (EFI_ERROR (Status)) {
goto CloseExitBoot;
}
- if (RemainingDevicePath != NULL && IsDevicePathEnd (RemainingDevicePath)) {
+ if ((RemainingDevicePath != NULL) && IsDevicePathEnd (RemainingDevicePath)) {
//
// No child handle should be produced; we're done.
//
- DEBUG ((DEBUG_INFO, "%a: bound VirtIo=%p without producing GOP\n",
- __FUNCTION__, (VOID *)VgpuDev->VirtIo));
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: bound VirtIo=%p without producing GOP\n",
+ __FUNCTION__,
+ (VOID *)VgpuDev->VirtIo
+ ));
return EFI_SUCCESS;
}
}
@@ -663,10 +829,15 @@ VirtioGpuDriverBindingStart (
//
ASSERT (VgpuDev->Child == NULL);
ASSERT (
- RemainingDevicePath == NULL || !IsDevicePathEnd (RemainingDevicePath));
-
- Status = InitVgpuGop (VgpuDev, DevicePath, ControllerHandle,
- This->DriverBindingHandle);
+ RemainingDevicePath == NULL || !IsDevicePathEnd (RemainingDevicePath)
+ );
+
+ Status = InitVgpuGop (
+ VgpuDev,
+ DevicePath,
+ ControllerHandle,
+ This->DriverBindingHandle
+ );
if (EFI_ERROR (Status)) {
goto UninstallVgpuDev;
}
@@ -674,15 +845,22 @@ VirtioGpuDriverBindingStart (
//
// We're done.
//
- DEBUG ((DEBUG_INFO, "%a: produced GOP %a VirtIo=%p\n", __FUNCTION__,
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: produced GOP %a VirtIo=%p\n",
+ __FUNCTION__,
VirtIoBoundJustNow ? "while binding" : "for pre-bound",
- (VOID *)VgpuDev->VirtIo));
+ (VOID *)VgpuDev->VirtIo
+ ));
return EFI_SUCCESS;
UninstallVgpuDev:
if (VirtIoBoundJustNow) {
- gBS->UninstallProtocolInterface (ControllerHandle, &gEfiCallerIdGuid,
- VgpuDev);
+ gBS->UninstallProtocolInterface (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ VgpuDev
+ );
}
CloseExitBoot:
@@ -707,8 +885,12 @@ FreeVgpuDev:
CloseVirtIo:
if (VirtIoBoundJustNow) {
- gBS->CloseProtocol (ControllerHandle, &gVirtioDeviceProtocolGuid,
- This->DriverBindingHandle, ControllerHandle);
+ gBS->CloseProtocol (
+ ControllerHandle,
+ &gVirtioDeviceProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
}
return Status;
@@ -718,101 +900,134 @@ STATIC
EFI_STATUS
EFIAPI
VirtioGpuDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
)
{
- EFI_STATUS Status;
- VGPU_DEV *VgpuDev;
+ EFI_STATUS Status;
+ VGPU_DEV *VgpuDev;
//
// Look up the VGPU_DEV "protocol interface" on ControllerHandle.
//
- Status = gBS->OpenProtocol (ControllerHandle, &gEfiCallerIdGuid,
- (VOID **)&VgpuDev, This->DriverBindingHandle,
- ControllerHandle, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ (VOID **)&VgpuDev,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Sanity check: if we found gEfiCallerIdGuid on ControllerHandle, then we
// keep its Virtio Device Protocol interface open BY_DRIVER.
//
- ASSERT_EFI_ERROR (EfiTestManagedDevice (ControllerHandle,
- This->DriverBindingHandle, &gVirtioDeviceProtocolGuid));
+ ASSERT_EFI_ERROR (
+ EfiTestManagedDevice (
+ ControllerHandle,
+ This->DriverBindingHandle,
+ &gVirtioDeviceProtocolGuid
+ )
+ );
switch (NumberOfChildren) {
- case 0:
- //
- // The caller wants us to unbind the VirtIo controller.
- //
- if (VgpuDev->Child != NULL) {
+ case 0:
//
- // We still have the GOP child.
+ // The caller wants us to unbind the VirtIo controller.
//
- Status = EFI_DEVICE_ERROR;
- break;
- }
-
- DEBUG ((DEBUG_INFO, "%a: unbinding GOP-less VirtIo=%p\n", __FUNCTION__,
- (VOID *)VgpuDev->VirtIo));
-
- Status = gBS->UninstallProtocolInterface (ControllerHandle,
- &gEfiCallerIdGuid, VgpuDev);
- ASSERT_EFI_ERROR (Status);
+ if (VgpuDev->Child != NULL) {
+ //
+ // We still have the GOP child.
+ //
+ Status = EFI_DEVICE_ERROR;
+ break;
+ }
- Status = gBS->CloseEvent (VgpuDev->ExitBoot);
- ASSERT_EFI_ERROR (Status);
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: unbinding GOP-less VirtIo=%p\n",
+ __FUNCTION__,
+ (VOID *)VgpuDev->VirtIo
+ ));
+
+ Status = gBS->UninstallProtocolInterface (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ VgpuDev
+ );
+ ASSERT_EFI_ERROR (Status);
+
+ Status = gBS->CloseEvent (VgpuDev->ExitBoot);
+ ASSERT_EFI_ERROR (Status);
+
+ VirtioGpuUninit (VgpuDev);
+ FreeUnicodeStringTable (VgpuDev->BusName);
+ FreePool (VgpuDev);
+
+ Status = gBS->CloseProtocol (
+ ControllerHandle,
+ &gVirtioDeviceProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
+ ASSERT_EFI_ERROR (Status);
+ break;
- VirtioGpuUninit (VgpuDev);
- FreeUnicodeStringTable (VgpuDev->BusName);
- FreePool (VgpuDev);
+ case 1:
+ //
+ // The caller wants us to destroy our child GOP controller.
+ //
+ if ((VgpuDev->Child == NULL) ||
+ (ChildHandleBuffer[0] != VgpuDev->Child->GopHandle))
+ {
+ //
+ // We have no child controller at the moment, or it differs from the one
+ // the caller wants us to destroy. I.e., we don't own the child
+ // controller passed in.
+ //
+ Status = EFI_DEVICE_ERROR;
+ break;
+ }
- Status = gBS->CloseProtocol (ControllerHandle, &gVirtioDeviceProtocolGuid,
- This->DriverBindingHandle, ControllerHandle);
- ASSERT_EFI_ERROR (Status);
- break;
+ //
+ // Sanity check: our GOP child controller keeps the VGPU_DEV controller's
+ // Virtio Device Protocol interface open BY_CHILD_CONTROLLER.
+ //
+ ASSERT_EFI_ERROR (
+ EfiTestChildHandle (
+ ControllerHandle,
+ VgpuDev->Child->GopHandle,
+ &gVirtioDeviceProtocolGuid
+ )
+ );
+
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: destroying GOP under VirtIo=%p\n",
+ __FUNCTION__,
+ (VOID *)VgpuDev->VirtIo
+ ));
+ UninitVgpuGop (VgpuDev, ControllerHandle, This->DriverBindingHandle);
+ break;
- case 1:
- //
- // The caller wants us to destroy our child GOP controller.
- //
- if (VgpuDev->Child == NULL ||
- ChildHandleBuffer[0] != VgpuDev->Child->GopHandle) {
+ default:
//
- // We have no child controller at the moment, or it differs from the one
- // the caller wants us to destroy. I.e., we don't own the child
- // controller passed in.
+ // Impossible, we never produced more than one child.
//
Status = EFI_DEVICE_ERROR;
break;
- }
- //
- // Sanity check: our GOP child controller keeps the VGPU_DEV controller's
- // Virtio Device Protocol interface open BY_CHILD_CONTROLLER.
- //
- ASSERT_EFI_ERROR (EfiTestChildHandle (ControllerHandle,
- VgpuDev->Child->GopHandle,
- &gVirtioDeviceProtocolGuid));
-
- DEBUG ((DEBUG_INFO, "%a: destroying GOP under VirtIo=%p\n", __FUNCTION__,
- (VOID *)VgpuDev->VirtIo));
- UninitVgpuGop (VgpuDev, ControllerHandle, This->DriverBindingHandle);
- break;
-
- default:
- //
- // Impossible, we never produced more than one child.
- //
- Status = EFI_DEVICE_ERROR;
- break;
}
+
return Status;
}
-STATIC EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
+STATIC EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
VirtioGpuDriverBindingSupported,
VirtioGpuDriverBindingStart,
VirtioGpuDriverBindingStop,
@@ -827,11 +1042,16 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
EFI_STATUS
EFIAPI
VirtioGpuEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- return EfiLibInstallDriverBindingComponentName2 (ImageHandle, SystemTable,
- &mDriverBinding, ImageHandle, NULL /* ComponentName */,
- &mComponentName2);
+ return EfiLibInstallDriverBindingComponentName2 (
+ ImageHandle,
+ SystemTable,
+ &mDriverBinding,
+ ImageHandle,
+ NULL /* ComponentName */,
+ &mComponentName2
+ );
}