|
@@ -503,6 +503,11 @@ 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);
|
|
|
+
|
|
|
+ /* setup and start DMA using dma_addr */
|
|
|
+ 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);
|
|
@@ -510,10 +515,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 */
|
|
|
wait_for_completion(&info->comp);
|
|
|
tim = 0;
|
|
|
limit = (loops_per_jiffy * msecs_to_jiffies(OMAP_NAND_TIMEOUT_MS));
|