From 1159fc3230aee02acc60aa245ce047217fd8b87e Mon Sep 17 00:00:00 2001 From: Quan Nguyen Date: Wed, 16 Dec 2020 20:25:21 +0700 Subject: ArmPkg/ArmGicV3Dxe: Use ArmGicSetInterruptPriority() to set priority When Affinity Routing enabled, the GICR_IPRIORITYR is used to set priority for SGIs and PPIs instead of GICD_IPRIORITYR. This patch calls ArmGicSetInterruptPriority() helper function when setting priority to handle the difference. Cc: Leif Lindholm Signed-off-by: Quan Nguyen Reviewed-off-by: Ard Biesheuvel --- ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'ArmPkg') diff --git a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c index d7da1f198d..16bccbff41 100644 --- a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c +++ b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c @@ -374,8 +374,6 @@ GicV3DxeInitialize ( { EFI_STATUS Status; UINTN Index; - UINT32 RegOffset; - UINTN RegShift; UINT64 CpuTarget; UINT64 MpId; @@ -397,12 +395,11 @@ GicV3DxeInitialize ( GicV3DisableInterruptSource (&gHardwareInterruptV3Protocol, Index); // Set Priority - RegOffset = Index / 4; - RegShift = (Index % 4) * 8; - MmioAndThenOr32 ( - mGicDistributorBase + ARM_GIC_ICDIPR + (4 * RegOffset), - ~(0xff << RegShift), - ARM_GIC_DEFAULT_PRIORITY << RegShift + ArmGicSetInterruptPriority ( + mGicDistributorBase, + mGicRedistributorsBase, + Index, + ARM_GIC_DEFAULT_PRIORITY ); } -- cgit v1.2.3