From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.96.140; helo=cam-smtp0.cambridge.arm.com; envelope-from=evan.lloyd@arm.com; receiver=edk2-devel@lists.01.org Received: from cam-smtp0.cambridge.arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0BB6022198F44 for ; Fri, 22 Dec 2017 11:03:39 -0800 (PST) Received: from E111747.Emea.Arm.com (e111747.emea.arm.com [10.1.25.75]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id vBMJ8Qx2005645; Fri, 22 Dec 2017 19:08:28 GMT From: evan.lloyd@arm.com To: edk2-devel@lists.01.org Cc: Arvind Chauhan , Daniil Egranov , Thomas Panakamattam Abraham , "ard.biesheuvel@linaro.org"@arm.com, "leif.lindholm@linaro.org"@arm.com, "Matteo.Carlini@arm.com"@arm.com, "nd@arm.com"@arm.com Date: Fri, 22 Dec 2017 19:08:12 +0000 Message-Id: <20171222190821.12440-10-evan.lloyd@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171222190821.12440-1-evan.lloyd@arm.com> References: <20171222190821.12440-1-evan.lloyd@arm.com> Subject: [PATCH edk2-platforms v2 09/18] ARM/VExpressPkg: PL11LcdArmVExpressLib: Improvement conditional X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2017 19:03:41 -0000 From: Girish Pathak PL111_CLCD_SITE and ARM_VE_MOTHERBOARD_SITE are both constants and available at build time. Use conditional compilation to process the code based on the value of PL111_CLCD_SITE, instead of selecting code in a switch statement at runtime. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Girish Pathak Signed-off-by: Evan Lloyd --- Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c | 40 +++++++------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c b/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c index 92918bb4ee6811db47791a435bc06a6dc77ae9a3..cf50b20fd9b1b44a81963655c2f88305ce6bdc67 100644 --- a/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c +++ b/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c @@ -206,16 +206,11 @@ LcdPlatformGetVram ( ASSERT (VramBaseAddress != NULL); ASSERT (VramSize != NULL); - // Is it on the motherboard or on the daughterboard? - switch (PL111_CLCD_SITE) { - - case ARM_VE_MOTHERBOARD_SITE: +#if (PL111_CLCD_SITE == ARM_VE_MOTHERBOARD_SITE) *VramBaseAddress = (EFI_PHYSICAL_ADDRESS)PL111_CLCD_VRAM_MOTHERBOARD_BASE; *VramSize = LCD_VRAM_SIZE; Status = EFI_SUCCESS; - break; - - case ARM_VE_DAUGHTERBOARD_1_SITE: +#elif (PL111_CLCD_SITE == ARM_VE_DAUGHTERBOARD_1_SITE) *VramBaseAddress = (EFI_PHYSICAL_ADDRESS)LCD_VRAM_CORE_TILE_BASE; *VramSize = LCD_VRAM_SIZE; @@ -242,13 +237,9 @@ LcdPlatformGetVram ( ASSERT (FALSE); gBS->FreePages (*VramBaseAddress, EFI_SIZE_TO_PAGES (*VramSize)); } - break; - - default: - // Unsupported site - Status = EFI_UNSUPPORTED; - break; - } +#else +#error PL111LcdVExpressLib: Unsupported PL111_CLCD_SITE +#endif // (PL111_CLCD_SITE == ARM_VE_MOTHERBOARD_SITE) return Status; } @@ -299,18 +290,15 @@ LcdPlatformSetMode ( return EFI_INVALID_PARAMETER; } - switch (PL111_CLCD_SITE) { - case ARM_VE_MOTHERBOARD_SITE: - Function = SYS_CFG_OSC; - OscillatorId = PL111_CLCD_MOTHERBOARD_VIDEO_MODE_OSC_ID; - break; - case ARM_VE_DAUGHTERBOARD_1_SITE: - Function = SYS_CFG_OSC_SITE1; - OscillatorId = FixedPcdGet32 (PcdPL111LcdVideoModeOscId); - break; - default: - return EFI_UNSUPPORTED; - } +#if (PL111_CLCD_SITE == ARM_VE_MOTHERBOARD_SITE) + Function = SYS_CFG_OSC; + OscillatorId = PL111_CLCD_MOTHERBOARD_VIDEO_MODE_OSC_ID; +#elif (PL111_CLCD_SITE == ARM_VE_DAUGHTERBOARD_1_SITE) + Function = SYS_CFG_OSC_SITE1; + OscillatorId = FixedPcdGet32 (PcdPL111LcdVideoModeOscId); +#else +#error PL111LcdVExpressLib: Unsupported PL111_CLCD_SITE +#endif // (PL111_CLCD_SITE == ARM_VE_MOTHERBOARD_SITE) // Set the video mode oscillator Status = ArmPlatformSysConfigSetDevice ( -- Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")