alder_lake_bios/Lcfc/LfcPkg/Project/DxeOemSvcLfcLib/OemSvcLfcReadyToBoot.c

2730 lines
82 KiB
C

//*****************************************************************************
//
//
// Copyright (c) 2012 - 2019, Hefei LCFC Information Technology Co.Ltd.
// And/or its affiliates. All rights reserved.
// Hefei LCFC Information Technology Co.Ltd. PROPRIETARY/CONFIDENTIAL.
// Use is subject to license terms.
//
//******************************************************************************
#include <PiDxe.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Protocol/LfcNvsArea.h>
#include <LfcOemDefine.h>
//[-start-210630-Dongxu0005-add]//
//[-start-210706-LIUJIE0001-add]//
//[-start-210929-TAMT000016-modify]//
//[-start-211211-TAMT000039-modify]//
#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S77014_SUPPORT) || defined(S77013_SUPPORT) || defined(S77014IAH_SUPPORT)
#include <SystemAgent/IncludePrivate/Protocol/SaNvsArea.h>
#include <Protocol/EdidDiscovered.h>
#include <Library/BaseMemoryLib.h>
#include <Library/BaseLib.h>
#include <Library/MemoryAllocationLib.h>
//#include <Guid/LfcBuiltAsSecuredCorePc.h>
//[-end-211211-TAMT000039-modify]//
//[-end-210929-TAMT000016-modify]//
//[-end-210706-LIUJIE0001-add]//
#endif
#include <Guid/LfcBuiltAsSecuredCorePc.h>
//[-start-211108-Dennis0008-add]//
#include <Library/LfcEcLib.h>
//[-end-211108-Dennis0008-add]//
//[-start-220113-TAMT000043-add]//
//[-start-220119-TAMT000044-remove]//
//[-start-220209-TAMT000043a-add]//
#if defined(S77013_SUPPORT)
#include <SystemAgent/IncludePrivate/Protocol/SaNvsArea.h>
#include <Library/BaseMemoryLib.h>
#include <Library/BaseLib.h>
#include <Protocol/EdidDiscovered.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiLib.h>
#include <Protocol/IgdOpRegion.h>
#include <VesaBiosExtensions.h>
#endif
//[-end-220209-TAMT000043a-add]//
//[-end-220119-TAMT000044-remove]//
//[-end-220113-TAMT000043-add]//
//[-start-220118-BAIN000090-add]//
//[-start-220221-OWENWU0039-add]//
//[-start-220328-Ching000038-modify]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
#include <Protocol/SimpleFileSystem.h>
#include <Guid/FileSystemInfo.h>
#include <Guid/FileInfo.h>
#include <Library/PrintLib.h>
#define MAX_STRING_LENGTH 128
#endif
//[-end-220328-Ching000038-modify]//
//[-end-220221-OWENWU0039-add]//
//[-end-220118-BAIN000090-add]//
//[-start-220118-BAIN000090-add]//
//[-start-220221-OWENWU0039-add]//
//[-start-220328-Ching000038-modify]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
//[-end-220328-Ching000038-modify]//
//[-end-220221-OWENWU0039-add]//
/**
Delet the flash image from EFI System Partition.
It's actually doing it in LoadIsFlashImageCallback() but it can't be executed because of X EC flash rest.
**/
EFI_STATUS
DeletflashImageFromEsp (
)
{
EFI_STATUS Status;
UINTN NumberOfHandles;
EFI_HANDLE *HandleBuffer;
UINTN Index;
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *EspSimpleFileSystem;
EFI_FILE_HANDLE SysDir;
EFI_FILE_HANDLE File;
BOOLEAN Found;
UINTN BufferSize;
EFI_FILE_INFO *FileInfo;
CHAR16 ImagePath[MAX_STRING_LENGTH];
UnicodeSPrint (ImagePath, MAX_STRING_LENGTH, L"%s\\isflash.bin", PcdGetPtr (PcdCapsuleImageFolder));
HandleBuffer = NULL;
BufferSize = 0;
FileInfo = NULL;
SysDir = NULL;
File = NULL;
EspSimpleFileSystem = NULL;
//
// Search all simple file system
//
Status = gBS->LocateHandleBuffer(
ByProtocol,
&gEfiSimpleFileSystemProtocolGuid,
NULL,
&NumberOfHandles,
&HandleBuffer
);
if (EFI_ERROR(Status)) {
return Status;
}
Found = FALSE;
for (Index = 0; Index < NumberOfHandles; Index++) {
Status = gBS->HandleProtocol(
HandleBuffer[Index],
&gEfiSimpleFileSystemProtocolGuid,
(VOID **)&EspSimpleFileSystem
);
if (EFI_ERROR(Status)) {
continue;
}
//
// Get the system dir
//
Status = EspSimpleFileSystem->OpenVolume(
EspSimpleFileSystem,
&SysDir
);
if (!EFI_ERROR(Status)) {
//
// check the flash image exist
//
Status = SysDir->Open (SysDir,
&File,
ImagePath, // "EFI\\Insyde\\isflash.bin"
EFI_FILE_MODE_READ,
0
);
if (!EFI_ERROR(Status)) {
Found = TRUE;
break;
}
}
}
if (!Found) {
goto CloseSysDirAndExit;
}
//
// Get file info to check file attribute
//
Status = File->GetInfo (
File,
&gEfiFileInfoGuid,
&BufferSize,
FileInfo
);
if (Status == EFI_BUFFER_TOO_SMALL) {
FileInfo = AllocatePool(BufferSize);
if (FileInfo == NULL) {
goto CloseFileAndExit;
}
Status = File->GetInfo (
File,
&gEfiFileInfoGuid,
&BufferSize,
FileInfo
);
}
if (EFI_ERROR (Status) || FileInfo == NULL) {
goto CloseFileAndExit;
}
//
// If the attribute of the file is read only, remove the attribute.
// Because the file will be remove.
// The file attributes will be valid the next time the file is opened with Open().
//
if ((FileInfo->Attribute & EFI_FILE_READ_ONLY) == EFI_FILE_READ_ONLY) {
FileInfo->Attribute &= ~EFI_FILE_READ_ONLY;
Status = File->SetInfo (
File,
&gEfiFileInfoGuid,
BufferSize,
FileInfo
);
if (EFI_ERROR(Status)) {
goto CloseFileAndExit;
}
}
//
// Close the file with READ mode
// Re-Open file with R/W mode.
//
Status = File->Close(File);
Status = SysDir->Open (SysDir,
&File,
ImagePath, // "EFI\\Insyde\\isflash.bin"
EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE,
0
);
if (EFI_ERROR(Status)) {
goto CloseSysDirAndExit;
}
// Delete last isflash.bin complete the whole Secureflash action.
if (Status == EFI_SUCCESS) {
Status = File->Delete (File);
}
CloseFileAndExit:
File->Close(File);
CloseSysDirAndExit:
if (SysDir != NULL){
SysDir->Close(SysDir);
}
if (FileInfo != NULL) {
FreePool (FileInfo);
}
if (HandleBuffer != NULL) {
FreePool (HandleBuffer);
}
return Status;
}
#endif
//[-end-220118-BAIN000090-add]//
typedef struct {
UINT8 EDID[0x100]; ///Panel EDID (DDC data)
} LFC_EDID;
//[start-210923-STORM1116-modify]
typedef struct {
UINT8 Original_EdidOffset8; // Panel EDID manufacture name
UINT8 Original_EdidOffset9; // Panel EDID manufacture name
UINT8 Original_EdidOffset10; // Panel Product Code
UINT8 Original_EdidOffset11; // Panel Product Code
UINT8 HDR_Support;
UINT8 EDID[0x100]; ///Panel EDID (DDC data)
} LFC_EDID_INFO;
//[end-210923-STORM1116-modify]
#if defined(C970_SUPPORT)
LFC_EDID c970_override_table[] = {
{//MNE007JA1-1
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xA6, 0x88, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0xE3, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x35, 0x3C,
//56-63
0x80, 0xA0, 0x70, 0xB0, 0x23, 0x40, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x30, 0x3C, 0x4A,
//80-87
0x4A, 0x0F, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x58, 0x47, 0x41, 0x0A, 0x20, 0x00, 0x17,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{//LP140WU1-SPB2
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xA7, 0x88, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0xE3, 0x28, 0x15, 0xA4, 0x54, 0x4A, 0x9C, 0x26,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x35, 0x3C,
//56-63
0x80, 0xA0, 0x70, 0xB0, 0x23, 0x40, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x1A,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x30, 0x3C, 0x4A,
//80-87
0x4A, 0x10, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x58, 0x47, 0x41, 0x0A, 0x20, 0x00, 0x59,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{//ATNA40YK01
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x98, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x23, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA4, 0xC3,
//56-63
0x40, 0x50, 0xB0, 0x08, 0xFC, 0x73, 0x08, 0x20,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0xA4, 0xC3, 0x40, 0x50, 0xB0, 0x08, 0x50, 0x70,
//80-87
0x08, 0x20, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x0A, 0x20, 0x20, 0x20, 0x01, 0x27,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
{//ATNA40YN01
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x97, 0x8B, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x71, 0xDF,
//56-63
0x00, 0x50, 0xF0, 0x60, 0x20, 0x90, 0x20, 0x08,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0x71, 0xDF, 0x00, 0x50, 0xF0, 0x60, 0x20, 0x90,
//80-87
0x20, 0x08, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x55, 0x58, 0x47, 0x41, 0x0A, 0x01, 0xED,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
{//MNE007JA1-2
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xA9, 0x88, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0xE3, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x35, 0x3C,
//56-63
0x80, 0xA0, 0x70, 0xB0, 0x23, 0x40, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x30, 0x3C, 0x4A,
//80-87
0x4A, 0x0F, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x58, 0x47, 0x41, 0x0A, 0x20, 0x00, 0x14,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
};
//[-start-210923-YUNLEI0138-modify]//
#elif defined(C770_SUPPORT)
LFC_EDID_INFO C770_override_table[] = {
{
//[-start-211029-YULU0003-modify]//
0x4C,0x83,0x52,0x41,
//[-end-211029-YULU0003-modify]//
// HDR Support or not
0x01,
//ATNA40YK01-0 2.8k OLED
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x98, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x23, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA4, 0xC3,
//56-63
0x40, 0x50, 0xB0, 0x08, 0xFC, 0x73, 0x08, 0x20,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0xA4, 0xC3, 0x40, 0x50, 0xB0, 0x08, 0x50, 0x70,
//80-87
0x08, 0x20, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x0A, 0x20, 0x20, 0x20, 0x01, 0x27,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
{
//[-start-211029-YULU0003-modify]//
0x4C,0x83,0x7A,0x41,
//[-end-211029-YULU0003-modify]//
// HDR Support or not
0x01,
//ATNA40YK08-0 2.8k OLED
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x98, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x23, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA4, 0xC3,
//56-63
0x40, 0x50, 0xB0, 0x08, 0xFC, 0x73, 0x08, 0x20,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0xA4, 0xC3, 0x40, 0x50, 0xB0, 0x08, 0x50, 0x70,
//80-87
0x08, 0x20, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x0A, 0x20, 0x20, 0x20, 0x01, 0x27,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
//[-start-211018-YUNLEI0143-modify]//
{
0x06,0xAF,0x95,0xA1,
// HDR Support or not
0x00,
//B140QAN05.0 14AUO
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xBC, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x03, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52,
//56-63
0xC0, 0xA0, 0x80, 0x78, 0x3E, 0x50, 0x30, 0x20,
//64-71
0x35, 0x00, 0x2C, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x3C, 0x58,
//80-87
0x58, 0x15, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x58, 0x47, 0x41, 0x2B, 0x20, 0x00, 0x41,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{
0x09,0xE5,0x1B,0x0B,
// HDR Support or not
0x00,
//NV140DRM-N62 V8.3 14BOE
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xBD, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x09, 0x20, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x07, 0xA7, 0xE5, 0xA3, 0x54, 0x4A, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0x53,
//56-63
0xC0, 0xDC, 0x80, 0x78, 0x28, 0x50, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1A,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x3C, 0x56,
//80-87
0x56, 0x15, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x58, 0x47, 0x41, 0x2B, 0x20, 0x00, 0x3B,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{
0x26,0xCF,0x45,0x8C,
// HDR Support or not
0x00,
//M140NWHE R1 14IVO
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xBB, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x03, 0xDE, 0x50, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x8D, 0x50,
//56-63
0xC0, 0xA0, 0x80, 0x78, 0x20, 0x50, 0x18, 0x30,
//64-71
0x3C, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x19,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x3C, 0x56,
//80-87
0x56, 0x15, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x58, 0x47, 0x41, 0x2B, 0x20, 0x00, 0x70,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{
0x06,0xAF,0x9F,0xF0,
// HDR Support or not
0x00,
//B160QAN02.W 1A 16AUO
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x9A, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x1F, 0x1F, 0x01, 0x04, 0xA5, 0x22, 0x16, 0x78,
//24-31
0x03, 0x47, 0xA5, 0xA8, 0x55, 0x48, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0C, 0x6C,
//56-63
0x00, 0xA0, 0xA0, 0x40, 0x5E, 0x60, 0x30, 0x20,
//64-71
0xAA, 0x00, 0x58, 0xD7, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x30, 0x3C, 0x66,
//80-87
0x66, 0x1C, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x36, 0x30, 0x57,
//120-127
0x51, 0x58, 0x47, 0x41, 0x20, 0x20, 0x00, 0xB9,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{
0x09,0xE5,0xDF,0x0A,
// HDR Support or not
0x00,
//NE160QDM-N63 V8.2 16BOE
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x9C, 0x8B, 0x00, 0x00, 0x00, 0x00,
//16-23
0x2A, 0x1E, 0x01, 0x04, 0xA5, 0x22, 0x16, 0x78,
//24-31
0x03, 0x9D, 0x25, 0xA5, 0x55, 0x4B, 0x9B, 0x25,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x62, 0x6B,
//56-63
0x00, 0xC8, 0xA0, 0x40, 0x3C, 0x60, 0x30, 0x20,
//64-71
0x36, 0x00, 0x59, 0xD7, 0x10, 0x00, 0x00, 0x1A,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x3C, 0x64,
//80-87
0x64, 0x1C, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x36, 0x30, 0x57,
//120-127
0x51, 0x58, 0x47, 0x41, 0x20, 0x20, 0x00, 0xFA,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{
0x0E,0x6F,0x19,0x16,
// HDR Support or not
0x00,
//MNG007DA1-N 16CSOT
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x9D, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x20, 0x01, 0x04, 0xA5, 0x22, 0x16, 0x78,
//24-31
0xE3, 0x74, 0xD5, 0xA4, 0x54, 0x4C, 0x9A, 0x24,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xEF, 0x68,
//56-63
0x00, 0xA0, 0xA0, 0x40, 0x2E, 0x60, 0x30, 0x20,
//64-71
0x36, 0x00, 0x58, 0xD7, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x3C, 0x63,
//80-87
0x63, 0x1B, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x36, 0x30, 0x57,
//120-127
0x51, 0x58, 0x47, 0x41, 0x20, 0x20, 0x00, 0x71,
//128-135
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//136-143
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
//[-end-211018-YUNLEI0143-modify]//
// end of the table
0xff,0xff,0xff,0xff
};
//[-end-210923-YUNLEI0138-modify]//
//[-start-210929-TAMT000016-add]//
//[-start-211124-TAMT000034-modify]//
#elif defined(S77014_SUPPORT)
LFC_EDID S77014_override_table[] = {
{//ATNA40YK01
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x98, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x23, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA4, 0xC3,
//56-63
0x40, 0x50, 0xB0, 0x08, 0xFC, 0x73, 0x08, 0x20,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0xA4, 0xC3, 0x40, 0x50, 0xB0, 0x08, 0x50, 0x70,
//80-87
0x08, 0x20, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x01, 0x11,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
{//2.8K COST_MNE007ZA1-3 14.0
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x90, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1F, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCF, 0x85,
//56-63
0x40, 0xA0, 0xB0, 0x08, 0x4E, 0x70, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0xB6, 0xC8, 0x40, 0xA0, 0xB0, 0x08, 0x4E, 0x70,
//80-87
0x30, 0x20, 0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00,
//88-95
0x00, 0x18, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0x34,
},
{//2.8K AUO B140QAN04.0 1A
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x91, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xD4, 0x05, 0xA7, 0x54, 0x48, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x42, 0x86,
//56-63
0x40, 0xA0, 0xB0, 0x08, 0x54, 0x70, 0x30, 0x20,
//64-71
0x35, 0x00, 0x2D, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x5E, 0xC9, 0x40, 0xA0, 0xB0, 0x08, 0x54, 0x70,
//80-87
0x30, 0x20, 0x35, 0x00, 0x2D, 0xBC, 0x10, 0x00,
//88-95
0x00, 0x18, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0xB6,
},
{//2.2K IVO N140E EDID
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xB1, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xDE, 0x50, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x8C, 0x50,
//56-63
0xC0, 0xA0, 0x80, 0x78, 0x20, 0x50, 0x18, 0x30,
//64-71
0x3C, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x19,
//72-79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//80-87
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//88-95
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x6F,
//104-111
0x6E, 0x0A, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0x62,
},
{//2.2K BOE NV140DRM-N61
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xB2, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x14, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x06, 0xA7, 0xE5, 0xA3, 0x54, 0x4A, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0x53,
//56-63
0xC0, 0xDC, 0x80, 0x78, 0x28, 0x50, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x1A,
//72-79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//80-87
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//88-95
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0xAC,
},
{//2.2K AUO B140QAN05.H 1A
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xB7, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52,
//56-63
0xC0, 0xA0, 0x80, 0x78, 0x3E, 0x50, 0x30, 0x20,
//64-71
0x35, 0x00, 0x2C, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//80-87
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//88-95
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x6F,
//104-111
0x6E, 0x0A, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0x31,
},
};
//[-end-211124-TAMT000034-modify]//
//[-end-210929-TAMT000016-add]//
//[-start-220401-GEORGE0060-add]//
#elif defined(S77014IAH_SUPPORT)
LFC_EDID S77014IAH_override_table[] = {
{//ATNA40YK01
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x98, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x23, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA4, 0xC3,
//56-63
0x40, 0x50, 0xB0, 0x08, 0xFC, 0x73, 0x08, 0x20,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0xA4, 0xC3, 0x40, 0x50, 0xB0, 0x08, 0x50, 0x70,
//80-87
0x08, 0x20, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x01, 0x11,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
{//2.8K COST_MNE007ZA1-3 14.0
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x90, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1F, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCF, 0x85,
//56-63
0x40, 0xA0, 0xB0, 0x08, 0x4E, 0x70, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0xB6, 0xC8, 0x40, 0xA0, 0xB0, 0x08, 0x4E, 0x70,
//80-87
0x30, 0x20, 0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00,
//88-95
0x00, 0x18, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0x34,
},
{//2.8K AUO B140QAN04.0 1A
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x91, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xD4, 0x05, 0xA7, 0x54, 0x48, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x42, 0x86,
//56-63
0x40, 0xA0, 0xB0, 0x08, 0x54, 0x70, 0x30, 0x20,
//64-71
0x35, 0x00, 0x2D, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x5E, 0xC9, 0x40, 0xA0, 0xB0, 0x08, 0x54, 0x70,
//80-87
0x30, 0x20, 0x35, 0x00, 0x2D, 0xBC, 0x10, 0x00,
//88-95
0x00, 0x18, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0xB6,
},
{//2.2K IVO N140E EDID
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xB1, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xDE, 0x50, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x8C, 0x50,
//56-63
0xC0, 0xA0, 0x80, 0x78, 0x20, 0x50, 0x18, 0x30,
//64-71
0x3C, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x19,
//72-79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//80-87
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//88-95
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x6F,
//104-111
0x6E, 0x0A, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0x62,
},
{//2.2K BOE NV140DRM-N61
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xB2, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x14, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x06, 0xA7, 0xE5, 0xA3, 0x54, 0x4A, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0x53,
//56-63
0xC0, 0xDC, 0x80, 0x78, 0x28, 0x50, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2E, 0xBC, 0x10, 0x00, 0x00, 0x1A,
//72-79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//80-87
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//88-95
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0xAC,
},
{//2.2K AUO B140QAN05.H 1A
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xB7, 0x89, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1E, 0x01, 0x04, 0xA5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52,
//56-63
0xC0, 0xA0, 0x80, 0x78, 0x3E, 0x50, 0x30, 0x20,
//64-71
0x35, 0x00, 0x2C, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//80-87
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//88-95
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x6F,
//104-111
0x6E, 0x0A, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x55, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x00, 0x31,
},
{//120Hz COST_MNE007ZA1-5 14.0
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xAA, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x20, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x03, 0x21, 0x15, 0xA8, 0x53, 0x49, 0x9C, 0x25,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
//56-63
0x40, 0xA0, 0xB0, 0x08, 0x6A, 0x70, 0x30, 0x20,
//64-71
0x36, 0x00, 0x2D, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x78, 0xE5,
//80-87
0xE5, 0x46, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x01, 0x8E,
//128-135
0x70, 0x13, 0x79, 0x00, 0x00, 0x03, 0x01, 0x28,
//136-143
0x9A, 0x0F, 0x01, 0x05, 0x3F, 0x0B, 0x9F, 0x00,
//144-151
0x2F, 0x00, 0x1F, 0x00, 0x07, 0x07, 0x69, 0x00,
//152-159
0x02, 0x00, 0x05, 0x00, 0x9A, 0x0F, 0x01, 0x85,
//160-167
0x3F, 0x0B, 0x9F, 0x00, 0x2F, 0x00, 0x1F, 0x00,
//168-175
0x07, 0x07, 0xDB, 0x07, 0x02, 0x00, 0x05, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x90,
},
{//120Hz AUO B140QAN04.H 0A
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0xAB, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x01, 0x20, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x03, 0xD4, 0x05, 0xA7, 0x54, 0x48, 0x9E, 0x25,
//32-39
0x0E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, 0x86,
//56-63
0x40, 0xA0, 0xB0, 0x08, 0x52, 0x70, 0x30, 0x20,
//64-71
0x35, 0x00, 0x2D, 0xBC, 0x10, 0x00, 0x00, 0x18,
//72-79
0x00, 0x00, 0x00, 0xFD, 0x00, 0x28, 0x78, 0xE3,
//80-87
0xE3, 0x45, 0x01, 0x0A, 0x20, 0x20, 0x20, 0x20,
//88-95
0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x58, 0x47, 0x41, 0x20, 0x20, 0x01, 0xF4,
//128-135
0x70, 0x13, 0x79, 0x00, 0x00, 0x03, 0x01, 0x14,
//136-143
0x7A, 0x0C, 0x01, 0x84, 0x3F, 0x0B, 0x9F, 0x00,
//144-151
0x2F, 0x00, 0x1F, 0x00, 0x07, 0x07, 0x53, 0x00,
//152-159
0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x90,
},
{//90Hz OLED ATNA40YK08
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x98, 0x8A, 0x00, 0x00, 0x00, 0x00,
//16-23
0x23, 0x1E, 0x01, 0x04, 0xB5, 0x1E, 0x13, 0x78,
//24-31
0x02, 0x0C, 0xF1, 0xAE, 0x52, 0x3C, 0xB9, 0x23,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA4, 0xC3,
//56-63
0x40, 0x50, 0xB0, 0x08, 0xFC, 0x73, 0x08, 0x20,
//64-71
0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00, 0x00, 0x1B,
//72-79
0xA4, 0xC3, 0x40, 0x50, 0xB0, 0x08, 0x50, 0x70,
//80-87
0x08, 0x20, 0x88, 0x00, 0x2E, 0xBD, 0x10, 0x00,
//88-95
0x00, 0x1B, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
//96-103
0x45, 0x4E, 0x4F, 0x56, 0x4F, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4C, 0x45, 0x4E, 0x31, 0x34, 0x30, 0x57,
//120-127
0x51, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x01, 0x11,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE3, 0x05, 0x80, 0x00,
//136-143
0xE6, 0x06, 0x05, 0x01, 0x74, 0x60, 0x07, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7,
},
};
//[-end-220401-GEORGE0060-add]//
//[-start-211211-TAMT000039-add]//
//[-start-220113-TAMT000043-remove]//
//[-start-220119-TAMT000044-add]//
//[-start-220209-TAMT000043a-remove]//
/*
#elif defined(S77013_SUPPORT)
LFC_EDID S77013_override_table[] = {
{//BOE NE133QDM-N62
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x96, 0x82, 0x00, 0x00, 0x00, 0x00,
//16-23
0x28, 0x1F, 0x01, 0x04, 0xA5, 0x1D, 0x12, 0x78,
//24-31
0x03, 0x35, 0xF5, 0xAA, 0x55, 0x4A, 0xA0, 0x24,
//32-39
0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x13, 0xA1,
//56-63
0x00, 0xC8, 0xA0, 0x40, 0x7A, 0x63, 0x30, 0x20,
//64-71
0x36, 0x00, 0x1E, 0xB3, 0x10, 0x00, 0x00, 0x00,
//72-79
0x13, 0xA1, 0x00, 0xC8, 0xA0, 0x40, 0x3C, 0x60,
//80-87
0x30, 0x20, 0x36, 0x00, 0x1E, 0xB3, 0x10, 0x00,
//88-95
0x00, 0x1A, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x30,
//96-103
0x5A, 0x95, 0x95, 0x29, 0x01, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4E, 0x45, 0x31, 0x33, 0x33, 0x51, 0x44,
//120-127
0x4D, 0x2D, 0x4E, 0x36, 0x32, 0x0A, 0x01, 0xC8,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE6, 0x06, 0x01, 0x01,
//136-143
0x60, 0x60, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xFE,
},
{//COST MND307DA1-9
//0-7
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
//8-15
0x30, 0xAE, 0x97, 0x82, 0x00, 0x00, 0x00, 0x00,
//16-23
0x00, 0x1F, 0x01, 0x04, 0xA5, 0x1D, 0x12, 0x78,
//24-31
0x03, 0xEE, 0x91, 0xA3, 0x54, 0x4C, 0x99, 0x26,
//32-39
0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
//40-47
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//48-55
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xB2, 0x9F,
//56-63
0x00, 0xA0, 0xA0, 0x40, 0x89, 0x63, 0x30, 0x20,
//64-71
0x36, 0x00, 0x1E, 0xB3, 0x10, 0x00, 0x00, 0x18,
//72-79
0xB2, 0x9F, 0x00, 0xA0, 0xA0, 0x40, 0x46, 0x60,
//80-87
0x30, 0x20, 0x36, 0x00, 0x1E, 0xB3, 0x10, 0x00,
//88-95
0x00, 0x18, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x30,
//96-103
0x5A, 0x97, 0x97, 0x29, 0x01, 0x0A, 0x20, 0x20,
//104-111
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
//112-119
0x00, 0x4D, 0x4E, 0x44, 0x33, 0x30, 0x37, 0x44,
//120-127
0x41, 0x31, 0x2D, 0x39, 0x0A, 0x20, 0x01, 0xBF,
//128-135
0x02, 0x03, 0x0F, 0x00, 0xE6, 0x06, 0x01, 0x01,
//136-143
0x60, 0x60, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00,
//144-151
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//152-159
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//160-167
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//168-175
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//176-183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//184-191
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//192-199
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//200-207
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//208-215
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//216-223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//224-231
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//232-239
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//240-247
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//248-255
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xFE,
},
};
*/
//[-end-220209-TAMT000043a-remove]//
//[-end-220119-TAMT000044-add]//
//[-end-220113-TAMT000043-remove]//
//[-end-211211-TAMT000039-add]//
#endif
//[-end-210630-Dongxu0005-add]//
//
// Update Lfc Oem Nvs Regin at ReadToBootEvent
//
EFI_STATUS
EFIAPI
OemSvcLfcRdyToBootUpdateOemNvsRegion (
IN OUT LFC_NVS_AREA *LfcNvsBuffer
)
{
EFI_STATUS Status = EFI_SUCCESS;
//[-start-211108-Dennis0008-add]//
#if defined(S370_SUPPORT)
UINT8 LFCMachinesize;
UINTN Size;
if(LfcNvsBuffer->EdidBuffer[0x15] >= 0x26){
LfcNvsBuffer->MachineSize = 0x17;
} else if (LfcNvsBuffer->EdidBuffer[0x15] >= 0x22){
LfcNvsBuffer->MachineSize = 0x15;
} else {
LfcNvsBuffer->MachineSize = 0x14;
}
Size = (UINTN)sizeof (LFCMachinesize);
Status = gRT->GetVariable (
L"MachineSize",
&gEfiGenericVariableGuid,
NULL,
&Size,
&LFCMachinesize
);
if(LFCMachinesize != LfcNvsBuffer->MachineSize ){
LFCMachinesize = LfcNvsBuffer->MachineSize ;
Status = gRT->SetVariable (
L"MachineSize",
&gEfiGenericVariableGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
Size,
&LFCMachinesize
);
gRT->ResetSystem(EfiResetWarm, EFI_SUCCESS, 0, NULL);
}
LfcEcLibNotifyEcMachineSize (LfcNvsBuffer->MachineSize);
#endif
//[-end-211108-Dennis0008-add]//
//
// If no need to use Oem Nvs Region, please leave it empty
//
return Status;
}
//[-start-210706-LIUJIE0001-add]//
//
//Support MSFT New OS to add variable BuiltAsSecuredCorePC
//Zero - Non-SecureCore PCR
//Non-Zero - SecureCore PC
//As IdeaPad has no Secured PC , set default vaule as Zero
//
EFI_STATUS
LfcSetSecureCorePcVariable (
VOID
)
{
EFI_STATUS Status;
UINT8 Value = 0;
Status = gRT->SetVariable (
L"BuiltAsSecuredCorePC",
&gBuiltAsSecuredCorePcGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
sizeof(Value),
&Value
);
return Status;
}
//[-end-210706-LIUJIE0001-add]//
// this function will be executed when ready to boot (project speific code here)
EFI_STATUS
EFIAPI
OemSvcLfcDxeReadyToBoot (
VOID
)
{
EFI_STATUS Status = EFI_SUCCESS;
LFC_NVS_AREA_PROTOCOL *LfcNvsAreaProtocol;
//[-start-220113-TAMT000043-add]//
//[-start-220119-TAMT000044-remove]//
//[-start-220209-TAMT000043a-add]//
#if defined(S77013_SUPPORT)
EFI_EDID_DISCOVERED_PROTOCOL *EdidDiscovered;
VESA_BIOS_EXTENSIONS_EDID_DATA_BLOCK *EdidDataBlock;
UINT8 CheckSum = 0;
UINTN Index;
UINT8 *DataAddr = NULL;
UINT32 EdidSize = 0;
SYSTEM_AGENT_NVS_AREA_PROTOCOL *SaGlobalNvsArea = NULL;
BOOLEAN ModifyEdid = FALSE;
IGD_OPREGION_STRUCTURE *IgdOpRegion = NULL;
#endif
//[-end-220209-TAMT000043a-add]//
//[-end-220119-TAMT000044-remove]//
//[-end-220113-TAMT000043-add]//
//[-start-211124-TAMT000034-modify]//
//[-start-211211-TAMT000039-modify]//
//[-start-220113-TAMT000043-modify]//
//[-start-220119-TAMT000044-add]//
//[-start-220209-TAMT000043a-modify]//
//#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S77014_SUPPORT) || defined(S77013_SUPPORT)
#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S77014_SUPPORT) || defined(S77014IAH_SUPPORT)
EFI_EDID_DISCOVERED_PROTOCOL *EdidDiscovered;
#endif
//[-end-220209-TAMT000043a-modify]//
//[-end-220119-TAMT000044-add]//
//[-end-220113-TAMT000043-modify]//
//[-end-211211-TAMT000039-modify]//
//[-end-211124-TAMT000034-modify]//
//[start-210923-STORM1116-modify]
#if defined(C770_SUPPORT)
UINT8 i=0;
#endif
//[end-210923-STORM1116-modify]
//[-start-210706-LIUJIE0001-add]//
Status = LfcSetSecureCorePcVariable();
//[-end-210706-LIUJIE0001-add]//
//[-start-210630-Dongxu0005-add]//
//[-start-210923-YUNLEI0138-modify]//
//[-start-210929-TAMT000016-modify]//
//[-start-211211-TAMT000039-modify]//
//[-start-220113-TAMT000043-modify]//
//[-start-220119-TAMT000044-add]//
//[-start-220209-TAMT000043a-modify]//
//#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S77014_SUPPORT) || defined(S77013_SUPPORT)
#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S77014_SUPPORT) || defined(S77014IAH_SUPPORT)
SYSTEM_AGENT_NVS_AREA_PROTOCOL *TempSaNvsAreaProtocol;
UINT8 *Opr = NULL;
#endif
//[-end-220209-TAMT000043a-modify]//
//[-end-220119-TAMT000044-add]//
//[-end-220113-TAMT000043-modify]//
//[-end-211211-TAMT000039-modify]//
//[-end-210929-TAMT000016-modify]//
//[-end-210923-YUNLEI0138-modify]//
//[-end-210630-Dongxu0005-add]//
//[-start-220118-BAIN000090-add]//
//[-start-220221-OWENWU0039-add]//
//[-start-220328-Ching000038-modify]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
UINT8 DeletIsflash = 0;
EFI_STATUS Status1 = EFI_SUCCESS;
UINTN SizeDeletIsflash = 0;
EFI_HANDLE DumemyHandle = NULL;
#endif
//[-end-220328-Ching000038-modify]//
//[-end-220221-OWENWU0039-add]//
//[-end-220118-BAIN000090-add]//
Status = gBS->LocateProtocol (
&gLfcNvsAreaProtocolGuid,
NULL,
(VOID **)&LfcNvsAreaProtocol
);
if (!EFI_ERROR(Status) && (LfcNvsAreaProtocol->Area != NULL)) {
OemSvcLfcRdyToBootUpdateOemNvsRegion (LfcNvsAreaProtocol->Area);
}
//[-start-211117-BAIN000057-add]//
// Delete the TPCapsule flag again. Prevent problems caused by undeleted.(TriggerCapsuleUpdate)
#ifdef LCFC_SUPPORT
Status = gRT->SetVariable(
L"TPCapsule",
&gLfcVariableGuid,
0,
0,
NULL
);
#endif
//[-end-211117-BAIN000057-add]//
//[-start-220118-BAIN000090-add]//
//[-start-220221-OWENWU0039-add]//
//[-start-220328-Ching000038-modify]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
SizeDeletIsflash = sizeof(UINT8);
Status1 = gRT->GetVariable (
L"DeletIsflash",
&gLfcVariableGuid,
NULL,
&SizeDeletIsflash,
&DeletIsflash
);
if(Status1 != EFI_SUCCESS){
// Reconnectallstorage, Otherwise there will be problems with disk lost and setting up HDD PSW hang machine
Status = gBS->InstallProtocolInterface (
&DumemyHandle,
&gChasmfallsConnectAllStorageGuid,
EFI_NATIVE_INTERFACE,
NULL
);
DeletflashImageFromEsp();
Status1 = gRT->SetVariable (
L"DeletIsflash",
&gLfcVariableGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
SizeDeletIsflash,
&DeletIsflash
);
}
#endif
//[-end-220328-Ching000038-modify]//
//[-end-220221-OWENWU0039-add]//
//[-end-220118-BAIN000090-add]//
//[-start-210630-Dongxu0005-add]//
#if defined(C970_SUPPORT)
Status = gBS->LocateProtocol (
&gSaNvsAreaProtocolGuid,
NULL,
(VOID **) &TempSaNvsAreaProtocol
);
if (!EFI_ERROR(Status) && (TempSaNvsAreaProtocol->Area != NULL)) {
Opr = (UINT8 *)(UINTN)TempSaNvsAreaProtocol->Area->IgdOpRegionAddress;
} else {
return Status;
}
//[-start-21916-KEBIN00050-modify]//
//[-start-210630-Dongxu0023-modify]//
Status = gBS->LocateProtocol (&gEfiEdidDiscoveredProtocolGuid, NULL, &EdidDiscovered);
if (EdidDiscovered->Edid == NULL) {
return Status;
}
// Opr += 0x1C00;
//MNE007JA1-1
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0X0E) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x6F) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0X04) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x14)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, c970_override_table[0].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, c970_override_table[0].EDID, 256);
}
//[-start-211201-Dongxu0033-add]//
//MNE007JA1-2
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0X0E) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x6F) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0X13) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x14)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, c970_override_table[4].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, c970_override_table[4].EDID, 256);
}
//[-end-211201-Dongxu0033-add]//
//LP140WU1-SPB2
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0X30) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xE4) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0XED) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x06)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, c970_override_table[1].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, c970_override_table[1].EDID, 256);
}
//ATNA40YK01
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0X4C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x83) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0X52) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x41)) {
//clear backlight 0~10 level for HDR not use the data which BIOS write
gBS->CopyMem ((Opr+0x31C), 0, 22);
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, c970_override_table[2].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, c970_override_table[2].EDID, 256);
}
//ATNA40YN01
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0X4C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x83) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0X5A) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x41)) {
//clear backlight 0~10 level for HDR not use the data which BIOS write
gBS->CopyMem ((Opr+0x31C), 0, 22);
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, c970_override_table[3].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, c970_override_table[3].EDID, 256);
}
//[-end-210630-Dongxu0023-modify]//
//[-start-210923-YUNLEI0138-modify]//
#elif defined(C770_SUPPORT)
Status = gBS->LocateProtocol (
&gSaNvsAreaProtocolGuid,
NULL,
(VOID **) &TempSaNvsAreaProtocol
);
if (!EFI_ERROR(Status) && (TempSaNvsAreaProtocol->Area != NULL)) {
Opr = (UINT8 *)(UINTN)TempSaNvsAreaProtocol->Area->IgdOpRegionAddress;
} else {
return Status;
}
Status = gBS->LocateProtocol (&gEfiEdidDiscoveredProtocolGuid, NULL, &EdidDiscovered);
if (EdidDiscovered->Edid == NULL) {
return Status;
}
// Opr += 0x1C00;
//[start-210923-STORM1116-modify]
for(i=0;;i++) {
if((0xff == C770_override_table[i].Original_EdidOffset8) && \
(0xff == C770_override_table[i].Original_EdidOffset9) && \
(0xff == C770_override_table[i].Original_EdidOffset10) && \
(0xff == C770_override_table[i].Original_EdidOffset11)){
break;
}
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == C770_override_table[i].Original_EdidOffset8) && \
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == C770_override_table[i].Original_EdidOffset9) && \
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == C770_override_table[i].Original_EdidOffset10) && \
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] == C770_override_table[i].Original_EdidOffset11)) {
if(1 == C770_override_table[i].HDR_Support)
{
//clear backlight 0~10 level for HDR not use the data which BIOS write
gBS->CopyMem ((Opr+0x31C), 0, 22);
}
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte of Panel EDID Valid; 2:override 256byte of Panel EDID Valid
Opr += 0x0004;
gBS->CopyMem (Opr, C770_override_table[i].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, C770_override_table[i].EDID, 256);
break;
}
}
//[end-210923-STORM1116-modify]
//[-start-210929-TAMT000016-add]//
//[-start-211124-TAMT000034-modify]//
#elif defined(S77014_SUPPORT)
Status = gBS->LocateProtocol (
&gSaNvsAreaProtocolGuid,
NULL,
(VOID **) &TempSaNvsAreaProtocol
);
if (!EFI_ERROR(Status) && (TempSaNvsAreaProtocol->Area != NULL)) {
Opr = (UINT8 *)(UINTN)TempSaNvsAreaProtocol->Area->IgdOpRegionAddress;
} else {
return Status;
}
Status = gBS->LocateProtocol (&gEfiEdidDiscoveredProtocolGuid, NULL, &EdidDiscovered);
if (EdidDiscovered->Edid == NULL) {
return Status;
}
//ATNA40YK01
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x4C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x83) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x52) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x41)) {
//[-start-210929-TAMT000017-add]//
//clear backlight 0~10 level for HDR not use the data which BIOS write
gBS->CopyMem ((Opr+0x31C), 0, 22);
Opr += 0x1C00;
//[-end-210929-TAMT000017-add]//
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014_override_table[0].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, S77014_override_table[0].EDID, 256);
}
//2.8K COST_MNE007ZA1-3 14.0
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x0E) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x6F) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x0C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x14)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014_override_table[1].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014_override_table[1].EDID, 128);
}
//2.8K AUO B140QAN04.0 1A
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x06) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xAF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x91) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0xC3)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014_override_table[2].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014_override_table[2].EDID, 128);
}
//2.2K IVO N140E EDID
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x26) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xCF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x45) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x8C)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014_override_table[3].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014_override_table[3].EDID, 128);
}
//2.2K BOE NV140DRM-N61
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x09) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xE5) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x31) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x09)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014_override_table[4].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014_override_table[4].EDID, 128);
}
//2.2K AUO B140QAN05.H 1A
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x06) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xAF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x98) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x26)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014_override_table[5].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014_override_table[5].EDID, 128);
}
//[-end-211124-TAMT000034-modify]//
//[-end-210929-TAMT000016-add]//
//[-start-220401-GEORGE0060-add]//
#elif defined(S77014IAH_SUPPORT)
Status = gBS->LocateProtocol (
&gSaNvsAreaProtocolGuid,
NULL,
(VOID **) &TempSaNvsAreaProtocol
);
if (!EFI_ERROR(Status) && (TempSaNvsAreaProtocol->Area != NULL)) {
Opr = (UINT8 *)(UINTN)TempSaNvsAreaProtocol->Area->IgdOpRegionAddress;
} else {
return Status;
}
Status = gBS->LocateProtocol (&gEfiEdidDiscoveredProtocolGuid, NULL, &EdidDiscovered);
if (EdidDiscovered->Edid == NULL) {
return Status;
}
//ATNA40YK01
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x4C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x83) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x52) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x41)) {
//[-start-210929-TAMT000017-add]//
//clear backlight 0~10 level for HDR not use the data which BIOS write
gBS->CopyMem ((Opr+0x31C), 0, 22);
Opr += 0x1C00;
//[-end-210929-TAMT000017-add]//
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[0].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[0].EDID, 256);
}
//2.8K COST_MNE007ZA1-3 14.0
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x0E) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x6F) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x0C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x14)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[1].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[1].EDID, 128);
}
//2.8K AUO B140QAN04.0 1A
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x06) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xAF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x91) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0xC3)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[2].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[2].EDID, 128);
}
//2.2K IVO N140E EDID
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x26) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xCF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x45) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x8C)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[3].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[3].EDID, 128);
}
//2.2K BOE NV140DRM-N61
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x09) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xE5) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x31) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x09)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[4].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[4].EDID, 128);
}
//2.2K AUO B140QAN05.H 1A
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x06) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xAF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x98) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x26)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[5].EDID, 128);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[5].EDID, 128);
}
//120Hz COST_MNE007ZA1-5 14.0
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x0E) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x6F) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x16) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x14)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[6].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[6].EDID, 256);
}
//120Hz AUO B140QAN04.H 0A
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x06) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xAF) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0xA4) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x26)) {
Opr += 0x1C00;
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[7].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[7].EDID, 256);
}
//90Hz OLED ATNA40YK08
if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x4C) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x83) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x7A) &&
((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x41)) {
//[-start-210929-TAMT000017-add]//
//clear backlight 0~10 level for HDR not use the data which BIOS write
gBS->CopyMem ((Opr+0x31C), 0, 22);
Opr += 0x1C00;
//[-end-210929-TAMT000017-add]//
*Opr = 2; //setting 1: override 128byte ; 2:override 256byte
Opr += 0x0004;
gBS->CopyMem (Opr, S77014IAH_override_table[8].EDID, 256);
gBS->CopyMem (EdidDiscovered->Edid, S77014IAH_override_table[8].EDID, 256);
}
//[-end-220401-GEORGE0060-add]//
//[-start-211211-TAMT000039-add]//
#elif defined(S77013_SUPPORT)
//[-start-220113-TAMT000043-remove]//
//[-start-220119-TAMT000044-add]//
//[-start-220209-TAMT000043a-remove]//
// Status = gBS->LocateProtocol (
// &gSaNvsAreaProtocolGuid,
// NULL,
// (VOID **) &TempSaNvsAreaProtocol
// );
// if (!EFI_ERROR(Status) && (TempSaNvsAreaProtocol->Area != NULL)) {
// Opr = (UINT8 *)(UINTN)TempSaNvsAreaProtocol->Area->IgdOpRegionAddress;
// } else {
// return Status;
// }
//
// Status = gBS->LocateProtocol (&gEfiEdidDiscoveredProtocolGuid, NULL, &EdidDiscovered);
// if (EdidDiscovered->Edid == NULL) {
// return Status;
// }
// //BOE NE133QDM-N62
// if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x09) &&
// ((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0xE5) &&
// ((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0xCB) &&
// ((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x0A)) {
// Opr += 0x1C00;
// *Opr = 2; //setting 1: override 128byte ; 2:override 256byte
// Opr += 0x0004;
// gBS->CopyMem (Opr, S77013_override_table[0].EDID, 256);
// gBS->CopyMem (EdidDiscovered->Edid, S77013_override_table[0].EDID, 256);
// }
//
// //COST MND307DA1-9
// if (((LfcNvsAreaProtocol->Area)->EdidBuffer[8] == 0x0E) &&
// ((LfcNvsAreaProtocol->Area)->EdidBuffer[9] == 0x6F) &&
// ((LfcNvsAreaProtocol->Area)->EdidBuffer[10] == 0x11) &&
// ((LfcNvsAreaProtocol->Area)->EdidBuffer[11] ==0x13)) {
// Opr += 0x1C00;
// *Opr = 2; //setting 1: override 128byte ; 2:override 256byte
// Opr += 0x0004;
// gBS->CopyMem (Opr, S77013_override_table[1].EDID, 256);
// gBS->CopyMem (EdidDiscovered->Edid, S77013_override_table[1].EDID, 256);
// }
//[-end-220209-TAMT000043a-remove]//
//[-end-220119-TAMT000044-add]//
//[-end-220113-TAMT000043-remove]//
//[-start-220113-TAMT000043-add]//
//[-start-220119-TAMT000044-remove]//
//[-start-220209-TAMT000043a-add]//
Status = gBS->LocateProtocol (&gEfiEdidDiscoveredProtocolGuid, NULL, &EdidDiscovered);
if (EdidDiscovered->Edid == NULL) {
DEBUG((DEBUG_INFO, "Lenovo cannot find EdidDiscovered\n"));
return EFI_UNSUPPORTED;
}
EdidSize = EdidDiscovered->SizeOfEdid;
DataAddr = (UINT8*)AllocateZeroPool((UINTN)EdidSize);
if (DataAddr == NULL) {
DEBUG((DEBUG_INFO, "Lenovo cannot allocate memory buffer for EDID\n"));
return EFI_UNSUPPORTED;
}
// get EDID
CopyMem(DataAddr, EdidDiscovered->Edid, EdidDiscovered->SizeOfEdid);
EdidDataBlock = (VESA_BIOS_EXTENSIONS_EDID_DATA_BLOCK*)DataAddr;
// EDID checksum 128 bytes
for (Index = 0; Index < 127; Index++) {
CheckSum += DataAddr[Index];
}
if ((UINT8)(0 - CheckSum) == EdidDataBlock->Checksum) {
DEBUG((DEBUG_INFO, "EDID CheckSum OK\n"));
} else {
// if checksum error, just do nothing and exit
FreePool(DataAddr);
return EFI_UNSUPPORTED;
}
// BOE NE133QDM-N62
if ((EdidDataBlock->ManufactureName == 0xE509) && (EdidDataBlock->ProductCode == 0x0ACB)) {
EdidDataBlock->ManufactureName = 0xAE30;
EdidDataBlock->ProductCode = 0x8296;
ModifyEdid = TRUE;
}
//COST MND307DA1-9
if ((EdidDataBlock->ManufactureName == 0x6F0E) && (EdidDataBlock->ProductCode == 0x1311)) {
EdidDataBlock->ManufactureName = 0xAE30;
EdidDataBlock->ProductCode = 0x8297;
ModifyEdid = TRUE;
}
if (ModifyEdid) {
// calculate EDID checksum
CheckSum = 0;
DataAddr = (UINT8*)EdidDataBlock;
for (Index = 0; Index < 127; Index++) {
CheckSum += DataAddr[Index];
}
EdidDataBlock->Checksum = (UINT8)(0 - CheckSum);
// fill the OpRegion with modified EDID
Status = gBS->LocateProtocol (
&gSaNvsAreaProtocolGuid,
NULL,
(VOID **) &SaGlobalNvsArea
);
if(EFI_ERROR(Status)){
DEBUG((DEBUG_INFO, "LocateProtocolg SaNvsAreaProtocolGuid Error\n"));
return EFI_UNSUPPORTED;
}
// get IGD OpRegion address
IgdOpRegion = (IGD_OPREGION_STRUCTURE*)(UINTN)(SaGlobalNvsArea->Area->IgdOpRegionAddress);
// setup panel head to valid status
switch (EdidDiscovered->SizeOfEdid) {
case 128:
IgdOpRegion->MBox5.PHED = 0x01;
break;
case 256:
IgdOpRegion->MBox5.PHED = 0x02;
break;
default:
IgdOpRegion->MBox5.PHED = 0x01;
}
// setup OpRegion EDID
CopyMem((UINT8*)&(IgdOpRegion->MBox5.BDDC), EdidDataBlock, EdidDiscovered->SizeOfEdid);
}
//[-end-220209-TAMT000043a-add]//
//[-end-220119-TAMT000044-remove]//
//[-end-220113-TAMT000043-add]//
//[-end-211211-TAMT000039-add]//
#endif
//[-end-210923-YUNLEI0138-modify]//
//[-end-210630-Dongxu0005-add]//
return Status;
}