>From 6a649c8263149b06d29a3acc91b63fb0c1728deb Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Wed, 23 Mar 2016 08:26:46 +0100 Subject: [PATCH 1/3] mtd: spi-nor: cqspi: Reinit completion during indirect read and write Reinit the completion structures when performing indirect I/O. This does not manifest as a bug, but is necessary to make the code fully correct. Signed-off-by: Marek Vasut --- drivers/mtd/spi-nor/cadence-quadspi.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c index d9a7a67..a4d246c 100644 --- a/drivers/mtd/spi-nor/cadence-quadspi.c +++ b/drivers/mtd/spi-nor/cadence-quadspi.c @@ -527,6 +527,9 @@ static int cqspi_indirect_read_execute(struct spi_nor *nor, remaining -= bytes_to_read; bytes_to_read = cqspi_get_rd_sram_level(cqspi); } + + if (remaining > 0) + reinit_completion(&cqspi->transfer_complete); } /* Check indirect done status */ @@ -616,6 +619,9 @@ static int cqspi_indirect_write_execute(struct spi_nor *nor, txbuf += write_bytes; remaining -= write_bytes; + + if (remaining > 0) + reinit_completion(&cqspi->transfer_complete); } /* Check indirect done status */ -- 2.7.0