]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.c
Use PixelFormat PixelBitMask in CirrusLogic5430Dxe driver.
[mirror_edk2.git] / OptionRomPkg / CirrusLogic5430Dxe / CirrusLogic5430.c
index 2f0eb5a813918d57505e6a971548cb942039c103..21bb4afee0278cee0a6f01e28eb9ca34407be320 100644 (file)
@@ -751,27 +751,6 @@ DrawLogo (
   UINTN                           ScreenHeight\r
   )\r
 {\r
-  UINTN Offset;\r
-  UINTN X;\r
-  UINTN Y;\r
-  UINT8 Color;\r
-\r
-  Offset        = 0;\r
-  for (Y = 0; Y < ScreenHeight; Y++) {\r
-    for (X = 0; X < ScreenWidth; X++) {\r
-      Color                   = (UINT8) (256 * (X + Y) / (ScreenWidth + ScreenHeight));\r
-      Private->LineBuffer[X]  = Color;\r
-    }\r
-\r
-    Private->PciIo->Mem.Write (\r
-                          Private->PciIo,\r
-                          EfiPciIoWidthUint32,\r
-                          0,\r
-                          Offset + (Y * ScreenWidth),\r
-                          ScreenWidth >> 2,\r
-                          Private->LineBuffer\r
-                          );\r
-  }\r
 }\r
 \r
 /**\r
@@ -791,6 +770,20 @@ InitializeGraphicsMode (
 {\r
   UINT8 Byte;\r
   UINTN Index;\r
+  UINT16 DeviceId;\r
+  EFI_STATUS Status;\r
+\r
+  Status = Private->PciIo->Pci.Read (\r
+             Private->PciIo,\r
+             EfiPciIoWidthUint16,\r
+             PCI_DEVICE_ID_OFFSET,\r
+             1,\r
+             &DeviceId\r
+             );\r
+  //\r
+  // Read the PCI Configuration Header from the PCI Device\r
+  //\r
+  ASSERT_EFI_ERROR (Status);\r
 \r
   outw (Private, SEQ_ADDRESS_REGISTER, 0x1206);\r
   outw (Private, SEQ_ADDRESS_REGISTER, 0x0012);\r
@@ -799,9 +792,11 @@ InitializeGraphicsMode (
     outw (Private, SEQ_ADDRESS_REGISTER, ModeData->SeqSettings[Index]);\r
   }\r
 \r
-  outb (Private, SEQ_ADDRESS_REGISTER, 0x0f);\r
-  Byte = (UINT8) ((inb (Private, SEQ_DATA_REGISTER) & 0xc7) ^ 0x30);\r
-  outb (Private, SEQ_DATA_REGISTER, Byte);\r
+  if (DeviceId != CIRRUS_LOGIC_5446_DEVICE_ID) {\r
+    outb (Private, SEQ_ADDRESS_REGISTER, 0x0f);\r
+    Byte = (UINT8) ((inb (Private, SEQ_DATA_REGISTER) & 0xc7) ^ 0x30);\r
+    outb (Private, SEQ_DATA_REGISTER, Byte);\r
+  }\r
 \r
   outb (Private, MISC_OUTPUT_REGISTER, ModeData->MiscSetting);\r
   outw (Private, GRAPH_ADDRESS_REGISTER, 0x0506);\r