]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
spi: intel: Check number of chip selects after reading the descriptor
authorMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 15 Feb 2023 11:00:40 +0000 (13:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 07:50:20 +0000 (08:50 +0100)
[ Upstream commit 574fbb95cd9d88bdc9c9c4c64223a38a61d7de9a ]

The flash decriptor contains the number of flash components that we use
to figure out how many flash chips there are connected. Therefore we
need to read it first before deciding how many chip selects the
controller has.

Reported-by: Marcin Witkowski <marcin.witkowski@intel.com>
Fixes: 3f03c618bebb ("spi: intel: Add support for second flash chip")
Cc: stable@vger.kernel.org
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Link: https://lore.kernel.org/r/20230215110040.42186-1-mika.westerberg@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-intel.c

index 3ac73691fbb549604e06d4f787c6b8f9b89e352f..54fc226e1cdf6a5ab60d043bb09cad03322c3c5e 100644 (file)
@@ -1366,14 +1366,14 @@ static int intel_spi_populate_chip(struct intel_spi *ispi)
        if (!spi_new_device(ispi->master, &chip))
                return -ENODEV;
 
-       /* Add the second chip if present */
-       if (ispi->master->num_chipselect < 2)
-               return 0;
-
        ret = intel_spi_read_desc(ispi);
        if (ret)
                return ret;
 
+       /* Add the second chip if present */
+       if (ispi->master->num_chipselect < 2)
+               return 0;
+
        chip.platform_data = NULL;
        chip.chip_select = 1;