spi: pxa2xx: Move number of CS pins validation out of condition
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 3 Apr 2024 17:06:35 +0000 (20:06 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 15 Apr 2024 11:00:33 +0000 (20:00 +0900)
There is no need to allocate chip_data and then validate number of
CS pins as it will have the same effect. Hence move number of CS pins
validation out of condition in setup().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240403171550.1074644-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pxa2xx.c

index 2d128ddf18abd87aeee40f28b36ce1fcc2882b2a..2f60b2fde8d5059445898d28432e117cde9eb873 100644 (file)
@@ -1197,6 +1197,13 @@ static int setup(struct spi_device *spi)
                break;
        }
 
+       if (drv_data->ssp_type == CE4100_SSP) {
+               if (spi_get_chipselect(spi, 0) > 4) {
+                       dev_err(&spi->dev, "failed setup: cs number must not be > 4.\n");
+                       return -EINVAL;
+               }
+       }
+
        /* Only allocate on the first setup */
        chip = spi_get_ctldata(spi);
        if (!chip) {
@@ -1204,14 +1211,6 @@ static int setup(struct spi_device *spi)
                if (!chip)
                        return -ENOMEM;
 
-               if (drv_data->ssp_type == CE4100_SSP) {
-                       if (spi_get_chipselect(spi, 0) > 4) {
-                               dev_err(&spi->dev,
-                                       "failed setup: cs number must not be > 4.\n");
-                               kfree(chip);
-                               return -EINVAL;
-                       }
-               }
                chip->enable_dma = drv_data->controller_info->enable_dma;
                chip->timeout = TIMOUT_DFLT;
        }