[PATCH 3/5] spi: cadence-xspi: Drop useless cdns_xspi->cur_cs

From: Paul Cercueil

Date: Wed Nov 04 2026 - 05:11:15 EST


From: Tanmay Jagdale <tanmay@xxxxxxxxxxx>

Make the code simpler by just passing down a 'cs' variable as argument
to the cdns_xspi_send_stig_command() function.

Signed-off-by: Tanmay Jagdale <tanmay@xxxxxxxxxxx>
Co-developed-by: Paul Cercueil <paul.cercueil@xxxxxxxxxxx>
Signed-off-by: Paul Cercueil <paul.cercueil@xxxxxxxxxxx>
---
drivers/spi/spi-cadence-xspi.c | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/drivers/spi/spi-cadence-xspi.c b/drivers/spi/spi-cadence-xspi.c
index 3cb2f95b98f6..04c873f28ea6 100644
--- a/drivers/spi/spi-cadence-xspi.c
+++ b/drivers/spi/spi-cadence-xspi.c
@@ -331,7 +331,6 @@ struct cdns_xspi_dev {
void __iomem *xferbase;

int irq;
- int cur_cs;
unsigned int sdmasize;
unsigned int sdma_xfer_len;

@@ -543,7 +542,7 @@ static int cdns_xspi_sdma_handle(struct cdns_xspi_dev *cdns_xspi)

static int cdns_xspi_send_stig_command(struct cdns_xspi_dev *cdns_xspi,
const struct spi_mem_op *op,
- bool data_phase)
+ int cs, bool data_phase)
{
u32 cmd_regs[6];
u32 cmd_status;
@@ -566,8 +565,7 @@ static int cdns_xspi_send_stig_command(struct cdns_xspi_dev *cdns_xspi,
} else {
cmd_regs[3] = CDNS_XSPI_CMD_FLD_P1_INSTR_CMD_3(op, 0);
}
- cmd_regs[4] = CDNS_XSPI_CMD_FLD_P1_INSTR_CMD_4(op,
- cdns_xspi->cur_cs);
+ cmd_regs[4] = CDNS_XSPI_CMD_FLD_P1_INSTR_CMD_4(op, cs);

cdns_xspi_trigger_command(cdns_xspi, cmd_regs);

@@ -576,8 +574,7 @@ static int cdns_xspi_send_stig_command(struct cdns_xspi_dev *cdns_xspi,
cmd_regs[1] = CDNS_XSPI_CMD_FLD_DSEQ_CMD_1(op);
cmd_regs[2] = CDNS_XSPI_CMD_FLD_DSEQ_CMD_2(op);
cmd_regs[3] = CDNS_XSPI_CMD_FLD_DSEQ_CMD_3(op, dummybytes);
- cmd_regs[4] = CDNS_XSPI_CMD_FLD_DSEQ_CMD_4(op,
- cdns_xspi->cur_cs);
+ cmd_regs[4] = CDNS_XSPI_CMD_FLD_DSEQ_CMD_4(op, cs);

cdns_xspi->in_buffer = op->data.buf.in;
cdns_xspi->out_buffer = op->data.buf.out;
@@ -612,11 +609,9 @@ static int cdns_xspi_mem_op(struct cdns_xspi_dev *cdns_xspi,
const struct spi_mem_op *op)
{
enum spi_mem_data_dir dir = op->data.dir;
+ int cs = spi_get_chipselect(mem->spi, 0);

- if (cdns_xspi->cur_cs != spi_get_chipselect(mem->spi, 0))
- cdns_xspi->cur_cs = spi_get_chipselect(mem->spi, 0);
-
- return cdns_xspi_send_stig_command(cdns_xspi, op,
+ return cdns_xspi_send_stig_command(cdns_xspi, op, cs,
(dir != SPI_MEM_NO_DATA));
}

@@ -1265,7 +1260,6 @@ static int cdns_xspi_probe(struct platform_device *pdev)
cdns_xspi->pdev = pdev;
cdns_xspi->host = host;
cdns_xspi->dev = &pdev->dev;
- cdns_xspi->cur_cs = 0;

init_completion(&cdns_xspi->cmd_complete);
init_completion(&cdns_xspi->auto_cmd_complete);
--
2.47.3