]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Drivers/ArmScmiDxe/ScmiClockProtocol.c
ArmPkg/ArmScmiDxe: Fix the calculation of RequiredArraySize
[mirror_edk2.git] / ArmPkg / Drivers / ArmScmiDxe / ScmiClockProtocol.c
index 12a7e6df5d4334424f7cd917046162dbe217bc0b..f092208a66018beaca3d76a9cbab1502dcc526bc 100644 (file)
@@ -236,12 +236,7 @@ ClockDescribeRates (
       *TotalRates = NUM_RATES (DescribeRates->NumRatesFlags)\r
                     + NUM_REMAIN_RATES (DescribeRates->NumRatesFlags);\r
 \r
-      if (*Format == ScmiClockRateFormatDiscrete) {\r
-        RequiredArraySize = (*TotalRates) * sizeof (UINT64);\r
-      } else {\r
-        // We need to return triplet of 64 bit value for each rate\r
-        RequiredArraySize = (*TotalRates) * 3 * sizeof (UINT64);\r
-      }\r
+      RequiredArraySize = (*TotalRates) * sizeof (UINT64);\r
 \r
       if (RequiredArraySize > (*RateArraySize)) {\r
         *RateArraySize = RequiredArraySize;\r
@@ -259,23 +254,21 @@ ClockDescribeRates (
           ConvertTo64Bit (Rate->Low, Rate->High);\r
       }\r
     } else {\r
-      for (RateNo = 0; RateNo < NUM_RATES (DescribeRates->NumRatesFlags); RateNo++) {\r
-        // Linear clock rates from minimum to maximum in steps\r
-        // Minimum clock rate.\r
-        Rate                                    = &DescribeRates->Rates[RateOffset++];\r
-        RateArray[RateIndex].ContinuousRate.Min =\r
-          ConvertTo64Bit (Rate->Low, Rate->High);\r
-\r
-        Rate = &DescribeRates->Rates[RateOffset++];\r
-        // Maximum clock rate.\r
-        RateArray[RateIndex].ContinuousRate.Max =\r
-          ConvertTo64Bit (Rate->Low, Rate->High);\r
-\r
-        Rate = &DescribeRates->Rates[RateOffset++];\r
-        // Step.\r
-        RateArray[RateIndex++].ContinuousRate.Step =\r
-          ConvertTo64Bit (Rate->Low, Rate->High);\r
-      }\r
+      // Linear clock rates from minimum to maximum in steps\r
+      // Minimum clock rate.\r
+      Rate                                    = &DescribeRates->Rates[RateOffset++];\r
+      RateArray[RateIndex].ContinuousRate.Min =\r
+        ConvertTo64Bit (Rate->Low, Rate->High);\r
+\r
+      Rate = &DescribeRates->Rates[RateOffset++];\r
+      // Maximum clock rate.\r
+      RateArray[RateIndex].ContinuousRate.Max =\r
+        ConvertTo64Bit (Rate->Low, Rate->High);\r
+\r
+      Rate = &DescribeRates->Rates[RateOffset++];\r
+      // Step.\r
+      RateArray[RateIndex++].ContinuousRate.Step =\r
+        ConvertTo64Bit (Rate->Low, Rate->High);\r
     }\r
   } while (NUM_REMAIN_RATES (DescribeRates->NumRatesFlags) != 0);\r
 \r