From: evan.lloyd@arm.com
To: edk2-devel@lists.01.org
Cc: "ard.biesheuvel@linaro.org"@arm.com,
"leif.lindholm@linaro.org"@arm.com,
"Matteo.Carlini@arm.com"@arm.com, "nd@arm.com"@arm.com
Subject: [PATCH 12/19] ArmPlatformPkg: Redefine LcdPlatformGetTimings function
Date: Tue, 26 Sep 2017 21:15:22 +0100 [thread overview]
Message-ID: <20170926201529.11644-13-evan.lloyd@arm.com> (raw)
In-Reply-To: <20170926201529.11644-1-evan.lloyd@arm.com>
From: Girish Pathak <girish.pathak@arm.com>
The LcdPlatformGetTimings interface function takes similar sets of
multiple parameters for horizontal and vertical timings which can be
aggregated in a common data type. This change defines a structure
SCAN_TIMINGS for this which can be used to describe both horizontal and
vertical scan timings, and accordingly redefines the
LcdPlatformGetTiming interface, greatly reducing the amount of data
passed about.
Similarly the mode definition tables are also changed to use this data
type and thus enable pass through access.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Girish Pathak <girish.pathak@arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
---
ArmPlatformPkg/Include/Library/LcdPlatformLib.h | 32 ++--
ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c | 122 +++++---------
ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c | 177 ++++++++------------
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c | 55 +++---
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c | 48 +++---
5 files changed, 180 insertions(+), 254 deletions(-)
diff --git a/ArmPlatformPkg/Include/Library/LcdPlatformLib.h b/ArmPlatformPkg/Include/Library/LcdPlatformLib.h
index 48bdd8a51411137df040aa797fcff272785f7a35..f2f345b18fd15f2cde159fd42d3208a28f598a1f 100644
--- a/ArmPlatformPkg/Include/Library/LcdPlatformLib.h
+++ b/ArmPlatformPkg/Include/Library/LcdPlatformLib.h
@@ -152,6 +152,14 @@ typedef enum {
LCD_BITS_PER_PIXEL_12_444
} LCD_BPP;
+// Display timing settings.
+typedef struct {
+ UINT32 Resolution;
+ UINT32 Sync;
+ UINT32 BackPorch;
+ UINT32 FrontPorch;
+} SCAN_TIMINGS;
+
/** Platform related initialization function.
*
* @param IN Handle Handle to the LCD device instance.
@@ -219,29 +227,19 @@ LcdPlatformQueryMode (
/** Returns the display timing information for the requested mode number.
*
* @param IN ModeNumber Mode Number.
- * @param OUT HRes Pointer to horizontal resolution.
- * @param OUT HSync Pointer to horizontal sync width.
- * @param OUT HBackPorch Pointer to horizontal back porch.
- * @param OUT HFrontPorch Pointer to horizontal front porch.
- * @param OUT VRes Pointer to vertical resolution.
- * @param OUT VSync Pointer to vertical sync width.
- * @param OUT VBackPorch Pointer to vertical back porch.
- * @param OUT VFrontPorch Pointer to vertical front porch.
-
+ * @param OUT Horizontal Pointer to horizontal timing parameters.
+ * (Resolution, Sync, Back porch, Front porch)
+ * @param OUT Vertical Pointer to vertical timing parameters.
+ * (Resolution, Sync, Back porch, Front porch)
+ *
* @retval EFI_SUCCESS Success if the requested mode is found.
* @retval EFI_INVALID_PARAMETER Requested mode not found.
**/
EFI_STATUS
LcdPlatformGetTimings (
IN UINT32 ModeNumber,
- OUT UINT32* HRes,
- OUT UINT32* HSync,
- OUT UINT32* HBackPorch,
- OUT UINT32* HFrontPorch,
- OUT UINT32* VRes,
- OUT UINT32* VSync,
- OUT UINT32* VBackPorch,
- OUT UINT32* VFrontPorch
+ OUT CONST SCAN_TIMINGS **Horizontal,
+ OUT CONST SCAN_TIMINGS **Vertical
);
/** Return bits per pixel information for a mode number.
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c b/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
index a6c4f414685db907a3fbc9a009969be8a09f7415..dc2c5fb89923304c46d137ec8eaefc9418548d06 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
@@ -30,58 +30,52 @@
typedef struct {
UINT32 Mode;
- UINT32 HorizontalResolution;
- UINT32 VerticalResolution;
LCD_BPP Bpp;
UINT32 OscFreq;
// These are used by HDLCD
- UINT32 HSync;
- UINT32 HBackPorch;
- UINT32 HFrontPorch;
- UINT32 VSync;
- UINT32 VBackPorch;
- UINT32 VFrontPorch;
-} LCD_RESOLUTION;
+ SCAN_TIMINGS Horizontal;
+ SCAN_TIMINGS Vertical;
+} DISPLAY_MODE;
/** The display modes supported by the platform.
**/
-STATIC CONST LCD_RESOLUTION mResolutions[] = {
+STATIC CONST DISPLAY_MODE mDisplayModes[] = {
{ // Mode 0 : VGA : 640 x 480 x 24 bpp
- VGA, VGA_H_RES_PIXELS, VGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ VGA, LCD_BITS_PER_PIXEL_24,
VGA_OSC_FREQUENCY,
- VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH,
- VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH
+ {VGA_H_RES_PIXELS, VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH},
+ {VGA_V_RES_PIXELS, VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH}
},
{ // Mode 1 : SVGA : 800 x 600 x 24 bpp
- SVGA, SVGA_H_RES_PIXELS, SVGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ SVGA, LCD_BITS_PER_PIXEL_24,
SVGA_OSC_FREQUENCY,
- SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH,
- SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH
+ {SVGA_H_RES_PIXELS, SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH},
+ {SVGA_V_RES_PIXELS, SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH}
},
{ // Mode 2 : XGA : 1024 x 768 x 24 bpp
- XGA, XGA_H_RES_PIXELS, XGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ XGA, LCD_BITS_PER_PIXEL_24,
XGA_OSC_FREQUENCY,
- XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH,
- XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH
+ {XGA_H_RES_PIXELS, XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH},
+ {XGA_V_RES_PIXELS, XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH}
},
{ // Mode 3 : SXGA : 1280 x 1024 x 24 bpp
- SXGA, SXGA_H_RES_PIXELS, SXGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ SXGA, LCD_BITS_PER_PIXEL_24,
(SXGA_OSC_FREQUENCY/2),
- SXGA_H_SYNC, SXGA_H_BACK_PORCH, SXGA_H_FRONT_PORCH,
- SXGA_V_SYNC, SXGA_V_BACK_PORCH, SXGA_V_FRONT_PORCH
+ {SXGA_H_RES_PIXELS, SXGA_H_SYNC, SXGA_H_BACK_PORCH, SXGA_H_FRONT_PORCH},
+ {SXGA_V_RES_PIXELS, SXGA_V_SYNC, SXGA_V_BACK_PORCH, SXGA_V_FRONT_PORCH}
},
{ // Mode 4 : UXGA : 1600 x 1200 x 24 bpp
- UXGA, UXGA_H_RES_PIXELS, UXGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ UXGA, LCD_BITS_PER_PIXEL_24,
(UXGA_OSC_FREQUENCY/2),
- UXGA_H_SYNC, UXGA_H_BACK_PORCH, UXGA_H_FRONT_PORCH,
- UXGA_V_SYNC, UXGA_V_BACK_PORCH, UXGA_V_FRONT_PORCH
+ {UXGA_H_RES_PIXELS, UXGA_H_SYNC, UXGA_H_BACK_PORCH, UXGA_H_FRONT_PORCH},
+ {UXGA_V_RES_PIXELS, UXGA_V_SYNC, UXGA_V_BACK_PORCH, UXGA_V_FRONT_PORCH}
},
{ // Mode 5 : HD : 1920 x 1080 x 24 bpp
- HD, HD_H_RES_PIXELS, HD_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ HD, LCD_BITS_PER_PIXEL_24,
(HD_OSC_FREQUENCY/2),
- HD_H_SYNC, HD_H_BACK_PORCH, HD_H_FRONT_PORCH,
- HD_V_SYNC, HD_V_BACK_PORCH, HD_V_FRONT_PORCH
+ {HD_H_RES_PIXELS, HD_H_SYNC, HD_H_BACK_PORCH, HD_H_FRONT_PORCH},
+ {HD_V_RES_PIXELS, HD_V_SYNC, HD_V_BACK_PORCH, HD_V_FRONT_PORCH}
}
};
@@ -209,7 +203,7 @@ LcdPlatformGetMaxMode(VOID)
{
/* The following line will report correctly the total number of graphics modes
* that could be supported by the graphics driver: */
- return (sizeof (mResolutions) / sizeof (LCD_RESOLUTION));
+ return (sizeof (mDisplayModes) / sizeof (DISPLAY_MODE));
}
/** Set the requested display mode.
@@ -232,7 +226,7 @@ LcdPlatformSetMode (
Status = ArmPlatformSysConfigSetDevice (
SYS_CFG_OSC_SITE1,
FixedPcdGet32 (PcdHdLcdVideoModeOscId),
- mResolutions[ModeNumber].OscFreq
+ mDisplayModes[ModeNumber].OscFreq
);
if (EFI_ERROR (Status)) {
ASSERT_EFI_ERROR (Status);
@@ -242,7 +236,7 @@ LcdPlatformSetMode (
// Set the DVI into the new mode
Status = ArmPlatformSysConfigSet (
SYS_CFG_DVIMODE,
- mResolutions[ModeNumber].Mode
+ mDisplayModes[ModeNumber].Mode
);
if (EFI_ERROR (Status)) {
ASSERT_EFI_ERROR (Status);
@@ -285,11 +279,11 @@ LcdPlatformQueryMode (
}
Info->Version = 0;
- Info->HorizontalResolution = mResolutions[ModeNumber].HorizontalResolution;
- Info->VerticalResolution = mResolutions[ModeNumber].VerticalResolution;
- Info->PixelsPerScanLine = mResolutions[ModeNumber].HorizontalResolution;
+ Info->HorizontalResolution = mDisplayModes[ModeNumber].Horizontal.Resolution;
+ Info->VerticalResolution = mDisplayModes[ModeNumber].Vertical.Resolution;
+ Info->PixelsPerScanLine = mDisplayModes[ModeNumber].Horizontal.Resolution;
- switch (mResolutions[ModeNumber].Bpp) {
+ switch (mDisplayModes[ModeNumber].Bpp) {
case LCD_BITS_PER_PIXEL_24:
Info->PixelFormat = PixelRedGreenBlueReserved8BitPerColor;
Info->PixelInformation.RedMask = LCD_24BPP_RED_MASK;
@@ -317,29 +311,20 @@ LcdPlatformQueryMode (
/** Returns the display timing information for the requested mode number.
*
* @param IN ModeNumber Mode Number.
- * @param OUT HRes Pointer to horizontal resolution.
- * @param OUT HSync Pointer to horizontal sync width.
- * @param OUT HBackPorch Pointer to horizontal back porch.
- * @param OUT HFrontPorch Pointer to horizontal front porch.
- * @param OUT VRes Pointer to vertical resolution.
- * @param OUT VSync Pointer to vertical sync width.
- * @param OUT VBackPorch Pointer to vertical back porch.
- * @param OUT VFrontPorch Pointer to vertical front porch.
+ * @param OUT Horizontal Pointer to horizontal timing parameters.
+ * (Resolution, Sync, Back porch, Front porch)
+ * @param OUT Vertical Pointer to vertical timing parameters.
+ * (Resolution, Sync, Back porch, Front porch)
+
*
* @retval EFI_SUCCESS Success if the requested mode is found.
* @retval EFI_INVALID_PARAMETER Requested mode not found.
**/
EFI_STATUS
LcdPlatformGetTimings (
- IN CONST UINT32 ModeNumber,
- OUT UINT32 * CONST HRes,
- OUT UINT32 * CONST HSync,
- OUT UINT32 * CONST HBackPorch,
- OUT UINT32 * CONST HFrontPorch,
- OUT UINT32 * CONST VRes,
- OUT UINT32 * CONST VSync,
- OUT UINT32 * CONST VBackPorch,
- OUT UINT32 * CONST VFrontPorch
+ IN CONST UINT32 ModeNumber,
+ OUT CONST SCAN_TIMINGS ** Horizontal,
+ OUT CONST SCAN_TIMINGS ** Vertical
)
{
if (ModeNumber >= LcdPlatformGetMaxMode ()) {
@@ -347,35 +332,14 @@ LcdPlatformGetTimings (
return EFI_INVALID_PARAMETER;
}
- if (HRes == NULL
- || HSync == NULL
- || HBackPorch == NULL
- || HFrontPorch == NULL
- || VRes == NULL
- || VSync == NULL
- || VBackPorch == NULL
- || VFrontPorch == NULL)
- {
- // One of the pointers is NULL
- ASSERT (HRes != NULL);
- ASSERT (HSync != NULL);
- ASSERT (HBackPorch != NULL);
- ASSERT (HFrontPorch != NULL);
- ASSERT (VRes != NULL);
- ASSERT (VSync != NULL);
- ASSERT (VBackPorch != NULL);
- ASSERT (VFrontPorch != NULL);
+ if (Horizontal == NULL || Vertical == NULL) {
+ ASSERT (Horizontal != NULL);
+ ASSERT (Vertical != NULL);
return EFI_INVALID_PARAMETER;
}
- *HRes = mResolutions[ModeNumber].HorizontalResolution;
- *HSync = mResolutions[ModeNumber].HSync;
- *HBackPorch = mResolutions[ModeNumber].HBackPorch;
- *HFrontPorch = mResolutions[ModeNumber].HFrontPorch;
- *VRes = mResolutions[ModeNumber].VerticalResolution;
- *VSync = mResolutions[ModeNumber].VSync;
- *VBackPorch = mResolutions[ModeNumber].VBackPorch;
- *VFrontPorch = mResolutions[ModeNumber].VFrontPorch;
+ *Horizontal = &mDisplayModes[ModeNumber].Horizontal;
+ *Vertical = &mDisplayModes[ModeNumber].Vertical;
return EFI_SUCCESS;
}
@@ -401,7 +365,7 @@ LcdPlatformGetBpp (
return EFI_INVALID_PARAMETER;
}
- *Bpp = mResolutions[ModeNumber].Bpp;
+ *Bpp = mDisplayModes[ModeNumber].Bpp;
return EFI_SUCCESS;
}
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c b/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c
index aa5a1ff9c1c25c51796b75230ca149ae3a92db4a..753c5b615361f83625cdd4f0506909721da014b6 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c
@@ -28,117 +28,111 @@
typedef struct {
UINT32 Mode;
- UINT32 HorizontalResolution;
- UINT32 VerticalResolution;
LCD_BPP Bpp;
UINT32 OscFreq;
- UINT32 HSync;
- UINT32 HBackPorch;
- UINT32 HFrontPorch;
- UINT32 VSync;
- UINT32 VBackPorch;
- UINT32 VFrontPorch;
-} LCD_RESOLUTION;
+ SCAN_TIMINGS Horizontal;
+ SCAN_TIMINGS Vertical;
+} DISPLAY_MODE;
/** The display modes supported by the platform.
**/
-STATIC CONST LCD_RESOLUTION mResolutions[] = {
+STATIC CONST DISPLAY_MODE mDisplayModes[] = {
{ // Mode 0 : VGA : 640 x 480 x 24 bpp
- VGA, VGA_H_RES_PIXELS, VGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ VGA, LCD_BITS_PER_PIXEL_24,
VGA_OSC_FREQUENCY,
- VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH,
- VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH
+ {VGA_H_RES_PIXELS, VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH},
+ {VGA_V_RES_PIXELS, VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH}
},
{ // Mode 1 : SVGA : 800 x 600 x 24 bpp
- SVGA, SVGA_H_RES_PIXELS, SVGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ SVGA, LCD_BITS_PER_PIXEL_24,
SVGA_OSC_FREQUENCY,
- SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH,
- SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH
+ {SVGA_H_RES_PIXELS, SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH},
+ {SVGA_V_RES_PIXELS, SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH}
},
{ // Mode 2 : XGA : 1024 x 768 x 24 bpp
- XGA, XGA_H_RES_PIXELS, XGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ XGA, LCD_BITS_PER_PIXEL_24,
XGA_OSC_FREQUENCY,
- XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH,
- XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH
+ {XGA_H_RES_PIXELS, XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH},
+ {XGA_V_RES_PIXELS, XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH}
},
{ // Mode 3 : SXGA : 1280 x 1024 x 24 bpp
- SXGA, SXGA_H_RES_PIXELS, SXGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ SXGA, LCD_BITS_PER_PIXEL_24,
(SXGA_OSC_FREQUENCY/2),
- SXGA_H_SYNC, SXGA_H_BACK_PORCH, SXGA_H_FRONT_PORCH,
- SXGA_V_SYNC, SXGA_V_BACK_PORCH, SXGA_V_FRONT_PORCH
+ {SXGA_H_RES_PIXELS, SXGA_H_SYNC, SXGA_H_BACK_PORCH, SXGA_H_FRONT_PORCH},
+ {SXGA_V_RES_PIXELS, SXGA_V_SYNC, SXGA_V_BACK_PORCH, SXGA_V_FRONT_PORCH}
},
{ // Mode 4 : UXGA : 1600 x 1200 x 24 bpp
- UXGA, UXGA_H_RES_PIXELS, UXGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ UXGA, LCD_BITS_PER_PIXEL_24,
(UXGA_OSC_FREQUENCY/2),
- UXGA_H_SYNC, UXGA_H_BACK_PORCH, UXGA_H_FRONT_PORCH,
- UXGA_V_SYNC, UXGA_V_BACK_PORCH, UXGA_V_FRONT_PORCH
+ {UXGA_H_RES_PIXELS, UXGA_H_SYNC, UXGA_H_BACK_PORCH, UXGA_H_FRONT_PORCH},
+ {UXGA_V_RES_PIXELS, UXGA_V_SYNC, UXGA_V_BACK_PORCH, UXGA_V_FRONT_PORCH}
},
{ // Mode 5 : HD : 1920 x 1080 x 24 bpp
- HD, HD_H_RES_PIXELS, HD_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24,
+ HD, LCD_BITS_PER_PIXEL_24,
(HD_OSC_FREQUENCY/2),
- HD_H_SYNC, HD_H_BACK_PORCH, HD_H_FRONT_PORCH,
- HD_V_SYNC, HD_V_BACK_PORCH, HD_V_FRONT_PORCH
+ {HD_H_RES_PIXELS, HD_H_SYNC, HD_H_BACK_PORCH, HD_H_FRONT_PORCH},
+ {HD_V_RES_PIXELS, HD_V_SYNC, HD_V_BACK_PORCH, HD_V_FRONT_PORCH}
},
{ // Mode 6 : VGA : 640 x 480 x 16 bpp (565 Mode)
- VGA, VGA_H_RES_PIXELS, VGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_565,
+ VGA, LCD_BITS_PER_PIXEL_16_565,
VGA_OSC_FREQUENCY,
- VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH,
- VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH
+ {VGA_H_RES_PIXELS, VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH},
+ {VGA_V_RES_PIXELS, VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH}
},
{ // Mode 7 : SVGA : 800 x 600 x 16 bpp (565 Mode)
- SVGA, SVGA_H_RES_PIXELS, SVGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_565,
+ SVGA, LCD_BITS_PER_PIXEL_16_565,
SVGA_OSC_FREQUENCY,
- SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH,
- SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH
+ {SVGA_H_RES_PIXELS, SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH},
+ {SVGA_V_RES_PIXELS, SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH}
},
{ // Mode 8 : XGA : 1024 x 768 x 16 bpp (565 Mode)
- XGA, XGA_H_RES_PIXELS, XGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_565,
+ XGA, LCD_BITS_PER_PIXEL_16_565,
XGA_OSC_FREQUENCY,
- XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH,
- XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH
+ {XGA_H_RES_PIXELS, XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH},
+ {XGA_V_RES_PIXELS, XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH}
},
{ // Mode 9 : VGA : 640 x 480 x 15 bpp
- VGA, VGA_H_RES_PIXELS, VGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_555,
+ VGA, LCD_BITS_PER_PIXEL_16_555,
VGA_OSC_FREQUENCY,
- VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH,
- VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH
+ {VGA_H_RES_PIXELS, VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH},
+ {VGA_V_RES_PIXELS, VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH}
},
{ // Mode 10 : SVGA : 800 x 600 x 15 bpp
- SVGA, SVGA_H_RES_PIXELS, SVGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_555,
+ SVGA, LCD_BITS_PER_PIXEL_16_555,
SVGA_OSC_FREQUENCY,
- SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH,
- SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH
+ {SVGA_H_RES_PIXELS, SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH},
+ {SVGA_V_RES_PIXELS, SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH}
},
{ // Mode 11 : XGA : 1024 x 768 x 15 bpp
- XGA, XGA_H_RES_PIXELS, XGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_555,
+ XGA, LCD_BITS_PER_PIXEL_16_555,
XGA_OSC_FREQUENCY,
- XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH,
- XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH
+ {XGA_H_RES_PIXELS, XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH},
+ {XGA_V_RES_PIXELS, XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH}
},
{ // Mode 12 : XGA : 1024 x 768 x 15 bpp - All the timing info is derived from Linux Kernel Driver Settings
- XGA, XGA_H_RES_PIXELS, XGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_16_555,
+ XGA, LCD_BITS_PER_PIXEL_16_555,
63500000,
- XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH,
- XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH
+ {XGA_H_RES_PIXELS, XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH},
+ {XGA_V_RES_PIXELS, XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH}
},
{ // Mode 13 : VGA : 640 x 480 x 12 bpp (444 Mode)
- VGA, VGA_H_RES_PIXELS, VGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_12_444,
+ VGA, LCD_BITS_PER_PIXEL_12_444,
VGA_OSC_FREQUENCY,
- VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH,
- VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH
+ {VGA_H_RES_PIXELS, VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH},
+ {VGA_V_RES_PIXELS, VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH}
},
{ // Mode 14 : SVGA : 800 x 600 x 12 bpp (444 Mode)
- SVGA, SVGA_H_RES_PIXELS, SVGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_12_444,
+ SVGA, LCD_BITS_PER_PIXEL_12_444,
SVGA_OSC_FREQUENCY,
- SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH,
- SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH
+ {SVGA_H_RES_PIXELS, SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH},
+ {SVGA_V_RES_PIXELS, SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH}
},
{ // Mode 15 : XGA : 1024 x 768 x 12 bpp (444 Mode)
- XGA, XGA_H_RES_PIXELS, XGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_12_444,
+ XGA, LCD_BITS_PER_PIXEL_12_444,
XGA_OSC_FREQUENCY,
- XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH,
- XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH
+ {XGA_H_RES_PIXELS, XGA_H_SYNC, XGA_H_BACK_PORCH, XGA_H_FRONT_PORCH},
+ {XGA_V_RES_PIXELS, XGA_V_SYNC, XGA_V_BACK_PORCH, XGA_V_FRONT_PORCH}
}
};
@@ -308,7 +302,7 @@ LcdPlatformSetMode (
Status = ArmPlatformSysConfigSetDevice (
Function,
OscillatorId,
- mResolutions[ModeNumber].OscFreq
+ mDisplayModes[ModeNumber].OscFreq
);
if (EFI_ERROR (Status)) {
ASSERT_EFI_ERROR (Status);
@@ -326,7 +320,7 @@ LcdPlatformSetMode (
// Set the DVI into the new mode
Status = ArmPlatformSysConfigSet (
SYS_CFG_DVIMODE,
- mResolutions[ModeNumber].Mode
+ mDisplayModes[ModeNumber].Mode
);
if (EFI_ERROR (Status)) {
ASSERT_EFI_ERROR (Status);
@@ -368,11 +362,11 @@ LcdPlatformQueryMode (
}
Info->Version = 0;
- Info->HorizontalResolution = mResolutions[ModeNumber].HorizontalResolution;
- Info->VerticalResolution = mResolutions[ModeNumber].VerticalResolution;
- Info->PixelsPerScanLine = mResolutions[ModeNumber].HorizontalResolution;
+ Info->HorizontalResolution = mDisplayModes[ModeNumber].Horizontal.Resolution;
+ Info->VerticalResolution = mDisplayModes[ModeNumber].Vertical.Resolution;
+ Info->PixelsPerScanLine = mDisplayModes[ModeNumber].Horizontal.Resolution;
- switch (mResolutions[ModeNumber].Bpp) {
+ switch (mDisplayModes[ModeNumber].Bpp) {
case LCD_BITS_PER_PIXEL_24:
Info->PixelFormat = PixelRedGreenBlueReserved8BitPerColor;
Info->PixelInformation.RedMask = LCD_24BPP_RED_MASK;
@@ -400,14 +394,10 @@ LcdPlatformQueryMode (
/** Returns the display timing information for the requested mode number.
*
* @param IN ModeNumber Mode Number.
- * @param OUT HRes Pointer to horizontal resolution.
- * @param OUT HSync Pointer to horizontal sync width.
- * @param OUT HBackPorch Pointer to horizontal back porch.
- * @param OUT HFrontPorch Pointer to horizontal front porch.
- * @param OUT VRes Pointer to vertical resolution.
- * @param OUT VSync Pointer to vertical sync width.
- * @param OUT VBackPorch Pointer to vertical back porch.
- * @param OUT VFrontPorch Pointer to vertical front porch.
+ * @param OUT Horizontal Pointer to horizontal timing parameters.
+ * (Resolution, Sync, Back porch, Front porch)
+ * @param OUT Vertical Pointer to vertical timing parameters.
+ * (Resolution, Sync, Back porch, Front porch)
*
* @retval EFI_SUCCESS Success if the requested mode is found.
* @retval EFI_INVALID_PARAMETER Requested mode not found.
@@ -415,15 +405,9 @@ LcdPlatformQueryMode (
**/
EFI_STATUS
LcdPlatformGetTimings (
- IN CONST UINT32 ModeNumber,
- OUT UINT32 * CONST HRes,
- OUT UINT32 * CONST HSync,
- OUT UINT32 * CONST HBackPorch,
- OUT UINT32 * CONST HFrontPorch,
- OUT UINT32 * CONST VRes,
- OUT UINT32 * CONST VSync,
- OUT UINT32 * CONST VBackPorch,
- OUT UINT32 * CONST VFrontPorch
+ IN CONST UINT32 ModeNumber,
+ OUT CONST SCAN_TIMINGS ** Horizontal,
+ OUT CONST SCAN_TIMINGS ** Vertical
)
{
if (ModeNumber >= LcdPlatformGetMaxMode ()) {
@@ -431,35 +415,16 @@ LcdPlatformGetTimings (
return EFI_INVALID_PARAMETER;
}
- if (HRes == NULL
- || HSync == NULL
- || HBackPorch == NULL
- || HFrontPorch == NULL
- || VRes == NULL
- || VSync == NULL
- || VBackPorch == NULL
- || VFrontPorch == NULL)
+ if (Horizontal == NULL || Vertical == NULL)
{
// One of the pointers is NULL
- ASSERT (HRes != NULL);
- ASSERT (HSync != NULL);
- ASSERT (HBackPorch != NULL);
- ASSERT (HFrontPorch != NULL);
- ASSERT (VRes != NULL);
- ASSERT (VSync != NULL);
- ASSERT (VBackPorch != NULL);
- ASSERT (VFrontPorch != NULL);
+ ASSERT (Horizontal != NULL);
+ ASSERT (Vertical != NULL);
return EFI_INVALID_PARAMETER;
}
- *HRes = mResolutions[ModeNumber].HorizontalResolution;
- *HSync = mResolutions[ModeNumber].HSync;
- *HBackPorch = mResolutions[ModeNumber].HBackPorch;
- *HFrontPorch = mResolutions[ModeNumber].HFrontPorch;
- *VRes = mResolutions[ModeNumber].VerticalResolution;
- *VSync = mResolutions[ModeNumber].VSync;
- *VBackPorch = mResolutions[ModeNumber].VBackPorch;
- *VFrontPorch = mResolutions[ModeNumber].VFrontPorch;
+ *Horizontal = &mDisplayModes[ModeNumber].Horizontal;
+ *Vertical = &mDisplayModes[ModeNumber].Vertical;
return EFI_SUCCESS;
}
@@ -485,7 +450,7 @@ LcdPlatformGetBpp (
return EFI_INVALID_PARAMETER;
}
- *Bpp = mResolutions[ModeNumber].Bpp;
+ *Bpp = mDisplayModes[ModeNumber].Bpp;
return EFI_SUCCESS;
}
diff --git a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
index 33c555e75cafaf9affddd0992c4bd9f9289f6703..03153c06d314cb497c91889386ca6075c0c9f718 100644
--- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
+++ b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
@@ -84,35 +84,25 @@ LcdSetMode (
IN CONST UINT32 ModeNumber
)
{
- EFI_STATUS Status;
- UINT32 HRes;
- UINT32 HSync;
- UINT32 HBackPorch;
- UINT32 HFrontPorch;
- UINT32 VRes;
- UINT32 VSync;
- UINT32 VBackPorch;
- UINT32 VFrontPorch;
- UINT32 BytesPerPixel;
- LCD_BPP LcdBpp;
+ EFI_STATUS Status;
+ CONST SCAN_TIMINGS *Horizontal;
+ CONST SCAN_TIMINGS *Vertical;
+ UINT32 BytesPerPixel;
+ LCD_BPP LcdBpp;
// Set the video mode timings and other relevant information
Status = LcdPlatformGetTimings (
ModeNumber,
- &HRes,
- &HSync,
- &HBackPorch,
- &HFrontPorch,
- &VRes,
- &VSync,
- &VBackPorch,
- &VFrontPorch
+ &Horizontal,
+ &Vertical
);
if (EFI_ERROR (Status)) {
ASSERT_EFI_ERROR (Status);
return Status;
}
+ ASSERT (Horizontal != NULL);
+ ASSERT (Vertical != NULL);
Status = LcdPlatformGetBpp (ModeNumber, &LcdBpp);
if (EFI_ERROR (Status)) {
@@ -126,21 +116,26 @@ LcdSetMode (
MmioWrite32 (HDLCD_REG_COMMAND, HDLCD_DISABLE);
// Update the frame buffer information with the new settings
- MmioWrite32 (HDLCD_REG_FB_LINE_LENGTH, HRes * BytesPerPixel);
- MmioWrite32 (HDLCD_REG_FB_LINE_PITCH, HRes * BytesPerPixel);
- MmioWrite32 (HDLCD_REG_FB_LINE_COUNT, VRes - 1);
+ MmioWrite32 (
+ HDLCD_REG_FB_LINE_LENGTH,
+ Horizontal->Resolution * BytesPerPixel
+ );
+
+ MmioWrite32 (HDLCD_REG_FB_LINE_PITCH, Horizontal->Resolution * BytesPerPixel);
+
+ MmioWrite32 (HDLCD_REG_FB_LINE_COUNT, Vertical->Resolution - 1);
// Set the vertical timing information
- MmioWrite32 (HDLCD_REG_V_SYNC, VSync);
- MmioWrite32 (HDLCD_REG_V_BACK_PORCH, VBackPorch);
- MmioWrite32 (HDLCD_REG_V_DATA, VRes - 1);
- MmioWrite32 (HDLCD_REG_V_FRONT_PORCH, VFrontPorch);
+ MmioWrite32 (HDLCD_REG_V_SYNC, Vertical->Sync);
+ MmioWrite32 (HDLCD_REG_V_BACK_PORCH, Vertical->BackPorch);
+ MmioWrite32 (HDLCD_REG_V_DATA, Vertical->Resolution - 1);
+ MmioWrite32 (HDLCD_REG_V_FRONT_PORCH, Vertical->FrontPorch);
// Set the horizontal timing information
- MmioWrite32 (HDLCD_REG_H_SYNC, HSync);
- MmioWrite32 (HDLCD_REG_H_BACK_PORCH, HBackPorch);
- MmioWrite32 (HDLCD_REG_H_DATA, HRes - 1);
- MmioWrite32 (HDLCD_REG_H_FRONT_PORCH, HFrontPorch);
+ MmioWrite32 (HDLCD_REG_H_SYNC, Horizontal->Sync);
+ MmioWrite32 (HDLCD_REG_H_BACK_PORCH, Horizontal->BackPorch);
+ MmioWrite32 (HDLCD_REG_H_DATA, Horizontal->Resolution - 1);
+ MmioWrite32 (HDLCD_REG_H_FRONT_PORCH, Horizontal->FrontPorch);
// Enable the controller
MmioWrite32 (HDLCD_REG_COMMAND, HDLCD_ENABLE);
diff --git a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
index 12db9d910ed1d7874095a5f79fe588491811f75a..6de60491e9fd0c5bca71e743aac2862ff85f6e7e 100644
--- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
+++ b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
@@ -86,34 +86,24 @@ LcdSetMode (
IN CONST UINT32 ModeNumber
)
{
- EFI_STATUS Status;
- UINT32 HRes;
- UINT32 HSync;
- UINT32 HBackPorch;
- UINT32 HFrontPorch;
- UINT32 VRes;
- UINT32 VSync;
- UINT32 VBackPorch;
- UINT32 VFrontPorch;
- UINT32 LcdControl;
- LCD_BPP LcdBpp;
+ EFI_STATUS Status;
+ CONST SCAN_TIMINGS *Horizontal;
+ CONST SCAN_TIMINGS *Vertical;
+ UINT32 LcdControl;
+ LCD_BPP LcdBpp;
// Set the video mode timings and other relevant information
Status = LcdPlatformGetTimings (
ModeNumber,
- &HRes,
- &HSync,
- &HBackPorch,
- &HFrontPorch,
- &VRes,
- &VSync,
- &VBackPorch,
- &VFrontPorch
+ &Horizontal,
+ &Vertical
);
if (EFI_ERROR (Status)) {
ASSERT_EFI_ERROR (Status);
return Status;
}
+ ASSERT (Horizontal != NULL);
+ ASSERT (Vertical != NULL);
Status = LcdPlatformGetBpp (ModeNumber, &LcdBpp);
if (EFI_ERROR (Status)) {
@@ -127,15 +117,29 @@ LcdSetMode (
// Set Timings
MmioWrite32 (
PL111_REG_LCD_TIMING_0,
- HOR_AXIS_PANEL (HBackPorch, HFrontPorch, HSync, HRes)
+ HOR_AXIS_PANEL (
+ Horizontal->BackPorch,
+ Horizontal->FrontPorch,
+ Horizontal->Sync,
+ Horizontal->Resolution
+ )
);
MmioWrite32 (
PL111_REG_LCD_TIMING_1,
- VER_AXIS_PANEL (VBackPorch, VFrontPorch, VSync, VRes)
+ VER_AXIS_PANEL (
+ Vertical->BackPorch,
+ Vertical->FrontPorch,
+ Vertical->Sync,
+ Vertical->Resolution
+ )
+ );
+
+ MmioWrite32 (
+ PL111_REG_LCD_TIMING_2,
+ CLK_SIG_POLARITY (Horizontal->Resolution)
);
- MmioWrite32 (PL111_REG_LCD_TIMING_2, CLK_SIG_POLARITY (HRes));
MmioWrite32 (PL111_REG_LCD_TIMING_3, 0);
// PL111_REG_LCD_CONTROL
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")
next prev parent reply other threads:[~2017-09-26 20:12 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-26 20:15 [PATCH 00/19] ArmPlatformPkg: Update GOP evan.lloyd
2017-09-26 20:15 ` [PATCH 01/19] ArmPlatformPkg: Tidy LcdGraphicsOutputDxe code: Coding standard evan.lloyd
2017-10-12 18:45 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 02/19] ArmPlatformPkg: Tidy LcdGraphicsOutputDxe code: Added comments evan.lloyd
2017-10-12 19:02 ` Leif Lindholm
2017-12-05 18:55 ` Evan Lloyd
2017-12-05 19:58 ` Leif Lindholm
2017-12-05 22:06 ` Evan Lloyd
2017-09-26 20:15 ` [PATCH 03/19] ArmPlatformPkg: PL111 and HDLCD: add const qualifier evan.lloyd
2017-10-12 19:07 ` Leif Lindholm
2017-10-12 19:47 ` Ard Biesheuvel
2017-12-01 16:17 ` Evan Lloyd
2017-12-01 17:31 ` Ard Biesheuvel
2017-12-05 20:35 ` Evan Lloyd
2017-12-05 20:54 ` Ard Biesheuvel
2017-09-26 20:15 ` [PATCH 04/19] ArmPlatformPkg: LcdGraphicsOurputDxe: Add debug asserts evan.lloyd
2017-10-12 19:32 ` Leif Lindholm
2017-10-13 7:33 ` Ard Biesheuvel
2017-12-01 16:33 ` Evan Lloyd
2017-12-01 17:34 ` Ard Biesheuvel
2017-12-01 17:58 ` Leif Lindholm
2017-12-05 20:46 ` Evan Lloyd
2017-12-07 14:55 ` Alexei Fedorov
2017-12-07 15:10 ` Ard Biesheuvel
2017-12-07 16:53 ` Alexei Fedorov
2017-12-08 21:39 ` Ard Biesheuvel
2017-09-26 20:15 ` [PATCH 05/19] ArmPlatformPkg: PL111LcdArmVExpressLib: Minor code cleanup evan.lloyd
2017-10-12 19:33 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 06/19] ArmPlatformPkg: PL111Lcd: Replace magic number with macro evan.lloyd
2017-10-12 19:34 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 07/19] ArmPlatformPkg: PL111LcdArmVExpressLib: Use FixedPcdGet32 evan.lloyd
2017-10-12 19:35 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 08/19] ArmPlatformPkg: PL11LcdArmVExpressLib: Improvement conditional evan.lloyd
2017-10-12 19:36 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 09/19] ArmPlatformPkg: HdLcdArmVExpressLib: Use FixedPcdGet32 evan.lloyd
2017-10-12 19:38 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 10/19] ArmPlatformPkg: HdLcdArmVExpressLib: Remove status check EFI_TIMEOUT evan.lloyd
2017-10-12 19:40 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 11/19] ArmPlatformPkg: Implement LcdIdentify function for HDLCD GOP evan.lloyd
2017-10-12 19:43 ` Leif Lindholm
2017-09-26 20:15 ` evan.lloyd [this message]
2017-10-13 7:49 ` [PATCH 12/19] ArmPlatformPkg: Redefine LcdPlatformGetTimings function Leif Lindholm
2017-09-26 20:15 ` [PATCH 13/19] ArmPlatformPkg: HdLcd Remove redundant Bpp evan.lloyd
2017-10-13 7:53 ` Leif Lindholm
2017-10-17 14:32 ` Evan Lloyd
2017-10-17 15:40 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 14/19] ArmPlatformPkg: Add PCD to select pixel format evan.lloyd
2017-10-25 14:27 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 15/19] ArmPlatformPkg: PCD to swap red/blue format for HDLCD evan.lloyd
2017-10-25 14:33 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 16/19] ArmPlatformPkg: Reorganize Lcd Graphics Output evan.lloyd
2017-10-25 14:44 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 17/19] ArmPlatformPkg: Additional display modes evan.lloyd
2017-10-25 14:45 ` Leif Lindholm
2017-09-26 20:15 ` [PATCH 18/19] ArmPlatformPkg: Reserving framebuffer at build evan.lloyd
2017-10-25 14:51 ` Leif Lindholm
2017-10-25 18:10 ` Ard Biesheuvel
2017-12-01 16:56 ` Evan Lloyd
2017-12-01 17:38 ` Ard Biesheuvel
2017-09-26 20:15 ` [PATCH 19/19] ArmPlatformPkg: New DP500/DP550/DP650 GOP driver evan.lloyd
2017-10-25 15:31 ` Leif Lindholm
2017-11-28 18:17 ` Ard Biesheuvel
2017-12-01 13:12 ` Evan Lloyd
2017-12-01 17:18 ` Ard Biesheuvel
2017-12-05 20:03 ` Evan Lloyd
2017-12-05 21:27 ` Ard Biesheuvel
2017-12-07 20:21 ` Evan Lloyd
2017-12-07 21:10 ` Ard Biesheuvel
2017-12-01 17:29 ` Leif Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170926201529.11644-13-evan.lloyd@arm.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox