]> 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 76a74ccf5ec996794c14109c4c4a5486da245494..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
@@ -112,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
@@ -140,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
@@ -369,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
@@ -397,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
@@ -509,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