X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OptionRomPkg%2FCirrusLogic5430Dxe%2FCirrusLogic5430.h;h=3050bd8a202626447d95041af9029c32006e22fc;hp=719cf7c9cb4189cb3db2db97e5d37ea39aca8399;hb=ac1ca10416edf34b6700a31d0bc58d144e35974c;hpb=94b73c2482a415da50c5b13c42753ac6f1548c07 diff --git a/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.h b/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.h index 719cf7c9cb..3050bd8a20 100644 --- a/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.h +++ b/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430.h @@ -1,8 +1,8 @@ /** @file Cirrus Logic 5430 Controller Driver - Copyright (c) 2006, Intel Corporation - All rights reserved. This program and the accompanying materials + Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.
+ This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php @@ -25,6 +25,10 @@ #include #include #include +#include +#include +#include +#include #include #include @@ -32,8 +36,11 @@ #include #include #include +#include +#include +#include -#include +#include // // Cirrus Logic 5430 PCI Configuration Header values // @@ -48,18 +55,37 @@ #define CIRRUS_LOGIC_5430_MODE_COUNT 3 typedef struct { + UINT32 ModeNumber; UINT32 HorizontalResolution; UINT32 VerticalResolution; UINT32 ColorDepth; UINT32 RefreshRate; } CIRRUS_LOGIC_5430_MODE_DATA; +#define PIXEL_RED_SHIFT 0 +#define PIXEL_GREEN_SHIFT 3 +#define PIXEL_BLUE_SHIFT 6 + +#define PIXEL_RED_MASK (BIT7 | BIT6 | BIT5) +#define PIXEL_GREEN_MASK (BIT4 | BIT3 | BIT2) +#define PIXEL_BLUE_MASK (BIT1 | BIT0) + +#define PIXEL_TO_COLOR_BYTE(pixel, mask, shift) ((UINT8) ((pixel & mask) << shift)) +#define PIXEL_TO_RED_BYTE(pixel) PIXEL_TO_COLOR_BYTE(pixel, PIXEL_RED_MASK, PIXEL_RED_SHIFT) +#define PIXEL_TO_GREEN_BYTE(pixel) PIXEL_TO_COLOR_BYTE(pixel, PIXEL_GREEN_MASK, PIXEL_GREEN_SHIFT) +#define PIXEL_TO_BLUE_BYTE(pixel) PIXEL_TO_COLOR_BYTE(pixel, PIXEL_BLUE_MASK, PIXEL_BLUE_SHIFT) + +#define RGB_BYTES_TO_PIXEL(Red, Green, Blue) \ + (UINT8) ( (((Red) >> PIXEL_RED_SHIFT) & PIXEL_RED_MASK) | \ + (((Green) >> PIXEL_GREEN_SHIFT) & PIXEL_GREEN_MASK) | \ + (((Blue) >> PIXEL_BLUE_SHIFT) & PIXEL_BLUE_MASK) ) + #define GRAPHICS_OUTPUT_INVALIDE_MODE_NUMBER 0xffff // // Cirrus Logic 5440 Private Data Structure // -#define CIRRUS_LOGIC_5430_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('C', 'L', '5', '4') +#define CIRRUS_LOGIC_5430_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('C', 'L', '5', '4') typedef struct { UINT64 Signature; @@ -68,6 +94,10 @@ typedef struct { UINT64 OriginalPciAttributes; EFI_UGA_DRAW_PROTOCOL UgaDraw; EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput; + EFI_EDID_DISCOVERED_PROTOCOL EdidDiscovered; + EFI_EDID_ACTIVE_PROTOCOL EdidActive; + EFI_DEVICE_PATH_PROTOCOL *GopDevicePath; + EFI_DEVICE_PATH_PROTOCOL *UgaDevicePath; UINTN CurrentMode; UINTN MaxMode; CIRRUS_LOGIC_5430_MODE_DATA ModeData[CIRRUS_LOGIC_5430_MODE_COUNT]; @@ -134,14 +164,12 @@ extern EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL gCirrusLogic5430DriverSupporte EFI_STATUS CirrusLogic5430UgaDrawConstructor ( CIRRUS_LOGIC_5430_PRIVATE_DATA *Private - ) -; + ); EFI_STATUS CirrusLogic5430UgaDrawDestructor ( CIRRUS_LOGIC_5430_PRIVATE_DATA *Private - ) -; + ); // // Graphics Output Hardware abstraction internal worker functions @@ -149,14 +177,12 @@ CirrusLogic5430UgaDrawDestructor ( EFI_STATUS CirrusLogic5430GraphicsOutputConstructor ( CIRRUS_LOGIC_5430_PRIVATE_DATA *Private - ) -; + ); EFI_STATUS CirrusLogic5430GraphicsOutputDestructor ( CIRRUS_LOGIC_5430_PRIVATE_DATA *Private - ) -; + ); // @@ -178,8 +204,7 @@ CirrusLogic5430ControllerDriverSupported ( IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ) -; + ); /** TODO: Add function description @@ -197,8 +222,7 @@ CirrusLogic5430ControllerDriverStart ( IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ) -; + ); /** TODO: Add function description @@ -218,8 +242,7 @@ CirrusLogic5430ControllerDriverStop ( IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer - ) -; + ); // // EFI Component Name Functions @@ -244,7 +267,7 @@ CirrusLogic5430ControllerDriverStop ( languages specified in SupportedLanguages. The number of languages supported by a driver is up to the driver writer. Language is specified - in RFC 3066 or ISO 639-2 language code format. + in RFC 4646 or ISO 639-2 language code format. @param DriverName[out] A pointer to the Unicode string to return. This Unicode string is the name of the @@ -309,7 +332,7 @@ CirrusLogic5430ComponentNameGetDriverName ( languages specified in SupportedLanguages. The number of languages supported by a driver is up to the driver writer. Language is specified in - RFC 3066 or ISO 639-2 language code format. + RFC 4646 or ISO 639-2 language code format. @param ControllerName[out] A pointer to the Unicode string to return. This Unicode string is the name of the @@ -407,4 +430,9 @@ inw ( UINTN Address ); +EFI_STATUS +CirrusLogic5430VideoModeSetup ( + CIRRUS_LOGIC_5430_PRIVATE_DATA *Private + ); + #endif