|
@@ -0,0 +1,1766 @@
|
|
|
+/** @file
|
|
|
+Header file for GOP Configuration Library
|
|
|
+
|
|
|
+
|
|
|
+ Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
|
|
+ SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
+**/
|
|
|
+
|
|
|
+#ifndef _GOP_CONFIG_LIB_H_
|
|
|
+#define _GOP_CONFIG_LIB_H_
|
|
|
+
|
|
|
+#include <Library/DebugLib.h>
|
|
|
+#include <Uefi/UefiBaseType.h>
|
|
|
+#pragma pack(1)
|
|
|
+#define GOP_CONFIG_VBT_REVISION 0xC1
|
|
|
+
|
|
|
+#define ChildStruct_MAX 8 ///< Maximum number of child structures in VBT
|
|
|
+#define CompressionStruct_MAX 2 ///< Maximum number of compression parameter structures in VBT.
|
|
|
+#define NO_DEVICE 0x00 ///< Defines a null display class.
|
|
|
+#define DISPLAY_PORT_ONLY 0x68C6 ///< Defines a display class of Integrated Display Port Only
|
|
|
+#define DISPLAY_PORT_HDMI_DVI_COMPATIBLE 0x60D6 ///< Defines a display class of Integrated DisplayPort with HDMI/DVI Compatible
|
|
|
+#define DISPLAY_PORT_DVI_COMPATIBLE 0x68D6 ///< Defines a display class of Integrated DisplayPort with DVI Compatible
|
|
|
+#define HDMI_DVI 0x60D2 ///< Defines a display class of Integrated HDMI/DVI
|
|
|
+#define DVI_ONLY 0x68D2 ///< Defines a display class of Integrated DVI Only
|
|
|
+#define MIPI_ONLY 0x1400
|
|
|
+#define eDP_ONLY 0x1806 ///< Defines a display class of eDP only
|
|
|
+#define AUX_CHANNEL_A 0x40
|
|
|
+#define AUX_CHANNEL_B 0x10
|
|
|
+#define AUX_CHANNEL_C 0x20
|
|
|
+#define AUX_CHANNEL_D 0x30
|
|
|
+#define NO_PORT 0x00 ///< Defines a output port NA
|
|
|
+#define HDMI_B 0x01 ///< Defines a output port HDMI-B
|
|
|
+#define HDMI_C 0x02 ///< Defines a output port HDMI-C
|
|
|
+#define HDMI_D 0x03 ///< Defines a output port HDMI-D
|
|
|
+#define HDMI_F 0x0E ///< Defines a output port HDMI-D
|
|
|
+#define DISPLAY_PORT_A 0x0A ///< Defines a output port DisplayPort A
|
|
|
+#define DISPLAY_PORT_B 0x07 ///< Defines a output port DisplayPort B
|
|
|
+#define DISPLAY_PORT_C 0x08 ///< Defines a output port DisplayPort C
|
|
|
+#define DISPLAY_PORT_D 0x09 ///< Defines a output port DisplayPort D
|
|
|
+#define DISPLAY_PORT_E 0x0B ///< Defines a output port DisplayPort E
|
|
|
+#define DISPLAY_PORT_F 0x0D ///< Defines a output port DisplayPort F
|
|
|
+#define PORT_MIPI_A 0x15 ///< Mipi Port A
|
|
|
+#define PORT_MIPI_C 0x17 ///< Mipi Port C
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT16 Dclk; // DClk in 10 KHz
|
|
|
+ UINT8 HActive; // HActive [7:0]
|
|
|
+ UINT8 HBlank; // HBlank [7:0]
|
|
|
+ UINT8 HA_HB_UpperNibble; // Upper nibble = HActive [11:8]
|
|
|
+ UINT8 VActive; // VActive [7:0]
|
|
|
+ UINT8 VBlank; // VBlank [7:0]
|
|
|
+ UINT8 VA_VB_UpperNibble; // Upper nibble = VActive [11:8]
|
|
|
+ UINT8 HSyncOffset; // HSync offset from blank start LSB
|
|
|
+ UINT8 HPulseWidth; // HSync Pulse Width, LSB
|
|
|
+ UINT8 VsyncOffset_VpulseWidth_LSB; // Bits 7:4 = VSync offset [3:0]
|
|
|
+ UINT8 HSO_HSPW_V_High; // Bits 7:6 = HSync Offset [9:8]
|
|
|
+ UINT8 HorImageSize; // Horizontal Image Size
|
|
|
+ UINT8 VerImageSize; // Vertical Image Size
|
|
|
+ UINT8 HIS_VIS_High; // UpperLmtH_V Upper limits of H. and V. image size
|
|
|
+ UINT8 HBorder; // Horizontal Border
|
|
|
+ UINT8 VBorder; // Vertical Border
|
|
|
+ UINT8 Flags; // Flags
|
|
|
+} DTD_STRUCTURE; // 18 Bytes
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT16 XRes;
|
|
|
+ UINT16 YRes;
|
|
|
+ UINT32 SerialNo;
|
|
|
+ UINT8 Week;
|
|
|
+ UINT8 Year;
|
|
|
+} PID_DATA; // 10 Bytes
|
|
|
+
|
|
|
+//
|
|
|
+// VBT Header
|
|
|
+//
|
|
|
+/**
|
|
|
+ This structure defines the VBT Header.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 Product_String[20]; ///< "$VBT_Cannonlake" is the product string
|
|
|
+ UINT16 Version_Num; ///< Defines the VBT Header version number.
|
|
|
+ UINT16 Header_Size; ///< Defines the size of VBT Header.
|
|
|
+ UINT16 Table_Size; ///< Defines the size of complete VBT.
|
|
|
+ UINT8 Checksum; ///< Defines the checksum of entire VBT
|
|
|
+ UINT8 Reserved1; ///< Reserved field 1 of 1 byte.
|
|
|
+ UINT32 Bios_Data_Offset; ///< Defines the offset of VBT Data block.
|
|
|
+ UINT32 Aim_Data_Offset[4]; ///< 4 reserved pointers to VBT data blocks.
|
|
|
+} VBT_HEADER;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the VBT BIOS Data Block Header
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BDB_Signature[16]; ///< Defines the Bios Data Block signature "BIOS_DATA_BLOCK".
|
|
|
+ UINT16 BDB_Version; ///< Defines the VBT (data) version.
|
|
|
+ UINT16 BDB_Header_Size; ///< Defines the size of VBT Bios data block header.
|
|
|
+ UINT16 BDB_Size; ///< Defines the size of Bios data block.
|
|
|
+} VBT_BIOS_DATA_HEADER;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the BMP Signon Message and Copyright Message Structure
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines Block ID : 254
|
|
|
+ UINT16 BlockSize; ///< Defines the size of BMP Signon block.
|
|
|
+
|
|
|
+ UINT16 Bmp_BIOS_Size; ///< Defines the BIOS size 32k/48k/64k.
|
|
|
+ UINT8 BIOS_Type; ///< Defines the type of BIOS desktop or mobile.
|
|
|
+ UINT8 RelStatus; ///< Defines the release status of the current GOP driver.
|
|
|
+ UINT8 BIOS_HW; ///< Defines the Hardware i.e. Cannonlake.
|
|
|
+ UINT8 INT_HW; ///< Defines the integrated hardware supported eDP/HDMI/DP.
|
|
|
+ UINT8 Build_Number[4]; ///< Defines the build number string.
|
|
|
+ UINT8 SignOn[155]; ///< Defines the sign on message.
|
|
|
+ UINT8 CopyRight[61]; ///< Defines the copyright message.
|
|
|
+} BMP_STRUCTURE_SIGNON;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the BMP General Bits
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 bmp_BIOS_CS; ///< Defines the start of BIOS code segment
|
|
|
+ UINT8 bmp_DOS_Boot_Mode; ///< Defines the mode number to set when DOS is boot
|
|
|
+ UINT8 bmp_BW_Percent; ///< Set percentage of total memory BW
|
|
|
+ UINT8 bmp_Popup_Mem_Size; ///< Default Popup memory size in KB
|
|
|
+ UINT8 bmp_Resize_PCI_BIOS; ///< BIOS size granularity in 0.5 KB
|
|
|
+ UINT8 Switch_CRT_To_DDC2; ///< Obsolete field: Is the CRT already switched to DDC2
|
|
|
+ UINT8 bmp_Allow_Config; ///< Bit 1 : 1, Enable aspect ratio for DOS
|
|
|
+ ///< Bit 0 : 1, Allow boot to DVI even if it is not attached.
|
|
|
+} BMPGEN;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines Block 254 (BMP structure)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ BMP_STRUCTURE_SIGNON bmp_Signon_Message; ///< Instance of signon and copyright message structure
|
|
|
+ BMPGEN bmp_General_Bytes; ///< Instance of BMP General Bits structure.
|
|
|
+} BLOCK254_BMP_Structure;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines Block 1 (General Bytes Definitions)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID (1)
|
|
|
+ UINT16 BlockSize; ///< Defines the size of General bytes definition block.
|
|
|
+
|
|
|
+ /**
|
|
|
+ BMP General Bit Definitions 1\n
|
|
|
+ Bit 7 = DVO A color flip bit
|
|
|
+ = 0, No DVO A color flip
|
|
|
+ = 1, Flip DVO A color
|
|
|
+ Bits 6:4 = Clear screen (CLS) after Signon
|
|
|
+ = 000, No CLS
|
|
|
+ = 001, 0.5 sec pause and then CLS
|
|
|
+ = 010, 1.0 sec pause and then CLS
|
|
|
+ = 011, 1.5 sec pause and then CLS
|
|
|
+ = 100, 2.0 sec pause and then CLS
|
|
|
+ = 101, 2.5 sec pause and then CLS
|
|
|
+ = 110, 3.0 sec pause and then CLS
|
|
|
+ = 111, 3.5 sec pause and then CLS
|
|
|
+ Bit 3 = 1 Enable Display Signon
|
|
|
+ Bit 2 = 1 Enable Flex-aim Support
|
|
|
+ Bits 1:0 = Flat panel fitting enabling
|
|
|
+ = 00, Centering
|
|
|
+ = 01, Reserved
|
|
|
+ = 10, Aspect scaling
|
|
|
+ = 11, Fullscreen
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 PanelFitterEnabling:2;
|
|
|
+ UINT8 FlexAimSupportEnable:1;
|
|
|
+ UINT8 DisplaySignonEnable:1;
|
|
|
+ UINT8 ClearScreenTime:3;
|
|
|
+ UINT8 DvoAColorFlipEnable:1;
|
|
|
+ } Bits;
|
|
|
+ } bmp_Bits_1;
|
|
|
+
|
|
|
+ /**
|
|
|
+ BMP General Bit Definitions\n
|
|
|
+ Bit 7 = Hot plug support
|
|
|
+ = 0, Hot plug disabled
|
|
|
+ = 1, Hot plug enabled
|
|
|
+ Bit 6 = Dynamic CD clock feature
|
|
|
+ = 0, Dynamic CD clock feature is disabled
|
|
|
+ = 1, Dynamic CD clock feature is enabled
|
|
|
+ Bit 5 = Underscan support for VGA timings
|
|
|
+ Bit 4 = Disable SSC in Dual Display Twin Mode. (This field is obsolete now. Kept for VBIOS only.)
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 3 = LFP power state on override by 5f64h,08h
|
|
|
+ = 0, No Override
|
|
|
+ = 1, Override
|
|
|
+ Bit 2 = Internal LVDS SSC frequency. (This field is obsolete now. Kept for VBIOS only.)
|
|
|
+ = 0, 96/120MHz
|
|
|
+ = 1, 100MHz
|
|
|
+ Bit 1 = internal LVDS SSC (Spread Spectrum Clock) (This field is obsolete now. Kept for VBIOS only.)
|
|
|
+ = 0, Disabled
|
|
|
+ = 1, Enabled
|
|
|
+ Bit 0 = KvmrSessionEnable.
|
|
|
+ = 0, Disabled
|
|
|
+ = 1, Enabled
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 KvmrSessionEnable:1;
|
|
|
+ UINT8 Reserved_1:5;
|
|
|
+ UINT8 DynamicCdClockEnable:1;
|
|
|
+ UINT8 HotPlugEnable:1;
|
|
|
+ } Bits;
|
|
|
+ } bmp_Bits_2;
|
|
|
+
|
|
|
+ /**
|
|
|
+ BMP General Bit Definitions 3\n
|
|
|
+ Bit 7 = Ignore strap status
|
|
|
+ = 0 Do not ignore
|
|
|
+ = 1 Ignore
|
|
|
+ Bit 6 = Panel Timing algorithm
|
|
|
+ = 0 Preferred timings
|
|
|
+ = 1 Best fit timings
|
|
|
+ Bit 5 Copy iLFP DTD to SDVO LVDS DTD
|
|
|
+ = 0 Don't copy DTD
|
|
|
+ = 1 Copy DTD to
|
|
|
+ Bit 4 = VBIOS normal/extd. DT mode
|
|
|
+ = 0 Normal mode
|
|
|
+ = 1 DUAL mode
|
|
|
+ Bit 3 = FDI RX Polarity
|
|
|
+ = 0 Normal
|
|
|
+ = 1 Inverted
|
|
|
+ Bit 2 = Enable 180 Degree Rotation
|
|
|
+ = 0 Disable
|
|
|
+ = 1 Enable
|
|
|
+ Bit 1 = Single DVI-I connector for CRT and DVI display: Obsolete field
|
|
|
+ = 0 Disabled
|
|
|
+ = 1 Enabled
|
|
|
+ Bit 0 = Smooth Vision
|
|
|
+ = 0 Disabled
|
|
|
+ = 1 Enabled
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 Reserved1:1;
|
|
|
+ UINT8 SingleDviiCrtConnector:1;
|
|
|
+ UINT8 Enable180DegRotation:1;
|
|
|
+ UINT8 FdiRxPolarity:1;
|
|
|
+ UINT8 Reserved2:4;
|
|
|
+ } Bits;
|
|
|
+ } bmp_Bits_3;
|
|
|
+
|
|
|
+ UINT8 Reserved; ///< Reserved field. It was Legacy_Monitor_Detect in previous platforms.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Integrated display device support\n
|
|
|
+ Bits 7:6 = Reserved
|
|
|
+ Bit 5 = DP SSC Dongle Enable/Disable
|
|
|
+ Bit 4 = DP SSC Frequency. (This field is obsolete now. Kept for VBIOS only.)
|
|
|
+ = 0, 96 MHz
|
|
|
+ = 1, 100 MHz
|
|
|
+ Bit 3 = DP SSC Enable
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 2 = Integrated EFP support
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 1 = Integrated TV support. (This field is obsolete now. Kept for VBIOS only.)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 0 = Integrated CRT support: Obsolete field
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 CrtSupported:1;
|
|
|
+ UINT8 TvSupported:1;
|
|
|
+ UINT8 EfpSupported:1;
|
|
|
+ UINT8 DpSscEnable:1;
|
|
|
+ UINT8 DpSscFrequency:1;
|
|
|
+ UINT8 DpDongleSscEnable:1;
|
|
|
+ UINT8 Reserved1:2;
|
|
|
+ } Bits;
|
|
|
+ } Int_Displays_Support;
|
|
|
+} VBT_GENERAL1_INFO;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the Structure of PRD Boot Table Entry
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 AttachBits; ///< Bitmap representing the displays attached currently.
|
|
|
+ UINT8 BootDev_PipeA; ///< Bitmap representing the display to boot on Pipe A.
|
|
|
+ UINT8 BootDev_PipeB; ///< Bitmap representing the display to boot on Pipe B.
|
|
|
+} PRD_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 254 (PRD Boot Table/Child Device List)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID (254)
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Block 254
|
|
|
+
|
|
|
+ PRD_TABLE PRDTable[16]; ///< Defines the Child device list for enumerating child handles.
|
|
|
+ UINT16 PRD_Boot_Table_Number_Of_Entries; ///< Number of entries in child device list.
|
|
|
+} PRD_BOOT_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the Structure for a CHILD_STRUCT (used for all the displays).
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 DeviceHandle; ///< Unique ID indicating the group of display device (LFP/EFP1/EFP2/EFP3/EFP4).
|
|
|
+ UINT16 DeviceClass; ///< Indicates the class of display device.
|
|
|
+ UINT8 I2CSpeed; ///< Defines the I2C speed to be used for I2C transaction.
|
|
|
+ /**
|
|
|
+ Defines the DP on board redriver configuration.
|
|
|
+ BIT[7] : Reserved
|
|
|
+ BIT[6] : Is On Board DP Redriver Present
|
|
|
+ 0 : No
|
|
|
+ 1 : Yes
|
|
|
+ BIT[5:3] : On Board Redriver VSwing Level
|
|
|
+ 0 : Level 0
|
|
|
+ 1 : Level 1
|
|
|
+ 2 : Level 2
|
|
|
+ 3 : Level 3
|
|
|
+ Others : Reserved
|
|
|
+ BIT[2:0] : On Board Redriver PreEmph Level
|
|
|
+ 0 : Level 0
|
|
|
+ 1 : Level 1
|
|
|
+ 2 : Level 2
|
|
|
+ 3 : Level 3
|
|
|
+ Others : Reserved
|
|
|
+ **/
|
|
|
+ union{
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 OnBoardPreEmphLevel:3;
|
|
|
+ UINT8 OnBoardVSwingLevel:3;
|
|
|
+ UINT8 OnBoardRedriverPresent:1;
|
|
|
+ UINT8 Reserved:1;
|
|
|
+ } Bits;
|
|
|
+ } DpOnBoardRedriver;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the DP on dock redriver configuration.
|
|
|
+ BIT[7] : Reserved
|
|
|
+ BIT[6] : Is On Dock DP Redriver Present
|
|
|
+ 0 : No
|
|
|
+ 1 : Yes
|
|
|
+ BIT[5:3] : On Dock Redriver VSwing Level
|
|
|
+ 0 : Level 0
|
|
|
+ 1 : Level 1
|
|
|
+ 2 : Level 2
|
|
|
+ 3 : Level 3
|
|
|
+ Others : Reserved
|
|
|
+ BIT[2:0] : On Dock Redriver PreEmph Level
|
|
|
+ 0 : Level 0
|
|
|
+ 1 : Level 1
|
|
|
+ 2 : Level 2
|
|
|
+ 3 : Level 3
|
|
|
+ Others : Reserved
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 OnDockPreEmphLevel:3;
|
|
|
+ UINT8 OnDockVSwingLevel:3;
|
|
|
+ UINT8 OnDockRedriverPresent:1;
|
|
|
+ UINT8 Reserved:1;
|
|
|
+ } Bits;
|
|
|
+ } DpOnDockRedriver;
|
|
|
+
|
|
|
+ /**
|
|
|
+
|
|
|
+ Defines the HDMI level shifter configuration.
|
|
|
+ BIT[7:5] : Hdmi Maximum data rate
|
|
|
+ BIT[4:0] : Hdmi Level shifter value
|
|
|
+
|
|
|
+ **/
|
|
|
+ union{
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 HdmiLevelShifterValue:5;
|
|
|
+ UINT8 HdmiMaxDataRateBits:3;
|
|
|
+ } Bits;
|
|
|
+ } HdmiLevelShifterConfig;
|
|
|
+
|
|
|
+ UINT16 EFPDTDBufferPointer; ///< Pointer to the DTD timing to be used in case of edidless EFP.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the first set of flags.
|
|
|
+ BIT[7-4] : Reserved
|
|
|
+ BIT[3] : Dual pipe ganged display support
|
|
|
+ 0 : Display uses a single pipe/port
|
|
|
+ 1 : Display uses two distinct pipes/ports.
|
|
|
+ BIT[2] : Compression Method Select
|
|
|
+ 0 : Compression using picture parameter set (PPS)
|
|
|
+ 1 : Compression using Capability parameter set (CPS)
|
|
|
+ BIT[1] : Compression enable/disable for this display.
|
|
|
+ 0 : Disabled
|
|
|
+ 1 : Enabled
|
|
|
+ BIT[0] : EDID less EFP Enable
|
|
|
+ 0 : Enable support for EDID less EFP.
|
|
|
+ 1 : Disable support for EDID less EFP.
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 EdidlessEfpEnable:1;
|
|
|
+ UINT8 CompressionEnable:1;
|
|
|
+ UINT8 CompressionMethod:1;
|
|
|
+ UINT8 IsDualPortEnabled:1;
|
|
|
+ UINT8 Reserved:4;
|
|
|
+ } Bits;
|
|
|
+ } Flags0;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the compression index field for the display.
|
|
|
+ BITS[7-4] : Reserved
|
|
|
+ BITS[3-0] : Compression Structure index in the block 55.
|
|
|
+ 0x0 : Index 0 in block 55
|
|
|
+ 0x1 : Index 1 in block 55
|
|
|
+ 0xF : Not Applicable.
|
|
|
+ Others : Reserved
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 IndexInBlock55:4;
|
|
|
+ UINT8 Reserved:4;
|
|
|
+ } Bits;
|
|
|
+ } CompressionStructureIndex;
|
|
|
+
|
|
|
+ UINT8 SlaveDdiPort; ///< The DVO port number of slave DDI to be used in case Flags0[3] = 1.
|
|
|
+
|
|
|
+ UINT8 Reserved_1; ///< Reserved and might be used in other platforms.
|
|
|
+ UINT16 AddInOffset; ///< Obsolete field.
|
|
|
+ UINT8 DVOPort; ///< Specifies the port number of the display device represented in the device class.
|
|
|
+ UINT8 I2CBus; ///< Specifies the GMBUS or I2C pin pair for add in card.
|
|
|
+ UINT8 SlaveAddr; ///< Specifies the I2C address of the add in card.
|
|
|
+ UINT8 DDCBus; ///< Specifies the GMBUS pin pair for EDID read.
|
|
|
+ UINT16 TimingInfoPtr; ///< Pointer to the buffer where VBIOS stores the EDID of device.
|
|
|
+ UINT8 DVOCfg; ///< Obsolete field.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Flags 1\n
|
|
|
+ Bits 7:5 : Reserved
|
|
|
+ Bit 4 : HPD Sense Invert
|
|
|
+ 0 : Invert not required (default)
|
|
|
+ 1 : Invert required
|
|
|
+ Bit 3 : IBoost feature enable/disable.
|
|
|
+ 0 : IBoost feature is disabled.
|
|
|
+ 1 : IBoost feature is enabled.
|
|
|
+ Bit 2 : Hdmi 2.0 Motherboard Downsuppotred options
|
|
|
+ 0 : Motherboard Down chip not supported
|
|
|
+ 1 : Motherboard Down Chip Supported on the Board
|
|
|
+ Bit 1 : Lane Reversal feature.
|
|
|
+ 0 : Disable
|
|
|
+ 1 : Enable
|
|
|
+ Bit 0 : DP/HDMI routed to dock.
|
|
|
+ 0 : Disable
|
|
|
+ 1 : Enable
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 DockablePort:1;
|
|
|
+ UINT8 EnableLaneReversal:1;
|
|
|
+ UINT8 OnBoardLsPconDonglePresent:1;
|
|
|
+ UINT8 IBoostEnable:1;
|
|
|
+ UINT8 IsHpdInverted:1;
|
|
|
+ UINT8 Reserved:3;
|
|
|
+ } Bits;
|
|
|
+ } Flags_1;
|
|
|
+
|
|
|
+ UINT8 Compatibility; ///< Compatibility is used in VBIOS only. It was used before device class was defined.
|
|
|
+ UINT8 AUX_Channel; ///< Specifies the aux channel to be used for display port devices.
|
|
|
+ UINT8 Dongle_Detect; ///< Indicates whether dongle detect is enabled or not.
|
|
|
+ UINT8 Capabilities; ///< Bits 1-0 indicate pipe capabilities whether display can be used on one pipe or both the pipes.
|
|
|
+ UINT8 DVOWiring; ///< Obsolete field.
|
|
|
+ UINT8 MipiBridgeType; ///< MIPI bridge type
|
|
|
+ UINT16 DeviceClassExtension; ///< Obsolete.
|
|
|
+ UINT8 DVOFunction; ///< Obsolete.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Flags 2
|
|
|
+ Bits 7:4 : DP Port trace length from silicon to output port on the board
|
|
|
+ 0 : Default RVP length
|
|
|
+ 1 : Short trace length
|
|
|
+ 2 : Long trace length
|
|
|
+ Bits 3:2 : Reserved
|
|
|
+ Bit 1 : Indicates whether this port is Thunderbolt port or not.
|
|
|
+ 0 : No
|
|
|
+ 1 : Yes
|
|
|
+ Bit 0 : DP 2 lane RCR# 1024829: USB type C to enable 2 lane DP display
|
|
|
+ 0 : Disable
|
|
|
+ 1 : Enable
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 UsbTypeCDongleEnabled:1; ///< Indicates whether this port is USB type C.
|
|
|
+ UINT8 IsThunderboltPort:1; ///< Indicates whether this port is Thunderbolt. (ICL+)
|
|
|
+ UINT8 Reserved:2; ///< Reserved for future use.
|
|
|
+ UINT8 DpPortTraceLength:4; ///< Dp port trace length from silicon to port.
|
|
|
+ } Bits;
|
|
|
+ } Flags_2;
|
|
|
+ UINT8 DP2XGpioIndex; ///< GPIO index number for the USB type C.
|
|
|
+ UINT16 DP2XGpioNumber; ///< GPIO number for USB type C.
|
|
|
+
|
|
|
+ /**
|
|
|
+ IBoost magnitude field.
|
|
|
+ Bits 7:4 : DP Boost magnitude
|
|
|
+ 0 : 1
|
|
|
+ 1 : 3
|
|
|
+ 2 : 7
|
|
|
+ Others : Reserved for WHL.
|
|
|
+ Bits 3:0 : HDMI Boost magnitude
|
|
|
+ 0 : 1
|
|
|
+ 1 : 3
|
|
|
+ 2 : 7
|
|
|
+ Others : Reserved.
|
|
|
+ **/
|
|
|
+ union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 DpEdpBoostMagnitude:4;
|
|
|
+ UINT8 HdmiBoostMagnitude:4;
|
|
|
+ } Bits;
|
|
|
+ } BoostMagnitude;
|
|
|
+} CHILD_STRUCT;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines Block 2 (General Bytes Definitions)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID : 2.
|
|
|
+ UINT16 BlockSize; ///< Defines the size of VBT General Info 2 Block.
|
|
|
+
|
|
|
+ UINT8 bmp_CRT_DDC_GMBUS_Pin; ///< Obsolete field: Selects the CRT DDC GMBUS pin pair.
|
|
|
+ UINT8 bmp_DPMS_Bits; ///< BMP DPMS Bit Definitions.
|
|
|
+ UINT16 bmp_Boot_Dev_Bits; ///< BMP Boot Device Bit Definitions.
|
|
|
+ UINT8 SizeChild_Struct; ///< Size of the ChildStruc structure.
|
|
|
+
|
|
|
+ CHILD_STRUCT Child_Struct[ChildStruct_MAX]; ///< This array defines all the supported child structures.
|
|
|
+} VBT_GENERAL2_INFO;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 3 (Original Display Toggle List)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID : 3
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Original Display Toggle List Block
|
|
|
+ UINT8 bmp_Display_Detect; ///< Display must be attached or not
|
|
|
+} BLOCK03_ORIGINAL_DISPLAY_TOGGLE_LIST;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines structure of a pointer table.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 Offset; ///< Defines the offset of the table from start of BIOS Data block.
|
|
|
+ UINT16 Size; ///< Defines the size of an entry of the table.
|
|
|
+} BMP_TABLE_PTR;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines Block 252 (SBIOS Hooks and BMP Table Pointers).
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID : 252.
|
|
|
+ UINT16 BlockSize; ///< Defines the size of SBIOS Hooks block.
|
|
|
+ UINT8 SbiosHooks[18]; ///< This array defines a series of SBIOS hooks. Each entry represents one hook.
|
|
|
+ BMP_TABLE_PTR BmpTablePtr[26]; ///< This array defines pointers to all the important tables in the VBT.
|
|
|
+} BLOCK252_SBIOS_Hook;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of MMIO boot table entry
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT32 Register; ///< Defines the MMIO offset of the register.
|
|
|
+ UINT32 Value; ///< Defines the default value of the register.
|
|
|
+} MMIO_BOOT_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines Block 6 (MMIO Register Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID : 6
|
|
|
+ UINT16 BlockSize; ///< Defines the size of MMIO Register Table block.
|
|
|
+ UINT16 RegTableId; ///< Defines the ID for MMIO register table (0xFFFC).
|
|
|
+ UINT8 AccessFlag; ///< Defines the flag for data access size (02 for 4 byte read/write).
|
|
|
+ MMIO_BOOT_TABLE MMIOBootTable[14]; ///< Array containing the MMIO register table.
|
|
|
+ UINT16 TableEnd; ///< Special value describing End of table (0xFFFF).
|
|
|
+} BLOCK06_MMIO_REG_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines Block 7 (IO SW Flag Register Table)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines Block ID (7).
|
|
|
+ UINT16 BlockSize; ///< Defines the size of IO SW Flag register table block.
|
|
|
+ UINT16 RegTableId; ///< Defines the ID for IO SW Flag register table (0xFFFE).
|
|
|
+ UINT8 GRIndexRegLsb; ///< Defines the read/write size. Value is 0xCE meaning 1 byte without mask.
|
|
|
+ UINT8 IOSWFlagReg; ///< Defines the offset for the IO SW Flag register.
|
|
|
+ UINT8 Value; ///< Defines the data/value for the register.
|
|
|
+ UINT16 TableEnd; ///< Special value describing the end of table (0xFFFF).
|
|
|
+} BLOCK07_IOSWFLAG_REG_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the entry of SWF table.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT32 Register; ///< Defines the MMIO offset of the SWF register.
|
|
|
+ UINT32 Value; ///< Defines the default value for the SWF register.
|
|
|
+} SWF_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 8 (MMIO SW Flag Block).
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID : 8.
|
|
|
+ UINT16 BlockSize; ///< Defines the size of MMIO SWF register table block.
|
|
|
+ UINT16 RegTableId; ///< Defines the ID for MMIO SWF register table (0xFFFC).
|
|
|
+ UINT8 AccessFlag; ///< Defines the data access size. Value is 0x02 meaning 4 bytes read/write.
|
|
|
+ SWF_TABLE SWFTable[7]; ///< Array containing the MMIO SWF register table.
|
|
|
+ UINT16 TableEnd; ///< Special value describing end of table (0xFFFF).
|
|
|
+} BLOCK08_MMIOSWFLAG_REG_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the PSR feature table entry.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 SRD_Enables; ///< Defines PSR features such as full link enable/disable and whether aux is required to wake up.
|
|
|
+ UINT8 SRD_WaitTimes; ///< Defines lines to wait before link standby and idle frames to wait before SRD enable.
|
|
|
+ UINT16 SRD_TP1_WakeupTime; ///< TP 1 wake up time in multiples of 100.
|
|
|
+ UINT16 SRD_TP2_WakeupTime; ///< TP2/TP3 wake up time in multiples of 100
|
|
|
+} PSR_FEATURE_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 9 (PSR Features Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the block ID : 9
|
|
|
+ UINT16 BlockSize; ///< Defines the size of PSR Feature block.
|
|
|
+ PSR_FEATURE_TABLE PSRFeatureTable[16]; ///< Array containing the PSR Feature table.
|
|
|
+} BLOCK09_PSR_FEATURE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines an entry of Mode Removal table.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 XRes; ///< X resolution of the mode.
|
|
|
+ UINT16 YRes; ///< Y resolution of the mode.
|
|
|
+ UINT8 Bpp; ///< Bits per pixel of the mode.
|
|
|
+ UINT16 RRate; ///< Refresh rate of the mode.
|
|
|
+ UINT8 RFlags; ///< Flags specifying display type and functional area where the mode is to be removed.
|
|
|
+ UINT16 PanelFlags; ///< Applicable to LFP only. Indicates which LFP panels the mode is to be removed.
|
|
|
+} MODE_REMOVAL_TABLE_ENTRY;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 10 (Mode Removal Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the Block ID : 10.
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Mode Removal table block.
|
|
|
+ UINT8 EntrySize; ///< Defines the size of one entry of mode removal table.
|
|
|
+ MODE_REMOVAL_TABLE_ENTRY ModeRemovalTable[20]; ///< Array containing the mode removal table.
|
|
|
+ UINT16 Terminator; ///< Special value indicating end of mode removal table (0xFFFF).
|
|
|
+} BLOCK10_MODE_REMOVAL_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 12 (Driver Features Data Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 12
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Driver features block.
|
|
|
+
|
|
|
+ /**
|
|
|
+ This field defines the various driver related bits:\n
|
|
|
+ Bit 7 = Use 00000110h ID for Primary LFP
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 6 = Enable/Disable Sprite in Clone Mode
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 5 = Driver INT 15h hook
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 4 = Dual View Zoom
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 3 = Hot Plug DVO
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 2 = Allow display switching when in Full Screen DOS.
|
|
|
+ = 0, Block Display Switching
|
|
|
+ = 1, Allow Display Switching
|
|
|
+ Bit 1 = Block display switching when DVD active
|
|
|
+ = 0, No Block Display Switching
|
|
|
+ = 1, Block Display Switching
|
|
|
+ Bit 0 = Boot device algorithm
|
|
|
+ = 0, OS Default
|
|
|
+ = 1, Driver Default
|
|
|
+ **/
|
|
|
+ UINT8 bmp_Driver_Bits;
|
|
|
+ UINT16 bmp_Driver_Boot_Mode_X; ///< X resolution of driver boot mode.
|
|
|
+ UINT16 bmp_Driver_Boot_Mode_Y; ///< Y resolution of driver boot mode.
|
|
|
+ UINT8 bmp_Driver_Boot_Mode_BPP; ///< Bits per pixel of driver boot mode.
|
|
|
+ UINT8 bmp_Driver_Boot_Mode_RR; ///< Refresh rate of driver boot mode.
|
|
|
+
|
|
|
+ /**
|
|
|
+ This field defines the extended driver bits 1.\n
|
|
|
+ Bits [15:14] = Integrated HDMI configuration
|
|
|
+ = 00b, No Integrated HDMI
|
|
|
+ = 01b, Port-B Only
|
|
|
+ = 10b, Port-C Only
|
|
|
+ = 11b, Both Port-B and Port-C
|
|
|
+ Bits 13 = TV Hotplug
|
|
|
+ Bits [12:11] = LFP configuration
|
|
|
+ = 00b, No LVDS
|
|
|
+ = 01b, Integrated LVDS
|
|
|
+ = 10b, SDVO LVDS
|
|
|
+ = 11b, eDP
|
|
|
+ Bit 10 = Obsolete field: CRT hotplug
|
|
|
+ = 0, Disabled
|
|
|
+ = 1, Enabled (Default)
|
|
|
+ Bit 9 = SDVO device power down
|
|
|
+ = 0, Disabled (Default)
|
|
|
+ = 1, Enabled
|
|
|
+ Bit 8 = Preserve Aspect Ratio
|
|
|
+ = 0, Disabled (Default)
|
|
|
+ = 1, Enabled
|
|
|
+ Bit 7 = Display "Maintain Aspect Scaling" via CUI
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes (Default)
|
|
|
+ Bit 6 = Sprite Display Assignment when Overlay is Active in Clone Mode:
|
|
|
+ = 0, Secondary
|
|
|
+ = 1, Primary
|
|
|
+ Bit 5 = Default Power Scheme user interface
|
|
|
+ = 0, CUI
|
|
|
+ = 1, 3rd Party Application
|
|
|
+ Bit 4 = NT 4.0 Dual Display Clone Support
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 3 = Default Render Clock Frequency
|
|
|
+ = 0, High Frequency
|
|
|
+ = 1, Low Frequency
|
|
|
+ Bit 2 = Dual-Frequency Graphics Technology
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 1 = Selective Mode Pruning
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 0 = Enable LFP as primary
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+**/
|
|
|
+ UINT16 bmp_Ext_Driver_Bits;
|
|
|
+
|
|
|
+ /**
|
|
|
+ This defines the driver flags related to CUI Hot key.\n
|
|
|
+ Bits [7:3] - Reserved
|
|
|
+ Bit 2 = Display Subsystem Enable/Disable
|
|
|
+ = 0, Enable (default Value)
|
|
|
+ = 1, Disable
|
|
|
+ Bit 1 = Embedded Platform
|
|
|
+ = 0, False
|
|
|
+ = 1, True
|
|
|
+ Bit 0 = Define CUI HotK Displays Statically
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ **/
|
|
|
+ UINT8 bmp_Display_Detect_CUIHotK;
|
|
|
+
|
|
|
+ UINT16 bmp_Legacy_CRT_Max_X; ///< Obsolete field: Defines the legacy CRT X resolution for driver boot mode.
|
|
|
+ UINT16 bmp_Legacy_CRT_Max_Y; ///< Obsolete field: Defines the legacy CRT Y resolution for driver boot mode.
|
|
|
+ UINT8 bmp_Legacy_CRT_Max_RR; ///< Obsolete field: Defines the legacy CRT refresh rate for driver boot mode.
|
|
|
+
|
|
|
+ /**
|
|
|
+ This field defines the extended driver bits 2.\n
|
|
|
+ Bits [7:1] - Reserved
|
|
|
+ Bit 0 = Enable Internal Source Termination for HDMI
|
|
|
+ = 0, External Termination
|
|
|
+ = 1, Internal Termination
|
|
|
+ **/
|
|
|
+ UINT8 bmp_Ext2_Driver_Bits;
|
|
|
+
|
|
|
+ UINT8 bmp_VBT_Customization_Version; ///< Defines the customized VBT version number.
|
|
|
+
|
|
|
+ /**
|
|
|
+ This field defines all the driver feature flags.\n
|
|
|
+ Bit 15 = PC Features Field's Validity
|
|
|
+ = 0, Invalid
|
|
|
+ = 1, Valid
|
|
|
+ Bit 14 = Hpd_wake - HPD events are routed to display driver when system is in S0ix/DC9
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 13 = Assertive Display Technology (ADT)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 12 = Dynamic Media Refresh Rate Switching (DMRRS)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 11 = Dynamic Frames Per Second (DFPS)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 10 = Intermediate Pixel Storage (IPS)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 9 = Panel Self Refresh (PSR)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 8 = Intel Turbo Boost Technology
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 7 = Graphics Power Modulation Technology (GPMT)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 6 = Graphics Render Standby (RS)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 5 = Intel Display Refresh Rate Switching (DRRS)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 4 = Intel Automatic Display Brightness (ADB)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 3 = DxgkDDI Backlight Control (DxgkDdiBLC)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 2 = Intel Display Power Saving Technology (DPST)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 1 = Intel Smart 2D Display Technology (S2DDT)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 0 = Intel Rapid Memory Power Management (RMPM)
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ **/
|
|
|
+ UINT16 bmp_Driver_Feature_Flags;
|
|
|
+} BLOCK12_DRIVER_FEATURES;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 13 (Driver Persistence Options)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 13
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Driver Persistence options block.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the various persistence options.\n
|
|
|
+ Bits [15:10] - Reserved
|
|
|
+ Bit 9 = Docking Persistence Algorithm
|
|
|
+ = 0, OS Default
|
|
|
+ = 1, Driver Default
|
|
|
+ Bit 8 = DVO Hot Plug Persistence on Mode
|
|
|
+ Bit 7 = EDID Persistence on Mode
|
|
|
+ Bit 6 = Hot Key Persistence on Mode
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 5 = Hot Key Persistence on RestorePipe
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 4 = Hot Key Persistence on RefreshRate
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 3 = Hot Key Persistence on MDS/Twin
|
|
|
+ = 0, No
|
|
|
+ = 1, Yes
|
|
|
+ Bit 2 = Power Management Persistence Algorithm
|
|
|
+ = 0, OS Default
|
|
|
+ = 1, Driver Default
|
|
|
+ Bit 1 = Lid Switch Persistence Algorithm
|
|
|
+ = 0, OS Default
|
|
|
+ = 1, Driver Default
|
|
|
+ Bit 0 = Hot Key Persistence Algorithm
|
|
|
+ = 0, OS Default
|
|
|
+ = 1, Driver Default
|
|
|
+ **/
|
|
|
+ UINT16 PersistenceAlgorithm;
|
|
|
+
|
|
|
+ UINT8 PersistMaxconfig; ///< Maximum mode persistence configurations (10-200)
|
|
|
+} BLOCK13_DRIVER_PERSISTENCE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 17 (SV Bits)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defnies the unique Block ID : 17
|
|
|
+ UINT16 BlockSize; ///< Defines the size of SV Bits block.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Bits [7:4] = Reserved
|
|
|
+ Bit3 = Allow VBlank/VblankScanline timeout hang
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit2 = Special GMBus support
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit1 = Skip program pipe timings when set VGA modes
|
|
|
+ = 0, Setmode skip DVO Update
|
|
|
+ = 1, Setmode updates DVO
|
|
|
+ Bit0 = Disable VGA fast arbiter
|
|
|
+ = 0, Enabled
|
|
|
+ = 1, Disabled
|
|
|
+ **/
|
|
|
+ UINT8 SvBits1;
|
|
|
+ UINT8 SvBits2; ///< Reserved for future use.
|
|
|
+ UINT8 SvBits3; ///< Reserved for future use.
|
|
|
+ UINT8 SvBits4; ///< Reserved for future use.
|
|
|
+ UINT8 SvBits5; ///< Reserved for future use.
|
|
|
+ UINT8 SvBits6; ///< Reserved for future use.
|
|
|
+ UINT8 SvBits7; ///< Reserved for future use.
|
|
|
+ UINT8 SvBits8; ///< Reserved for future use.
|
|
|
+} BLOCK17_SV_BITS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 18 (Driver Rotation)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 18
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Driver Rotation block.
|
|
|
+ UINT8 RotationFeatureSupport; ///< Rotation feature support field used by driver.
|
|
|
+ UINT8 Reserved1; ///< Reserved for future use.
|
|
|
+ UINT16 Reserved2; ///< Reserved for future use.
|
|
|
+ UINT32 Reserved3; ///< Reserved for future use.
|
|
|
+ UINT32 Reserved4; ///< Reserved for future use.
|
|
|
+} BLOCK18_DRIVER_ROTATION;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines an entry of OEM mode table.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ Mode Flags:
|
|
|
+ Bits[7:3] = Reserved
|
|
|
+ Bit 2 = Enable/disable this OEM mode in GOP driver.
|
|
|
+ Bit 1 = Enable/disable this mode in Driver
|
|
|
+ Bit 0 = Enable/disable this mode in VBIOS
|
|
|
+ **/
|
|
|
+ UINT8 ModeFlags;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Display Device Flags:
|
|
|
+ Bit 7 = LFP2
|
|
|
+ Bit 6 = EFP2
|
|
|
+ Bit 5 = EFP3
|
|
|
+ Bit 4 = EFP4
|
|
|
+ Bit 3 = LFP
|
|
|
+ Bit 2 = EFP
|
|
|
+ Bit 1 = Rsvd
|
|
|
+ Bit 0 = Rsvd
|
|
|
+ **/
|
|
|
+ UINT8 DisplayFlags;
|
|
|
+ UINT16 XRes; ///< Defines the X resolution of the mode.
|
|
|
+ UINT16 YRes; ///< Defines the Y resolution of the mode.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the bits per pixel of the mode.
|
|
|
+ Bit 7:3 = Reserved
|
|
|
+ Bit 2 = 32 BPP
|
|
|
+ Bit 1 = 16 BPP
|
|
|
+ Bit 0 = 8 BPP
|
|
|
+ **/
|
|
|
+ UINT8 Bpp;
|
|
|
+ UINT8 RRate; ///< Defines the refresh rate of the mode.
|
|
|
+ DTD_STRUCTURE Dtd; ///< Defines the 18 byte timing config for the mode.
|
|
|
+} OEM_MODE_ENTRY;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 20 (OEM Mode Customization Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique block ID : 20
|
|
|
+ UINT16 BlockSize; ///< Defines the size of OEM customization block.
|
|
|
+ UINT8 NumOfEntry; ///< Defines the number of entries in OEM Mode table.
|
|
|
+ UINT8 EntrySize; ///< Defines the size of one entry of OEM Mode table.
|
|
|
+ OEM_MODE_ENTRY OemModeTable[6]; ///< Array defining the OEM mode table.
|
|
|
+} BLOCK20_OEM_CUSTOMIZATION;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 26 (TV options)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 26
|
|
|
+ UINT16 BlockSize; ///< Defines the size of TV Options block.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the TV options:
|
|
|
+ Bit 15 = D-Conector Support
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 14 = Add 1776x1000 when 1080i is selected and add 1184x666 when 720p is selected
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 13:12 Underscan/overscan for HDTV via DVI
|
|
|
+ = 00b, Enable Underscan and Overscan modes (Default)
|
|
|
+ = 01b, Enable only overscan modes
|
|
|
+ = 10b, Enable only underscan modes
|
|
|
+ Bits 11:2 = Reserved
|
|
|
+ Bit 1:0 = Underscan/overscan for HDTV via Component (YPrPb)
|
|
|
+ = 00b, Enable Underscan and Overscan modes (Default)
|
|
|
+ = 01b, Enable only overscan modes
|
|
|
+ = 10b, Enable only underscan modes
|
|
|
+ **/
|
|
|
+ UINT16 bmp_TV_Options_1;
|
|
|
+} BLOCK26_TV_OPTIONS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the eDP panel power sequencing parameters.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 T3; ///< Panel Power-Up Delay.
|
|
|
+ UINT16 T8; ///< Panel Power-On to backlight Enable Delay.
|
|
|
+ UINT16 T9; ///< Backlight-Off to Power-Down Delay.
|
|
|
+ UINT16 T10; ///< Power-Down Delay.
|
|
|
+ UINT16 T12; ///< Power Cycle Delay.
|
|
|
+} EDP_PWR_SEQ;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the PWM<-->Backlight delays for a single eDP panel.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 PwmOnToBacklightEnableDelay; ///< PWM on to backight enable delay.
|
|
|
+ UINT16 BacklightDisableToPwmOffDelay; ///< Backlight disable to PWM off delay.
|
|
|
+} EDP_PWM_BACKLIGHT_DELAYS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines FLT parameters for a single eDP panel.
|
|
|
+ Bits[15:12] : VSwing level
|
|
|
+ 0 : 0.4V (default)
|
|
|
+ 1 : 0.6V
|
|
|
+ 2 : 0.8V
|
|
|
+ 3 : 1.2V
|
|
|
+ Others : Reserved
|
|
|
+ Bits[11:8] : Pre-emphasis level
|
|
|
+ 0 : no pre-emphasis (default)
|
|
|
+ 1 : 3.5dB
|
|
|
+ 2 : 6dB
|
|
|
+ 3 : 9.5dB
|
|
|
+ Others : Reserved
|
|
|
+ Bits[7:4] : Lane count (port width)
|
|
|
+ 0 : x1 mode (default)
|
|
|
+ 1 : x2 mode
|
|
|
+ 2 : Reserved
|
|
|
+ 3 : x4 mode
|
|
|
+ Others : Reserved
|
|
|
+ Bits[3:0] : data rate
|
|
|
+ 0 : 1.62 Gbps
|
|
|
+ 1 : 2.7 Gbps
|
|
|
+ 2 : 5.4 Gbps
|
|
|
+ Others : Reserved
|
|
|
+**/
|
|
|
+typedef union {
|
|
|
+ UINT16 Value;
|
|
|
+ struct {
|
|
|
+ UINT16 DataRate:4;
|
|
|
+ UINT16 LaneCount:4;
|
|
|
+ UINT16 PreEmphasisLevel:4;
|
|
|
+ UINT16 VSwingLevel:4;
|
|
|
+ } Bits;
|
|
|
+} EDP_FAST_LINK_TRAINING_PARAMS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines Full link training parameters for a single eDP panel.
|
|
|
+ Bits[7:4] : VSwing level
|
|
|
+ 0 : 0.4V (default)
|
|
|
+ 1 : 0.6V
|
|
|
+ 2 : 0.8V
|
|
|
+ 3 : 1.2V
|
|
|
+ Others : Reserved
|
|
|
+ Bits[3:0] : Pre-emphasis level
|
|
|
+ 0 : no pre-emphasis (default)
|
|
|
+ 1 : 3.5dB
|
|
|
+ 2 : 6dB
|
|
|
+ 3 : 9.5dB
|
|
|
+ Others : Reserved
|
|
|
+**/
|
|
|
+typedef union {
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 PreEmphasisLevel:4;
|
|
|
+ UINT8 VSwingLevel:4;
|
|
|
+ } Bits;
|
|
|
+} EDP_FULL_LINK_TRAINING_PARAMS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Apical Parameters for a single eDP panel.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT32 PanelOui; ///< Apical IP specific field for Panel OUI
|
|
|
+ UINT32 DPCDBaseAddress; ///< Apical IP specific field for DPCD Base address
|
|
|
+ UINT32 DPCDIrdidixControl0; ///< Apical IP specific field for DPCD Idridix Control 0
|
|
|
+ UINT32 DPCDOptionSelect; ///< Apical IP specific field for DPCD option select
|
|
|
+ UINT32 DPCDBacklight; ///< Apical IP specific field for DPCD backlight
|
|
|
+ UINT32 AmbientLight; ///< Apical IP specific field for Ambient light
|
|
|
+ UINT32 BacklightScale; ///< Apical IP specific field for backlight scale
|
|
|
+} EDP_APICAL_PARAMS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 27 (eDP Display Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 27
|
|
|
+ UINT16 BlockSize; ///< Defines the size of eDP display VBT block.
|
|
|
+
|
|
|
+ EDP_PWR_SEQ eDP_PWR_SEQ[16]; ///< Array defining the panel power sequencing for all 16 eDP panels.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the panel color depth in bits per pixel. 2 Bits for each Panel.
|
|
|
+ Bits[1:0] Panel color depth for Panel #1
|
|
|
+ = 00, 18bpp
|
|
|
+ = 01, 24bpp
|
|
|
+ = 10, 30bpp
|
|
|
+ = 11, 36bpp
|
|
|
+ **/
|
|
|
+ UINT32 eDP_Panel_Color_Depth;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array containing the FLT parameters of 16 eDP panels.
|
|
|
+ **/
|
|
|
+ EDP_FAST_LINK_TRAINING_PARAMS eDP_Fast_Link_Training_Params[16];
|
|
|
+
|
|
|
+ /**
|
|
|
+ This field defines the eDP sDRRS MSA Timing Delay for all 16 eDP panels. 2 Bits for Each Panel.
|
|
|
+ Bits[1:0] for Panel #1
|
|
|
+ = 00, Line 1
|
|
|
+ = 01, Line 2
|
|
|
+ = 10, Line 3
|
|
|
+ = 11, Line 4
|
|
|
+ **/
|
|
|
+ UINT32 eDP_sDRRS_MSA_Delay;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the S3D feature enable/disable for all 16 eDP panels. 1 Bit for Each Panel.
|
|
|
+ Bits[0] for Panel #1
|
|
|
+ = 0, S3D disabled for this panel
|
|
|
+ = 1, S3D enabled for this panel
|
|
|
+ **/
|
|
|
+ UINT16 eDP_S3D_Feature;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the T3 optimization enable/disable for all 16 panels. 1 Bit for each panel.
|
|
|
+ Bits[0] = Panel #1
|
|
|
+ = 0, T3 optimization disabled for this panel
|
|
|
+ = 1, T3 optimization enabled for this panel
|
|
|
+ **/
|
|
|
+ UINT16 eDP_T3_Optmization;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the Edp vswing and pre-emphasis for all 16 panels. 4 Bits for Each Panel
|
|
|
+ Bits[3:0] = Panel #1
|
|
|
+ = 0, Use table 1 for this panel.
|
|
|
+ = 1, Use table 2 for this panel.
|
|
|
+ **/
|
|
|
+ UINT64 VswingPreEmphasisTableNum;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the Edp fast link training support on all 16 panels. 1 Bit for Each Panel
|
|
|
+ Bits[0] = Panel #1
|
|
|
+ = 0, FastLinkTraining feature is disabled for this panel
|
|
|
+ = 1, FastLinkTraining feature is enabled for this panel
|
|
|
+ **/
|
|
|
+ UINT16 EdpFastLinkTrainingSupportOnPanel;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines whether the Set power state at DPCD 600h is to be done in eDP enable/disable sequence.
|
|
|
+ Bits[0] = Panel #1
|
|
|
+ = 0, Set power state at DPCD 600h feature is disabled for this panel
|
|
|
+ = 1, Set power state at DPCD 600h feature is enabled for this panel
|
|
|
+ **/
|
|
|
+ UINT16 SetPowerStateAtDPCD600h; //This is not used currently
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array defining the PWM <--> Backlight related delays for 16 panels.
|
|
|
+ **/
|
|
|
+ EDP_PWM_BACKLIGHT_DELAYS eDP_Pwm_BackLight_Delays[16];
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the Edp full link training support on all 16 panels. 1 Bit for Each Panel.
|
|
|
+ \verbatim
|
|
|
+ Bits[0] : Panel #1
|
|
|
+ 0 : Initial vswing and pre-emphasis levels are not provided for Full link training
|
|
|
+ 1 : Initial vswing and pre-emphasis levels are provided for Full link training
|
|
|
+ Bits 1 to 15 are for panel # 2 to 16.
|
|
|
+ \endverbatim
|
|
|
+ **/
|
|
|
+ UINT16 InitialFullLinkTrainingParamsProvidedInVbt;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array containing the initial Vswing and Pre-emphasis parameters for Full link training.
|
|
|
+ **/
|
|
|
+ EDP_FULL_LINK_TRAINING_PARAMS eDP_Full_Link_Training_Params[16];
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the Edp Apical assertive display IP support on all 16 panels. 1 Bit for Each Panel.
|
|
|
+ Bit 0 : Panel #1
|
|
|
+ 0 : Apical assertive display IP is disabled for this panel.
|
|
|
+ 1 : Apical assertive display IP is enabled for this panel.
|
|
|
+ Bits 1 to 15 are for panel # 2 to 16.
|
|
|
+ **/
|
|
|
+ UINT16 IsApicalAssertiveDisplayIpEnable;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array containing the Apical parameters for all 16 panels
|
|
|
+ **/
|
|
|
+ EDP_APICAL_PARAMS eDP_Apcial_Params[16];
|
|
|
+} BLOCK27_EDP_FEATURES;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 28 (Edidless EFP support DTD timings)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 28
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Edidless EFP support block.
|
|
|
+ DTD_STRUCTURE Edidless_EFP_DTD_Struc[4]; ///< Array defining the DTD timing for 3 EFP devices.
|
|
|
+} BLOCK28_EDIDLESS_EFP;
|
|
|
+
|
|
|
+/**
|
|
|
+This defines the structure of toggle list entry.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ Defines the display device selection for toggling
|
|
|
+ Bit 15 = EFP4.3 (Reserved for WHL)
|
|
|
+ Bit 14 = EFP3.3
|
|
|
+ Bit 13 = EFP2.3
|
|
|
+ Bit 12 = EFP1.3
|
|
|
+ Bit 11 = EFP4.2 (Reserved for WHL)
|
|
|
+ Bit 10 = EFP3.2
|
|
|
+ Bit 9 = EFP2.2
|
|
|
+ Bit 8 = EFP1.2
|
|
|
+ Bit 7 = LFP2
|
|
|
+ Bit 6 = EFP2
|
|
|
+ Bit 5 = EFP3
|
|
|
+ Bit 4 = EFP4
|
|
|
+ Bit 3 = LFP
|
|
|
+ Bit 2 = EFP
|
|
|
+ Bit 1 = TV
|
|
|
+ Bit 0 = CRT
|
|
|
+ **/
|
|
|
+ UINT16 DisplayDevice;
|
|
|
+} CNL_TOGGLE_LIST_ENTRY;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 31 (Toggle Lists for Cannonlake)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 31
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Toggle List Block.
|
|
|
+ UINT16 NumOfEntry1; ///< Defines the number of entries in toggle list 1.
|
|
|
+ UINT8 EntrySize1; ///< Defines the size of toggle list entry present in list 1.
|
|
|
+ CNL_TOGGLE_LIST_ENTRY ToggleList1Entry[16]; ///< Array defining the toggle list 1.
|
|
|
+ UINT16 NumOfEntry2; ///< Defines the number of entries in toggle list 2.
|
|
|
+ UINT8 EntrySize2; ///< Defines the size of toggle list entry present in list 2.
|
|
|
+ CNL_TOGGLE_LIST_ENTRY ToggleList2Entry[8]; ///< Array defining the toggle list 2.
|
|
|
+ UINT16 NumOfEntry3; ///< Defines the number of entries in toggle list 3.
|
|
|
+ UINT8 EntrySize3; ///< Defines the size of toggle list entry present in list 3.
|
|
|
+ CNL_TOGGLE_LIST_ENTRY ToggleList3Entry[8]; ///< Array defining the toggle list 3.
|
|
|
+ UINT16 NumOfEntry4; ///< Defines the number of entries in toggle list 4.
|
|
|
+ UINT8 EntrySize4; ///< Defines the size of toggle list entry present in list 4.
|
|
|
+ CNL_TOGGLE_LIST_ENTRY ToggleList4Entry[8]; ///< Array defining the toggle list 4.
|
|
|
+} BLOCK31_TOGGLE_LIST;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Display device removal configuration entry.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ Defines the display device configuration to be removed.
|
|
|
+ Bit 15 = EFP4.3 (Reserved for WHL)
|
|
|
+ Bit 14 = EFP3.3
|
|
|
+ Bit 13 = EFP2.3
|
|
|
+ Bit 12 = EFP1.3
|
|
|
+ Bit 11 = EFP4.2 (Reserved for WHL)
|
|
|
+ Bit 10 = EFP3.2
|
|
|
+ Bit 9 = EFP2.2
|
|
|
+ Bit 8 = EFP1.2
|
|
|
+ Bit 7 = LFP2
|
|
|
+ Bit 6 = EFP2
|
|
|
+ Bit 5 = EFP3
|
|
|
+ Bit 4 = EFP4
|
|
|
+ Bit 3 = LFP
|
|
|
+ Bit 2 = EFP
|
|
|
+ Bit 1 = TV
|
|
|
+ Bit 0 = CRT
|
|
|
+ **/
|
|
|
+ UINT16 DisplayDeviceConfiguration;
|
|
|
+} CNL_DISPLAY_CONFIGURATION_ENTRY;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 32 (Display removal configuration Block)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID = 32
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Display removal configuration block.
|
|
|
+ UINT8 NumOfEntry; ///< Defines the number of entries in display removal configuraion table.
|
|
|
+ UINT8 EntrySize; ///< Defines the size of 1 entry in display removal configuration table.
|
|
|
+ CNL_DISPLAY_CONFIGURATION_ENTRY RemoveDisplayConfiguration[15]; ///< Array defining the display removal configuration table.
|
|
|
+}BLOCK32_DISPLAY_CONFIGURATION_REMOVAL;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the Local Flat panel basic details such as resolution and the various registers.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 XRes; ///< X resolution of the panel.
|
|
|
+ UINT16 YRes; ///< Y resolution of the panel.
|
|
|
+ UINT32 LVDSDigDisReg; ///< MMIO offset of LFP digital display port register.
|
|
|
+ UINT32 LVDSDigDisVal; ///< Value of LFP digital display port register.
|
|
|
+ UINT32 OnSeqDelayReg; ///< MMIO offset of Panel power on sequencing delay register.
|
|
|
+ UINT32 OnSeqDelayVal; ///< Value of Panel power on sequencing delay register.
|
|
|
+ UINT32 OffSeqDelayReg; ///< MMIO offset of Panel power off sequencing delay register.
|
|
|
+ UINT32 OffSeqDelayVal; ///< Value of Panel power off sequencing delay register.
|
|
|
+ UINT32 CycleDelay_RefDivReg; ///< MMIO offset of Panel power cycle delay and reference divider register.
|
|
|
+ UINT32 CycleDelay_RefDivVal; ///< Value of Panel power cycle delay and reference divider register.
|
|
|
+ UINT16 Terminate; ///< Special value 0xFFFF indicating end of data.
|
|
|
+} FP_DATA;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure consisting of all details for a single Local Flat panel.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ FP_DATA FP_Data; ///< Instance of ::FP_DATA structure.
|
|
|
+ DTD_STRUCTURE DTD_Data; ///< Instance of ::DTD_STRUCTURE which contains the DTD timings for the panel.
|
|
|
+ PID_DATA PID_Data; ///< Instance of ::PID_DATA structure which contains panel related information used by driver.
|
|
|
+} LVDS_FP_TABLE;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines all the details regarding Backlight control for LFP.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ Defines the backlight features for the panel.
|
|
|
+ Bits 7:6 = GMBus Speed:
|
|
|
+ = 00, 100 KHz
|
|
|
+ = 01, 50 KHz
|
|
|
+ = 10, 400 KHz
|
|
|
+ = 11, 1 MHz
|
|
|
+ Bits 5:3 = Inverter GPIO Pins
|
|
|
+ = 0, None
|
|
|
+ = 1, I2C GPIO pins
|
|
|
+ = 2, Analog CRT DDC pins
|
|
|
+ = 3, DVI/LVDS DDC GPIO pins
|
|
|
+ = 5, sDVO I2C GPIO pins
|
|
|
+ Bit 2 = Inverter Polarity (i2c & PWM)
|
|
|
+ = 0, Normal (0 = Minimum brightness)
|
|
|
+ = 1, Inverted (0 = Maximum brightness)
|
|
|
+ Bits 1:0 = BLC Inverter Type
|
|
|
+ = 00, None/External
|
|
|
+ = 01, i2c
|
|
|
+ = 10, PWM
|
|
|
+ = 11, Reserved
|
|
|
+ **/
|
|
|
+ UINT8 BLC_Ftr;
|
|
|
+
|
|
|
+ UINT16 PWM_Freq; ///< PWM inverter frequency in KHz
|
|
|
+ UINT8 Min_Brightness; ///< Minimum brightness in the range 0-255
|
|
|
+ UINT8 I2C_Add; ///< I2C Inverter Slave Address
|
|
|
+ UINT8 I2C_Command; ///< I2C Inverter command code
|
|
|
+} BLC;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 40 (LFP Features)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 40
|
|
|
+ UINT16 BlockSize; ///< Defines the size of LFP Features block.
|
|
|
+
|
|
|
+ UINT8 bmp_Panel_type; ///< Defines the panel type of LFP.
|
|
|
+ UINT8 Skip1; ///< Obsoleted.
|
|
|
+
|
|
|
+ /**
|
|
|
+ Capabilities byte:
|
|
|
+ Bit 15:7 = SW Workaround bits
|
|
|
+ Bit 6 = Panel EDID support
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 5 = Pixel dithering
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ Bit 4 = Panel Fitting ratio calc.
|
|
|
+ = 0 - Manual
|
|
|
+ = 1 - Automatic
|
|
|
+ Bit 3 = Panel Fitting Graphics mode
|
|
|
+ = 0, Bilinear
|
|
|
+ = 1, Enhanced
|
|
|
+ Bit 2 = Panel Fitting Text mode
|
|
|
+ = 0, Bilinear
|
|
|
+ = 1, Enhanced
|
|
|
+ Bit 1:0 = Panel Fitting Support
|
|
|
+ = 00, No panel fitting
|
|
|
+ = 01, Text panel fitting
|
|
|
+ = 10, GFX panel fitting
|
|
|
+ = 11, Text+GFX panel fitting
|
|
|
+ **/
|
|
|
+ UINT16 bmp_LVDS_Capabilities;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the channel type of LFP. 2 Bits for each Panel.
|
|
|
+ Bits [0:1] for Panel #1
|
|
|
+ = 00, Automatic (algorithm)
|
|
|
+ = 01, Single Channel
|
|
|
+ = 10, Dual Channel
|
|
|
+ = 11, Reserved
|
|
|
+ **/
|
|
|
+ UINT32 INT_LVDS_Panel_Channel_Bits;
|
|
|
+
|
|
|
+ UINT16 Enable_SSC_Bit; ///< LVDS Spread Spectrum Clock
|
|
|
+ UINT16 SSC_Freq_Bit; ///< LVDS Spread Spectrum Clock Frequency
|
|
|
+ UINT16 Disable_SSC_DDT_Bit; ///< Disable SSC in Dual Display Twin
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the panel color depth. 1 Bits for each Panel.
|
|
|
+ Bits[0] for Panel #01
|
|
|
+ = 0, 18bpp
|
|
|
+ = 1, 24bpp
|
|
|
+ **/
|
|
|
+ UINT16 INT_Panel_Color_Depth;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the Panel type. 2 Bits for each Panel.
|
|
|
+ Bits [0:1] for Panel #1
|
|
|
+ = 00, Static DRRS
|
|
|
+ = 01, D2PO
|
|
|
+ = 10, Seamless
|
|
|
+ = 11, Reserved
|
|
|
+ **/
|
|
|
+ UINT32 DPS_Panel_Type_Bits;
|
|
|
+
|
|
|
+ /**
|
|
|
+ Defines the type of backlight control for the LFP. 2 bits for each Panel.
|
|
|
+ Bits [0:1] for Panel #1
|
|
|
+ = 00, Default
|
|
|
+ = 01, CCFL backlight
|
|
|
+ = 10, LED backlight
|
|
|
+ = 11, Reserved
|
|
|
+ **/
|
|
|
+ UINT32 BLT_Control_Type_Bits;
|
|
|
+ /**
|
|
|
+ Defines the LFP power enable flag in S0 state for all 16 panels. 1 Bit for Each Panel.
|
|
|
+ Bits[0] : Panel #1
|
|
|
+ 0 : Do not keep LCDVCC on during S0 state.
|
|
|
+ 1 : Keep LCDVCC on during S0 state.
|
|
|
+ Bits 1 to 15 are for panel # 2 to 16.
|
|
|
+ **/
|
|
|
+ UINT16 LcdvccOnDuringS0State;
|
|
|
+} BLOCK40_LVDS_FEATURES;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the second type of BMP table pointers.
|
|
|
+ This is used to store pointers to LFP Flat panel data, DTD and PID information.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT16 Offset; ///< Offset of the table.
|
|
|
+ UINT8 Size; ///< Size of the table.
|
|
|
+} BMP_TABLE_TYPE2_PTR;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines a set of 3 pointers for LFP display.
|
|
|
+ These pointers point to FP data, DTD and PID information respectively.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ BMP_TABLE_TYPE2_PTR FpTablePtr; ///< Pointer to FP Data of the LFP panel.
|
|
|
+ BMP_TABLE_TYPE2_PTR DtdTablePtr; ///< Pointer to DTD of the LFP panel.
|
|
|
+ BMP_TABLE_TYPE2_PTR PidTablePtr; ///< Pointer to the PID data of the LFP panel.
|
|
|
+} LFP_TABLE_POINTERS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 41 (LFP Table Pointers for FPDATA, DTD and PID)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID:41
|
|
|
+ UINT16 BlockSize; ///< Defines the size of LFP Table Pointer Block.
|
|
|
+ UINT8 NumOfEntries; ///< Defines the number of entries in the Table.
|
|
|
+ LFP_TABLE_POINTERS LfpTablePointers[16]; ///< Array of ::LFP_TABLE_POINTERS for all 16 panels.
|
|
|
+ UINT16 LfpPanelNameTableOffset; ///< Offset of LFP panel names table.
|
|
|
+ UINT8 LfpPanelNameLength; ///< Length of a single LFP panel's name.
|
|
|
+} BLOCK41_LFP_TABLE_POINTERS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 42 (Complete LFP Panel Information)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique block ID : 42
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Complete LFP panel information for all 16 panels.
|
|
|
+ LVDS_FP_TABLE LVDS_FP_Table[16]; ///< Array of ::LVDS_FP_TABLE containing data of 16 panels.
|
|
|
+ UINT8 LFP_PANEL_NAMES[16][13];///< Array defining the panel names for all 16 panels.
|
|
|
+
|
|
|
+ /**
|
|
|
+ 1 Bit for Each Panel
|
|
|
+ Bit0 = Scaling feature for panel 1.
|
|
|
+ = 0, Scaling feature is disabled for this panel.
|
|
|
+ = 1, Scaling feature is enabled for this panel.
|
|
|
+ **/
|
|
|
+ UINT16 EnableScaling; //This is not used currently
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array defining DRRS minimum refresh rate. 1 Byte for Each Panel.
|
|
|
+ **/
|
|
|
+ UINT8 Seamless_DRRS_Min_RR[16];
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array defining Pixel Overlap Count. 1 Byte for Each Panel.
|
|
|
+ **/
|
|
|
+ UINT8 PixelOverlapCount[16];
|
|
|
+} BLOCK42_LVDS_PANEL_INFO;
|
|
|
+
|
|
|
+typedef union {
|
|
|
+ /**
|
|
|
+ Backlight control parameters.\n
|
|
|
+ Bits 7:4 : PWM Controller Selection
|
|
|
+ 0 : Controller 0
|
|
|
+ 1 : Controller 1
|
|
|
+ 2 : Controller 2
|
|
|
+ 3 : Controller 3
|
|
|
+ Others : Reserved.
|
|
|
+ Bits 3:0 : PWM Source Selection
|
|
|
+ 0 : PMIC PWM
|
|
|
+ 1 : LPSS PWM
|
|
|
+ 2 : DISPLAY PWM
|
|
|
+ 3 : CABC PWM
|
|
|
+ Others : Reserved.
|
|
|
+ **/
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 PwmSourceSelection:4;
|
|
|
+ UINT8 PwmControllerSelection:4;
|
|
|
+ } Bits;
|
|
|
+} BKLT_CTRL_PARAMS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 43 (LFP Brightness Control)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 43
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Brightness control block.
|
|
|
+
|
|
|
+ UINT8 SIZE_BLCStruc; ///< Defines the size of single entry in Backlight control table for LFP.
|
|
|
+ BLC BLC_Struct[16]; ///< Array defining the backlight control for 16 LFP panels.
|
|
|
+ UINT8 Post_Brightness[16]; ///< Array defining the initial brightness for all 16 panels.
|
|
|
+ BKLT_CTRL_PARAMS Brightness_Control[16]; ///< Array defining the brightness control method for all 16 panels
|
|
|
+} BLOCK43_LVDS_BLC;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 44 (LFP Power Conservation Features)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique block ID : 44
|
|
|
+ UINT16 BlockSize; ///< Defines the size of LFP Power Conservation Features block.
|
|
|
+ union {
|
|
|
+ /**
|
|
|
+ Bit[7] : ALS Enable/Disable
|
|
|
+ 0 - Disable
|
|
|
+ 1 - Enable
|
|
|
+ Bit[6] : Display LACE support
|
|
|
+ 0 - Not supported
|
|
|
+ 1 - Supported
|
|
|
+ Bit[5] : Default Display LACE enabled status
|
|
|
+ 0 - Disabled
|
|
|
+ 1 - Enabled
|
|
|
+ Bit[4] : Reserved
|
|
|
+ Bit[3:1] : Power conservation preference level.
|
|
|
+ 4 is default in a range of 1 to 6.
|
|
|
+ Bit[0] : Reserved
|
|
|
+ **/
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 Reserved:1;
|
|
|
+ UINT8 PwrConservation:3;
|
|
|
+ UINT8 Reserved_1:1;
|
|
|
+ UINT8 DefalutDisplayLaceEnable:1;
|
|
|
+ UINT8 DisplayLaceSupport:1;
|
|
|
+ UINT8 AlsEnable:1;
|
|
|
+ } Bits;
|
|
|
+ } LfpFeatureBits;
|
|
|
+
|
|
|
+ UINT16 AlsData[10]; ///< Defines the main ALS data.
|
|
|
+
|
|
|
+ union {
|
|
|
+ /**
|
|
|
+ Bit[7:3] : Reserved
|
|
|
+ Bit[2:0] : Aggressiveness Level Profile.
|
|
|
+ 000 - Minimum
|
|
|
+ 001 - Moderate
|
|
|
+ 010 - High
|
|
|
+ **/
|
|
|
+ UINT8 Value;
|
|
|
+ struct {
|
|
|
+ UINT8 AggressionProfileLevel:3;
|
|
|
+ UINT8 Reserved:5;
|
|
|
+ } Bits;
|
|
|
+ } LaceAggressivenessProfile; ///< Defines the LACE Aggressiveness Profile
|
|
|
+} BLOCK44_ALS;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Black Frame Insertion table entry.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ BFI Features\n
|
|
|
+ Bit[7-2] : Reserved\n
|
|
|
+ Bit[1] : Enable Brightness control in CUI\n
|
|
|
+ Bit[0] : Enable BFI in driver
|
|
|
+ **/
|
|
|
+ UINT8 EnableBits;
|
|
|
+ UINT8 BrightnessNonBFI; ///< Brightness percentage in non BFI mode
|
|
|
+} BFI;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 45 (Black Frame insertion Support for LFP)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 45
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Black frame insertion support block.
|
|
|
+ UINT8 SIZE_BFIStruc; ///< Defines the size of 1 entry of black frame data.
|
|
|
+ BFI BFI_Struct[16]; ///< Array defining the data of black frame insertion for all 16 panels.
|
|
|
+} BLOCK45_BFI_SUPPORT;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the chromaticity information for a single LFP panel.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ Defines the chromaticity feature enable bits
|
|
|
+ Bits 7:2 = Reserved
|
|
|
+ Bit 1 = Override EDID values for chromaticity if enabled, Instead Use VBT values
|
|
|
+ = 0, Disable, Use the EDID values
|
|
|
+ = 1, Enable, Use the values from the VBT
|
|
|
+ Bit 0 = Enable chromaticity feature. EDID values will be used when this feature is enabled.
|
|
|
+ = 0, Disable
|
|
|
+ = 1, Enable
|
|
|
+ **/
|
|
|
+ UINT8 EnableBits;
|
|
|
+
|
|
|
+ UINT8 Red_Green_1; ///< Red/green chormaticity coordinates at EDID offset 19h
|
|
|
+ UINT8 Blue_White_1; ///< Blue/white chromatiity coordinates at EDID offset 1Ah
|
|
|
+ UINT8 Red_X1; ///< Red x coordinate at EDID offset 1Bh
|
|
|
+ UINT8 Red_Y1; ///< Red x coordinate at EDID offset 1Ch
|
|
|
+ UINT8 Green_X1; ///< Green x coordinate at EDID offset 1Dh
|
|
|
+ UINT8 Green_Y1; ///< Green x coordinate at EDID offset 1Eh
|
|
|
+ UINT8 Blue_X1; ///< Blue x coordinate at EDID offset 1Fh
|
|
|
+ UINT8 Blue_Y1; ///< Blue x coordinate at EDID offset 20h
|
|
|
+ UINT8 White_X1; ///< White x coordinate at EDID offset 21h
|
|
|
+ UINT8 White_Y1; ///< White x coordinate at EDID offset 22h
|
|
|
+} CHROMATICITY;
|
|
|
+
|
|
|
+/**
|
|
|
+ This structure defines the Luminance information for a single LFP panel.
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ /**
|
|
|
+ Defines the chromaticity feature enable bits
|
|
|
+ Bits 7:2 : Reserved
|
|
|
+ Bit 1 : Enable Gamma feature.
|
|
|
+ : if enabled, use gamma values from this block.
|
|
|
+ 0 : Disable
|
|
|
+ 1 : Enable
|
|
|
+ Bit 0 : Enable Luminance feature.
|
|
|
+ : if enabled, use values from this block.
|
|
|
+ 0 : Disable
|
|
|
+ 1 : Enable
|
|
|
+ **/
|
|
|
+ UINT8 EnableBits;
|
|
|
+ /**
|
|
|
+ Luminance info (refer DisplayID 2.0)
|
|
|
+ 2 byte value, encoded in IEEE 754 half-precision binary floating point format
|
|
|
+ **/
|
|
|
+ UINT16 MinLuminance; ///< Native minimum luminance
|
|
|
+ UINT16 MaxFullFrameLuminance; ///< Native maximum luminance (Full Frame)
|
|
|
+ UINT16 MaxLuminance; ///< Native Maximum Luminance (1% Rectangular Coverage)
|
|
|
+ /**
|
|
|
+ Gamma EOTF
|
|
|
+ Gamma values range from 00h through FFh which will come from VBT.
|
|
|
+ Value shall define the gamma range, from 1.00 to 3.54.
|
|
|
+ Field Value = (Gamma (value from VBT) + 100) / 100
|
|
|
+
|
|
|
+ FFh = No gamma information shall be provided
|
|
|
+ **/
|
|
|
+ UINT8 Gamma;
|
|
|
+
|
|
|
+}LUMINANCE_AND_GAMMA;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 46 (Chromaticity Support)
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ UINT8 BlockId; ///< Defines the unique Block ID : 46
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Chromaticity Block.
|
|
|
+ CHROMATICITY Chromaticity_Struct[16]; ///< Defines the chromaticity information for all 16 panels.
|
|
|
+ LUMINANCE_AND_GAMMA Luminance_Gamma_Struct[16]; ///< Defines the lumianance information for all 16 panels.
|
|
|
+} BLOCK46_CHROMATICITY_SUPPORT;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the structure of Block 51 (Fixed Mode Set)
|
|
|
+**/
|
|
|
+typedef struct{
|
|
|
+ UINT8 BlockId; ///< Defines the unique block ID : 51.
|
|
|
+ UINT16 BlockSize; ///< Defines the size of Fixed mode set feature block.
|
|
|
+ UINT8 FeatureEnable; ///< Whether the fixed mode set feature is enabled/disabled.
|
|
|
+ UINT32 XRes; ///< X resolution of the fixed mode.
|
|
|
+ UINT32 YRes; ///< Y resolution of the fixed mode.
|
|
|
+} BLOCK51_FIXED_MODE_SET;
|
|
|
+
|
|
|
+/**
|
|
|
+ This defines the Complete VBT Structure for generation purpose
|
|
|
+**/
|
|
|
+typedef struct {
|
|
|
+ VBT_HEADER VbtHeader;
|
|
|
+ VBT_BIOS_DATA_HEADER VbtBdbHeader;
|
|
|
+ BLOCK254_BMP_Structure Block254BMPStructure;
|
|
|
+ VBT_GENERAL1_INFO VbtGen1Info;
|
|
|
+ PRD_BOOT_TABLE PrdBootTable;
|
|
|
+ VBT_GENERAL2_INFO VbtGen2Info;
|
|
|
+ BLOCK03_ORIGINAL_DISPLAY_TOGGLE_LIST Block03OriginalDisplayToggleList;
|
|
|
+ BLOCK252_SBIOS_Hook Block252SbiosHook;
|
|
|
+ BLOCK06_MMIO_REG_TABLE Block06MmioRegTable;
|
|
|
+ BLOCK07_IOSWFLAG_REG_TABLE Block07IoswflagRegTable;
|
|
|
+ BLOCK08_MMIOSWFLAG_REG_TABLE Block08MmioswflagRegTable;
|
|
|
+ BLOCK09_PSR_FEATURE Block09PsrFeature;
|
|
|
+ BLOCK10_MODE_REMOVAL_TABLE Block10ModeRemovalTable;
|
|
|
+ BLOCK12_DRIVER_FEATURES Block12DriverFeatures;
|
|
|
+ BLOCK13_DRIVER_PERSISTENCE Block13DriverPersistence;
|
|
|
+ BLOCK17_SV_BITS Block17SvBits;
|
|
|
+ BLOCK18_DRIVER_ROTATION Block18DriverRotation;
|
|
|
+ BLOCK20_OEM_CUSTOMIZATION Block20OemCustomization;
|
|
|
+ BLOCK26_TV_OPTIONS Block26TVOptions;
|
|
|
+ BLOCK27_EDP_FEATURES Block27EDPFeatures;
|
|
|
+ BLOCK28_EDIDLESS_EFP Block28EdidlessEFP;
|
|
|
+ BLOCK31_TOGGLE_LIST Block31ToggleList;
|
|
|
+ BLOCK32_DISPLAY_CONFIGURATION_REMOVAL Block32DisplayConfigurationRemoval;
|
|
|
+ BLOCK40_LVDS_FEATURES Block40LVDSFeatures;
|
|
|
+ BLOCK41_LFP_TABLE_POINTERS Block41LfpTablePointers;
|
|
|
+ BLOCK42_LVDS_PANEL_INFO Block42LvdsPanelInfo;
|
|
|
+ BLOCK43_LVDS_BLC Block43LVDSBlc;
|
|
|
+ BLOCK44_ALS Block44Als;
|
|
|
+ BLOCK46_CHROMATICITY_SUPPORT Block46ChromaticitySupport;
|
|
|
+ BLOCK51_FIXED_MODE_SET Block51FixedModeSet;
|
|
|
+} VBT_TABLE_DATA;
|
|
|
+
|
|
|
+#pragma pack()
|
|
|
+
|
|
|
+/**
|
|
|
+ This function will update the VBT checksum.
|
|
|
+
|
|
|
+ @param[in out] VbtPtr - Pointer to VBT table
|
|
|
+
|
|
|
+ @retval none
|
|
|
+**/
|
|
|
+VOID
|
|
|
+UpdateVbtChecksum(
|
|
|
+ VBT_TABLE_DATA *VbtPtr
|
|
|
+);
|
|
|
+
|
|
|
+/**
|
|
|
+ This function will update the VBT.
|
|
|
+
|
|
|
+ @param[in] VbtPtr - Pointer to VBT Table
|
|
|
+
|
|
|
+ @retval none
|
|
|
+**/
|
|
|
+VOID
|
|
|
+UpdateGopVbt (
|
|
|
+ IN VBT_TABLE_DATA *VbtPtr
|
|
|
+);
|
|
|
+#endif
|
|
|
+
|