Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1246574

Re: [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling prefetch

From Roger Quadros <rogerq@ti.com>
Newsgroups linux.kernel
Subject Re: [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling prefetch
Date 2015-10-14 13:50 +0200
Message-ID <qjsJb-5OD-15@gated-at.bofh.it> (permalink)
References <qiWJk-8ld-3@gated-at.bofh.it> <qiWSZ-4U-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 13/10/15 04:38, Franklin S Cooper Jr wrote:
> The prefetch engine sends a dma request once a FIFO threshold has
> been met. No other requests are received until the previous request
> is handled.
> 
> Starting an edma transfer (dma_async_issue_pending) results in any
> previous event for the dma channel to be cleared. Therefore, starting
> the prefetch engine before initiating the dma transfer may result in
> the prefetch triggering a dma request but instead of it being handled
> it can end up being cleared. This will result in a hang since the code
> will continue to wait for the dma request to complete.
> 
> By initiating the dma request before enabling the prefetch engine this
> race condition is avoided and no dma request are missed/cleared.
> 
> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
> ---
>  drivers/mtd/nand/omap2.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
> index 957c32f..94d11de 100644
> --- a/drivers/mtd/nand/omap2.c
> +++ b/drivers/mtd/nand/omap2.c
> @@ -509,6 +509,9 @@ static inline int omap_nand_dma_transfer(struct mtd_info *mtd, void *addr,
>  	tx->callback_param = &info->comp;
>  	dmaengine_submit(tx);
>  
> +	init_completion(&info->comp);
> +	dma_async_issue_pending(info->dma);
> +
>  	/*  configure and start prefetch transfer */
>  	ret = omap_prefetch_enable(info->gpmc_cs,
>  		PREFETCH_FIFOTHRESHOLD_MAX, 0x1, len, is_write, info);
> @@ -516,9 +519,6 @@ static inline int omap_nand_dma_transfer(struct mtd_info *mtd, void *addr,
>  		/* PFPW engine is busy, use cpu copy method */
>  		goto out_copy_unmap;
>  
> -	init_completion(&info->comp);
> -	dma_async_issue_pending(info->dma);
> -
>  	/* setup and start DMA using dma_addr */

Is the above comment misplaced after this change?

>  	wait_for_completion(&info->comp);
>  	tim = 0;
> 

cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/5] mtd: nand: Fix support for NAND DMA Prefetch  Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
  [PATCH 3/5] mtd: nand: omap2: Fix high memory dma prefetch transfer Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
  [PATCH 5/5] ARM: OMAP2+: Update gpmc and nand DT binding documentation Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
    Re: [PATCH 5/5] ARM: OMAP2+: Update gpmc and nand DT binding  documentation Roger Quadros <rogerq@ti.com> - 2015-10-14 14:00 +0200
      Re: [PATCH 5/5] ARM: OMAP2+: Update gpmc and nand DT binding  documentation "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-15 19:20 +0200
  [PATCH 4/5] ARM: dts: am437x/am33xx/omap3/dm816x: Add gpmc dma channel Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
    Re: [PATCH 4/5] ARM: dts: am437x/am33xx/omap3/dm816x: Add gpmc dma  channel Roger Quadros <rogerq@ti.com> - 2015-10-14 13:50 +0200
      Re: [PATCH 4/5] ARM: dts: am437x/am33xx/omap3/dm816x: Add gpmc dma  channel "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 16:00 +0200
  [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling prefetch Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:50 +0200
    Re: [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling  prefetch Roger Quadros <rogerq@ti.com> - 2015-10-14 13:50 +0200
      Re: [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling  prefetch "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 15:50 +0200
  [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:50 +0200
    Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT Roger Quadros <rogerq@ti.com> - 2015-10-14 13:40 +0200
      Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT Roger Quadros <rogerq@ti.com> - 2015-10-14 14:00 +0200
        Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 15:30 +0200
          Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT Roger Quadros <rogerq@ti.com> - 2015-10-14 16:20 +0200
            Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 16:40 +0200
              Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT Tony Lindgren <tony@atomide.com> - 2015-10-14 18:20 +0200
                Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 18:30 +0200
                Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT Tony Lindgren <tony@atomide.com> - 2015-10-14 20:20 +0200
                Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 22:10 +0200
                Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT Roger Quadros <rogerq@ti.com> - 2015-10-15 09:40 +0200
                Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel  information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-15 19:20 +0200

csiph-web