summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTharun Kumar P <tharunkumar.pasumarthi@microchip.com>2023-04-04 20:16:11 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-05-11 17:11:21 +0300
commitdcaa37ff97914b772753ca4baaa14cd8f71c1ac9 (patch)
tree982d00fbb0b5ef834f45f261d6d118493a458259
parentbb692211dc83a9528e97c5538c1646862c383f6d (diff)
downloadlinux-dcaa37ff97914b772753ca4baaa14cd8f71c1ac9.tar.xz
spi: mchp-pci1xxxx: Fix length of SPI transactions not set properly in driver
[ Upstream commit 35c8c5e503a82e0a4bf251d32096211eba8c2be6 ] In pci1xxxx_spi_transfer_one API, length of SPI transaction gets cleared by setting of length mask. Set length of transaction only after masking length field. Fixes: 1cc0cbea7167 ("spi: microchip: pci1xxxx: Add driver for SPI controller of PCI1XXXX PCIe switch") Signed-off-by: Tharun Kumar P <tharunkumar.pasumarthi@microchip.com> Link: https://lore.kernel.org/r/20230404171613.1336093-2-tharunkumar.pasumarthi@microchip.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/spi/spi-pci1xxxx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/spi/spi-pci1xxxx.c b/drivers/spi/spi-pci1xxxx.c
index a31c3b612a43..0805c441b406 100644
--- a/drivers/spi/spi-pci1xxxx.c
+++ b/drivers/spi/spi-pci1xxxx.c
@@ -199,8 +199,9 @@ static int pci1xxxx_spi_transfer_one(struct spi_controller *spi_ctlr,
else
regval &= ~SPI_MST_CTL_MODE_SEL;
- regval |= ((clkdiv << 5) | SPI_FORCE_CE | (len << 8));
+ regval |= ((clkdiv << 5) | SPI_FORCE_CE);
regval &= ~SPI_MST_CTL_CMD_LEN_MASK;
+ regval |= (len << 8);
writel(regval, par->reg_base +
SPI_MST_CTL_REG_OFFSET(p->hw_inst));
regval = readl(par->reg_base +