summaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorMika Westerberg <mika.westerberg@linux.intel.com>2023-02-15 13:00:40 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-03-17 08:50:20 +0100
commit87228e1c18dc42db5c63b3d772a63adb9b49b47c (patch)
tree70c2322b4e7ebb41193656cb281a8a569101251f /drivers/spi
parent9858e0fb32b691b0c472d334a7b39081be09ccad (diff)
downloadlinux-stable-87228e1c18dc42db5c63b3d772a63adb9b49b47c.tar.gz
linux-stable-87228e1c18dc42db5c63b3d772a63adb9b49b47c.tar.bz2
linux-stable-87228e1c18dc42db5c63b3d772a63adb9b49b47c.zip
spi: intel: Check number of chip selects after reading the descriptor
[ 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>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/spi-intel.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/spi/spi-intel.c b/drivers/spi/spi-intel.c
index 3ac73691fbb5..54fc226e1cdf 100644
--- a/drivers/spi/spi-intel.c
+++ b/drivers/spi/spi-intel.c
@@ -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;