When the system is overloaded, DMA data transfer completion occurs after
100ms. Increase the timeouts to let it the time to complete.
Signed-off-by: Amelie Delaunay <[email protected]>
Signed-off-by: Christophe Kerello <[email protected]>
---
drivers/mtd/nand/raw/stm32_fmc2_nand.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/raw/stm32_fmc2_nand.c b/drivers/mtd/nand/raw/stm32_fmc2_nand.c
index 4aabea2..c7f7c6f 100644
--- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c
+++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c
@@ -981,7 +981,7 @@ static int stm32_fmc2_xfer(struct nand_chip *chip, const u8 *buf,
/* Wait DMA data transfer completion */
if (!wait_for_completion_timeout(&fmc2->dma_data_complete,
- msecs_to_jiffies(100))) {
+ msecs_to_jiffies(500))) {
dev_err(fmc2->dev, "data DMA timeout\n");
dmaengine_terminate_all(dma_ch);
ret = -ETIMEDOUT;
@@ -990,7 +990,7 @@ static int stm32_fmc2_xfer(struct nand_chip *chip, const u8 *buf,
/* Wait DMA ECC transfer completion */
if (!write_data && !raw) {
if (!wait_for_completion_timeout(&fmc2->dma_ecc_complete,
- msecs_to_jiffies(100))) {
+ msecs_to_jiffies(500))) {
dev_err(fmc2->dev, "ECC DMA timeout\n");
dmaengine_terminate_all(fmc2->dma_ecc_ch);
ret = -ETIMEDOUT;
--
1.9.1
Hi Christophe,
Christophe Kerello <[email protected]> wrote on Fri, 21 Jun
2019 16:48:00 +0200:
> When the system is overloaded, DMA data transfer completion occurs after
> 100ms. Increase the timeouts to let it the time to complete.
>
> Signed-off-by: Amelie Delaunay <[email protected]>
The first SoB should be the author's. Either Amelie is the author and
you should use 'git commit --amend --author=..." or she is not and
should be dropped (unless she sends the patch which is yours, and in
this case her name should appear second).
> Signed-off-by: Christophe Kerello <[email protected]>
> ---
> drivers/mtd/nand/raw/stm32_fmc2_nand.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/stm32_fmc2_nand.c b/drivers/mtd/nand/raw/stm32_fmc2_nand.c
> index 4aabea2..c7f7c6f 100644
> --- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c
> +++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c
> @@ -981,7 +981,7 @@ static int stm32_fmc2_xfer(struct nand_chip *chip, const u8 *buf,
>
> /* Wait DMA data transfer completion */
> if (!wait_for_completion_timeout(&fmc2->dma_data_complete,
> - msecs_to_jiffies(100))) {
> + msecs_to_jiffies(500))) {
> dev_err(fmc2->dev, "data DMA timeout\n");
> dmaengine_terminate_all(dma_ch);
> ret = -ETIMEDOUT;
> @@ -990,7 +990,7 @@ static int stm32_fmc2_xfer(struct nand_chip *chip, const u8 *buf,
> /* Wait DMA ECC transfer completion */
> if (!write_data && !raw) {
> if (!wait_for_completion_timeout(&fmc2->dma_ecc_complete,
> - msecs_to_jiffies(100))) {
> + msecs_to_jiffies(500))) {
IIRC I already asked you this but could you please make a define and at
the same time make it 1000 ms, I don't see the point in being close
to the maximum latency. If this is reached, your transfer was
screwed already, there is no performance impact here.
Sorry for the late notice but I will close the nand/next branch
tomorrow, so I'll queue your v2 only if I receive it soon enough :)
Thanks,
Miquèl