diff options
Diffstat (limited to 'drivers/spi/spi-fsl-espi.c')
| -rw-r--r-- | drivers/spi/spi-fsl-espi.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c index 80d245ac846f..d3f05a0525a4 100644 --- a/drivers/spi/spi-fsl-espi.c +++ b/drivers/spi/spi-fsl-espi.c @@ -561,9 +561,13 @@ void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)  		/* spin until TX is done */  		ret = spin_event_timeout(((events = mpc8xxx_spi_read_reg( -				®_base->event)) & SPIE_NF) == 0, 1000, 0); +				®_base->event)) & SPIE_NF), 1000, 0);  		if (!ret) {  			dev_err(mspi->dev, "tired waiting for SPIE_NF\n"); + +			/* Clear the SPIE bits */ +			mpc8xxx_spi_write_reg(®_base->event, events); +			complete(&mspi->done);  			return;  		}  	}  |