From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.9506.1614086081305626609 for ; Tue, 23 Feb 2021 05:14:41 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ECBF231B; Tue, 23 Feb 2021 05:14:40 -0800 (PST) Received: from e120189.arm.com (unknown [10.57.9.161]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id E06DA3F70D; Tue, 23 Feb 2021 05:14:39 -0800 (PST) From: "PierreGondois" To: devel@edk2.groups.io, ardb+tianocore@kernel.org, leif@nuviainc.com, sami.mujawar@arm.com Subject: [PATCH v3 16/26] ArmPkg: Fix Ecc error 7008 for SCMI_CLOCK_RATE Date: Tue, 23 Feb 2021 13:13:56 +0000 Message-Id: <20210223131406.3484-17-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210223131406.3484-1-Pierre.Gondois@arm.com> References: <20210223131406.3484-1-Pierre.Gondois@arm.com> From: Pierre Gondois This patch fixes the following Ecc reported error: Complex types should be typedef-ed The error is due to the a nested structure declaration. Signed-off-by: Pierre Gondois Reviewed-by: Sami Mujawar --- The changes can be seen at: https://github.com/PierreARM/edk2/tree/1552_Ecc_ArmPkg_BIS_v3 ArmPkg/Drivers/ArmScmiDxe/ScmiClockProtocol.c | 12 ++++++++---- ArmPkg/Include/Protocol/ArmScmiClockProtocol.h | 14 ++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ArmPkg/Drivers/ArmScmiDxe/ScmiClockProtocol.c b/ArmPkg/Drivers/ArmScmiDxe/ScmiClockProtocol.c index c66c414385dd..5c06e31bda22 100644 --- a/ArmPkg/Drivers/ArmScmiDxe/ScmiClockProtocol.c +++ b/ArmPkg/Drivers/ArmScmiDxe/ScmiClockProtocol.c @@ -255,22 +255,26 @@ ClockDescribeRates ( for (RateNo = 0; RateNo < NUM_RATES (DescribeRates->NumRatesFlags); RateNo++) { Rate = &DescribeRates->Rates[RateOffset++]; // Non-linear discrete rates. - RateArray[RateIndex++].Rate = ConvertTo64Bit (Rate->Low, Rate->High); + RateArray[RateIndex++].DiscreteRate.Rate = + ConvertTo64Bit (Rate->Low, Rate->High); } } else { for (RateNo = 0; RateNo < NUM_RATES (DescribeRates->NumRatesFlags); RateNo++) { // Linear clock rates from minimum to maximum in steps // Minimum clock rate. Rate = &DescribeRates->Rates[RateOffset++]; - RateArray[RateIndex].Min = ConvertTo64Bit (Rate->Low, Rate->High); + RateArray[RateIndex].ContinuousRate.Min = + ConvertTo64Bit (Rate->Low, Rate->High); Rate = &DescribeRates->Rates[RateOffset++]; // Maximum clock rate. - RateArray[RateIndex].Max = ConvertTo64Bit (Rate->Low, Rate->High); + RateArray[RateIndex].ContinuousRate.Max = + ConvertTo64Bit (Rate->Low, Rate->High); Rate = &DescribeRates->Rates[RateOffset++]; // Step. - RateArray[RateIndex++].Step = ConvertTo64Bit (Rate->Low, Rate->High); + RateArray[RateIndex++].ContinuousRate.Step = + ConvertTo64Bit (Rate->Low, Rate->High); } } } while (NUM_REMAIN_RATES (DescribeRates->NumRatesFlags) != 0); diff --git a/ArmPkg/Include/Protocol/ArmScmiClockProtocol.h b/ArmPkg/Include/Protocol/ArmScmiClockProtocol.h index b4d970dee3e2..85b5b8d1e764 100644 --- a/ArmPkg/Include/Protocol/ArmScmiClockProtocol.h +++ b/ArmPkg/Include/Protocol/ArmScmiClockProtocol.h @@ -1,6 +1,6 @@ /** @file - Copyright (c) 2017-2018, Arm Limited. All rights reserved. + Copyright (c) 2017-2021, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -57,12 +57,18 @@ typedef enum { either Rate or Min/Max/Step triplet is valid. */ typedef struct { - union { UINT64 Min; - UINT64 Rate; - }; UINT64 Max; UINT64 Step; +} SCMI_CLOCK_RATE_CONTINUOUS; + +typedef struct { + UINT64 Rate; +} SCMI_CLOCK_RATE_DISCRETE; + +typedef union { + SCMI_CLOCK_RATE_CONTINUOUS ContinuousRate; + SCMI_CLOCK_RATE_DISCRETE DiscreteRate; } SCMI_CLOCK_RATE; #pragma pack() -- 2.17.1