From c18ef81e79c2beccc5738e564fb56f1b78d2d5fc Mon Sep 17 00:00:00 2001 From: Girish Pathak Date: Tue, 26 Sep 2017 21:15:21 +0100 Subject: [PATCH] ArmPlatformPkg: Implement LcdIdentify function for HDLCD GOP LcdIdentify function does not currently check presence of HDLCD controller. Implement this functionality by reading HDLCD_REG_VERSION and checking against the PRODUCT_ID field to detect presence of HDLCD controller. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Girish Pathak Signed-off-by: Evan Lloyd Reviewed-by: Ard Biesheuvel Reviewed-by: Leif Lindholm --- ArmPlatformPkg/Library/HdLcd/HdLcd.c | 8 +++++++- ArmPlatformPkg/Library/HdLcd/HdLcd.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ArmPlatformPkg/Library/HdLcd/HdLcd.c b/ArmPlatformPkg/Library/HdLcd/HdLcd.c index 28306c530e..039048398c 100644 --- a/ArmPlatformPkg/Library/HdLcd/HdLcd.c +++ b/ArmPlatformPkg/Library/HdLcd/HdLcd.c @@ -175,11 +175,17 @@ LcdShutdown ( @retval EFI_SUCCESS Returns success if platform implements a HDLCD controller. + @retval EFI_NOT_FOUND HDLCD display controller not found on the + platform. **/ EFI_STATUS LcdIdentify ( VOID ) { - return EFI_SUCCESS; + if ((MmioRead32 (HDLCD_REG_VERSION) >> 16) == HDLCD_PRODUCT_ID) { + return EFI_SUCCESS; + } + + return EFI_NOT_FOUND; } diff --git a/ArmPlatformPkg/Library/HdLcd/HdLcd.h b/ArmPlatformPkg/Library/HdLcd/HdLcd.h index cd2c0366c7..1efa78eedc 100644 --- a/ArmPlatformPkg/Library/HdLcd/HdLcd.h +++ b/ArmPlatformPkg/Library/HdLcd/HdLcd.h @@ -85,4 +85,6 @@ // Number of bytes per pixel #define HDLCD_4BYTES_PER_PIXEL ((4 - 1) << 3) +#define HDLCD_PRODUCT_ID 0x1CDC + #endif /* HDLCD_H_ */