]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OptionRomPkg/CirrusLogic5430Dxe/Edid.c
BaseTools/Capsule: Do not support -o with --dump-info
[mirror_edk2.git] / OptionRomPkg / CirrusLogic5430Dxe / Edid.c
index 4ef733b5092a6b0dbfb6d6f092c15c5156b4952f..6ce681a6ca9d0b767039ef00b02152eaafa2a35c 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Read EDID information and parse EDID information.\r
 \r
-  Copyright (c) 2008, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
+  Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR>\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
@@ -13,6 +13,7 @@
 **/\r
 \r
 #include "CirrusLogic5430.h"\r
+#include "CirrusLogic5430I2c.h"\r
 \r
 //\r
 // EDID block\r
@@ -105,7 +106,6 @@ EDID_TIMING mVbeEstablishedEdidTiming[] = {
   @retval EFI_SUCCESS\r
 \r
 **/\r
-STATIC\r
 EFI_STATUS\r
 ReadEdidData (\r
   CIRRUS_LOGIC_5430_PRIVATE_DATA     *Private,\r
@@ -113,13 +113,13 @@ ReadEdidData (
   UINTN                              *EdidSize\r
   )\r
 {\r
-  UINT8             Index;\r
+  UINTN             Index;\r
   UINT8             EdidData[EDID_BLOCK_SIZE * 2];\r
   UINT8             *ValidEdid;\r
   UINT64            Signature;\r
 \r
   for (Index = 0; Index < EDID_BLOCK_SIZE * 2; Index ++) {\r
-    I2cReadByte (Private->PciIo, 0xa0, Index, &EdidData[Index]);\r
+    I2cReadByte (Private->PciIo, 0xa0, (UINT8)Index, &EdidData[Index]);\r
   }\r
 \r
   //\r
@@ -141,7 +141,7 @@ ReadEdidData (
   }\r
 \r
   *EdidDataBlock = AllocateCopyPool (\r
-                     sizeof (EDID_BLOCK_SIZE),\r
+                     EDID_BLOCK_SIZE,\r
                      ValidEdid\r
                      );\r
   if (*EdidDataBlock == NULL) {\r
@@ -164,7 +164,6 @@ ReadEdidData (
   @return The 32 bit unique key for search.\r
 \r
 **/\r
-STATIC\r
 UINT32\r
 CalculateEdidKey (\r
   EDID_TIMING       *EdidTiming\r
@@ -189,7 +188,6 @@ CalculateEdidKey (
   @retval FALSE                  Not found.\r
 \r
 **/\r
-STATIC\r
 BOOLEAN\r
 SearchEdidTiming (\r
   VALID_EDID_TIMING *ValidEdidTiming,\r
@@ -220,7 +218,6 @@ SearchEdidTiming (
   @retval FALSE                  The EDID data is invalid.\r
 \r
 **/\r
-STATIC\r
 BOOLEAN\r
 ParseEdidData (\r
   UINT8                         *EdidBuffer,\r
@@ -373,7 +370,7 @@ CirrusLogic5430VideoModeSetup (
     //\r
     // Allocate double size of VESA_BIOS_EXTENSIONS_EDID_BLOCK_SIZE to avoid overflow\r
     //\r
-    EdidOverrideDataBlock = AllocatePool (sizeof (EDID_BLOCK_SIZE * 2));\r
+    EdidOverrideDataBlock = AllocatePool (EDID_BLOCK_SIZE * 2);\r
     if (NULL == EdidOverrideDataBlock) {\r
                Status = EFI_OUT_OF_RESOURCES;\r
       goto Done;\r
@@ -401,7 +398,7 @@ CirrusLogic5430VideoModeSetup (
     // If EDID Override data doesn't exist or EFI_EDID_OVERRIDE_DONT_OVERRIDE returned,\r
     // read EDID information through I2C Bus\r
     //\r
-    if (ReadEdidData (Private, &EdidDiscoveredDataBlock, &EdidDiscoveredDataSize) == EFI_SUCCESS) {;\r
+    if (ReadEdidData (Private, &EdidDiscoveredDataBlock, &EdidDiscoveredDataSize) == EFI_SUCCESS) {\r
       Private->EdidDiscovered.SizeOfEdid = (UINT32) EdidDiscoveredDataSize;\r
        Private->EdidDiscovered.Edid = (UINT8 *) AllocateCopyPool (\r
                                                           EdidDiscoveredDataSize,\r
@@ -513,7 +510,10 @@ CirrusLogic5430VideoModeSetup (
     Private->MaxMode = CIRRUS_LOGIC_5430_MODE_COUNT;\r
   }\r
 \r
-  FreePool (EdidOverrideDataBlock);\r
+  if (EdidOverrideDataBlock != NULL) {\r
+    FreePool (EdidOverrideDataBlock);\r
+  }\r
+\r
   return EFI_SUCCESS;\r
 \r
 Done:\r