]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterGraphics.c
add PCD PcdUgaConsumeSupport to switch on/off EFI UGA Draw Protocol's consuming,...
[mirror_edk2.git] / MdeModulePkg / Universal / Console / ConSplitterDxe / ConSplitterGraphics.c
index 77c076fc8528329c08f13779ad61c9f76ccbda16..20f27a20fbd21f61b4f4d0c11bce32b6abee67c2 100644 (file)
@@ -311,7 +311,7 @@ Routine Description:
       }\r
     }\r
 \r
-    if (EFI_ERROR (ReturnStatus)) {\r
+    if (EFI_ERROR (ReturnStatus) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
       UgaDraw = Private->TextOutList[Index].UgaDraw;\r
       if (UgaDraw != NULL) {\r
         Status = UgaDraw->SetMode (\r
@@ -581,7 +581,7 @@ ConSpliterGraphicsOutputBlt (
     }\r
 \r
     UgaDraw = Private->TextOutList[Index].UgaDraw;\r
-    if (UgaDraw != NULL) {\r
+    if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
       Status = UgaDraw->Blt (\r
                               UgaDraw,\r
                               (EFI_UGA_PIXEL *) BltBuffer,\r
@@ -628,7 +628,7 @@ DevNullGopSync (
                       Private->GraphicsOutput.Mode->Info->VerticalResolution,\r
                       0\r
                       );\r
-  } else {\r
+  } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
     return UgaDraw->Blt (\r
                       UgaDraw,\r
                       (EFI_UGA_PIXEL *) Private->GraphicsOutputBlt,\r
@@ -641,6 +641,8 @@ DevNullGopSync (
                       Private->GraphicsOutput.Mode->Info->VerticalResolution,\r
                       0\r
                       );\r
+  } else {\r
+    return EFI_UNSUPPORTED;\r
   }\r
 }\r
 \r
@@ -767,17 +769,22 @@ ConSpliterUgaDrawSetMode (
   // return the worst status met\r
   //\r
   for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {\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
-      if (EFI_ERROR (Status)) {\r
-        ReturnStatus = Status;\r
+\r
+    ReturnStatus = EFI_UNSUPPORTED;\r
+\r
+    if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
+      UgaDraw = Private->TextOutList[Index].UgaDraw;\r
+      if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
+        Status = UgaDraw->SetMode (\r
+                            UgaDraw,\r
+                            HorizontalResolution,\r
+                            VerticalResolution,\r
+                            ColorDepth,\r
+                            RefreshRate\r
+                            );\r
+        if (EFI_ERROR (Status)) {\r
+          ReturnStatus = Status;\r
+        }\r
       }\r
     }\r
 \r
@@ -1043,7 +1050,7 @@ ConSpliterUgaDrawBlt (
       }\r
     }\r
 \r
-    if (Private->TextOutList[Index].UgaDraw != NULL) {\r
+    if (Private->TextOutList[Index].UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
       Status = Private->TextOutList[Index].UgaDraw->Blt (\r
                                                       Private->TextOutList[Index].UgaDraw,\r
                                                       BltBuffer,\r
@@ -1077,7 +1084,7 @@ DevNullUgaSync (
   IN  EFI_UGA_DRAW_PROTOCOL           *UgaDraw\r
   )\r
 {\r
-  if (UgaDraw != NULL) {\r
+  if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
     return UgaDraw->Blt (\r
                       UgaDraw,\r
                       Private->UgaBlt,\r
@@ -1090,7 +1097,7 @@ DevNullUgaSync (
                       Private->UgaVerticalResolution,\r
                       Private->UgaHorizontalResolution * sizeof (EFI_UGA_PIXEL)\r
                       );\r
-  } else {\r
+  } else if (GraphicsOutput != NULL) {\r
     return GraphicsOutput->Blt (\r
                       GraphicsOutput,\r
                       (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) Private->UgaBlt,\r
@@ -1103,6 +1110,8 @@ DevNullUgaSync (
                       Private->UgaVerticalResolution,\r
                       0\r
                       );\r
+  } else {\r
+    return EFI_UNSUPPORTED;\r
   }\r
 }\r
 \r