[PATCH v2 1/9] spi: spi-fsl-lpspi: Fix transmissions when using CONT

James Clark posted 9 patches 1 month ago
[PATCH v2 1/9] spi: spi-fsl-lpspi: Fix transmissions when using CONT
Posted by James Clark 1 month ago
From: Larisa Grigore <larisa.grigore@nxp.com>

Commit 6a130448498c ("spi: lpspi: Fix wrong transmission when don't use
CONT") breaks transmissions when CONT is used. The TDIE interrupt should
not be disabled in all cases. If CONT is used and the TX transfer is not
yet completed yet, but the interrupt handler is called because there are
characters to be received, TDIE is replaced with FCIE. When the transfer
is finally completed, SR_TDF is set but the interrupt handler isn't
called again.

Fixes: 6a130448498c ("spi: lpspi: Fix wrong transmission when don't use CONT")
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com>
Signed-off-by: James Clark <james.clark@linaro.org>
---
 drivers/spi/spi-fsl-lpspi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 313e444a34f3..eaa6bade61a6 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -3,7 +3,7 @@
 // Freescale i.MX7ULP LPSPI driver
 //
 // Copyright 2016 Freescale Semiconductor, Inc.
-// Copyright 2018 NXP Semiconductors
+// Copyright 2018, 2023, 2025 NXP
 
 #include <linux/clk.h>
 #include <linux/completion.h>
@@ -785,7 +785,7 @@ static irqreturn_t fsl_lpspi_isr(int irq, void *dev_id)
 	if (temp_SR & SR_MBF ||
 	    readl(fsl_lpspi->base + IMX7ULP_FSR) & FSR_TXCOUNT) {
 		writel(SR_FCF, fsl_lpspi->base + IMX7ULP_SR);
-		fsl_lpspi_intctrl(fsl_lpspi, IER_FCIE);
+		fsl_lpspi_intctrl(fsl_lpspi, IER_FCIE | (temp_IER & IER_TDIE));
 		return IRQ_HANDLED;
 	}
 

-- 
2.34.1
Re: [PATCH v2 1/9] spi: spi-fsl-lpspi: Fix transmissions when using CONT
Posted by Mark Brown 1 month ago
On Thu, Aug 28, 2025 at 11:14:40AM +0100, James Clark wrote:
> From: Larisa Grigore <larisa.grigore@nxp.com>
> 
> Commit 6a130448498c ("spi: lpspi: Fix wrong transmission when don't use
> CONT") breaks transmissions when CONT is used. The TDIE interrupt should
> not be disabled in all cases. If CONT is used and the TX transfer is not
> yet completed yet, but the interrupt handler is called because there are
> characters to be received, TDIE is replaced with FCIE. When the transfer
> is finally completed, SR_TDF is set but the interrupt handler isn't
> called again.

Frank, you've reviewed the whole series except for this patch - is there
some issue with it?
Re: [PATCH v2 1/9] spi: spi-fsl-lpspi: Fix transmissions when using CONT
Posted by Frank Li 1 month ago
On Fri, Aug 29, 2025 at 01:38:15PM +0200, Mark Brown wrote:
> On Thu, Aug 28, 2025 at 11:14:40AM +0100, James Clark wrote:
> > From: Larisa Grigore <larisa.grigore@nxp.com>
> >
> > Commit 6a130448498c ("spi: lpspi: Fix wrong transmission when don't use
> > CONT") breaks transmissions when CONT is used. The TDIE interrupt should
> > not be disabled in all cases. If CONT is used and the TX transfer is not
> > yet completed yet, but the interrupt handler is called because there are
> > characters to be received, TDIE is replaced with FCIE. When the transfer
> > is finally completed, SR_TDF is set but the interrupt handler isn't
> > called again.
>
> Frank, you've reviewed the whole series except for this patch - is there
> some issue with it?

I need read spec and code to understand code logic. It should be correct.

Reviewed-by: Frank Li <Frank.Li@nxp.com>