]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi: aspeed: Replace VLA parameter with flat pointer in calibration helper
authorChin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
Fri, 22 May 2026 07:16:21 +0000 (15:16 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 22 May 2026 10:55:28 +0000 (11:55 +0100)
aspeed_spi_ast2600_optimized_timing() declared its buffer argument as a
variable-length array parameter (u8 buf[rows][cols]), which causes a
sparse warning. Replace the VLA parameter with a plain u8 * and compute
the 2-D index manually. The corresponding call site is also updated.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202605180441.uD3toFRJ-lkp@intel.com/
Signed-off-by: Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Link: https://patch.msgid.link/20260522071621.102507-3-chin-ting_kuo@aspeedtech.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-aspeed-smc.c

index 808659a1f4601ccf73b8377614e01d1a9e897b3a..027caa2eeb5cdb3d09ffe58a44a9423dc3628f71 100644 (file)
@@ -1467,8 +1467,7 @@ end_calib:
  * must contains the highest number of consecutive "pass"
  * results and not span across multiple rows.
  */
-static u32 aspeed_spi_ast2600_optimized_timing(u32 rows, u32 cols,
-                                              u8 buf[rows][cols])
+static u32 aspeed_spi_ast2600_optimized_timing(u32 rows, u32 cols, u8 *buf)
 {
        int r = 0, c = 0;
        int max = 0;
@@ -1478,7 +1477,7 @@ static u32 aspeed_spi_ast2600_optimized_timing(u32 rows, u32 cols,
                for (j = 0; j < cols;) {
                        int k = j;
 
-                       while (k < cols && buf[i][k])
+                       while (k < cols && buf[(i * cols) + k])
                                k++;
 
                        if (k - j > max) {
@@ -1541,7 +1540,7 @@ static int aspeed_spi_ast2600_calibrate(struct aspeed_spi_chip *chip, u32 hdiv,
                }
        }
 
-       calib_point = aspeed_spi_ast2600_optimized_timing(6, 17, calib_res);
+       calib_point = aspeed_spi_ast2600_optimized_timing(6, 17, &calib_res[0][0]);
        /* No good setting for this frequency */
        if (calib_point == 0)
                return -1;