ASoC: SDCA: Move allocation of PDE delays array
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Fri, 16 May 2025 13:10:07 +0000 (14:10 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 20 May 2025 10:15:37 +0000 (11:15 +0100)
Move the allocation of the PDE delays array until after the size has
been adjusted, this saves an additional division and simplifies the
code slightly.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250516131011.221310-4-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sdca/sdca_functions.c

index 493f390f087add138b949196225a808d8eca94cf..64ac2644389070cc2c704f0589ff4d2018042abe 100644 (file)
@@ -1105,12 +1105,6 @@ static int find_sdca_entity_pde(struct device *dev,
                return -EINVAL;
        }
 
-       /* There are 3 values per delay */
-       delays = devm_kcalloc(dev, num_delays / mult_delay,
-                             sizeof(*delays), GFP_KERNEL);
-       if (!delays)
-               return -ENOMEM;
-
        delay_list = kcalloc(num_delays, sizeof(*delay_list), GFP_KERNEL);
        if (!delay_list)
                return -ENOMEM;
@@ -1121,6 +1115,10 @@ static int find_sdca_entity_pde(struct device *dev,
 
        num_delays /= mult_delay;
 
+       delays = devm_kcalloc(dev, num_delays, sizeof(*delays), GFP_KERNEL);
+       if (!delays)
+               return -ENOMEM;
+
        for (i = 0, j = 0; i < num_delays; i++) {
                delays[i].from_ps = delay_list[j++];
                delays[i].to_ps = delay_list[j++];