|
@@ -596,6 +596,12 @@ static int denali_dma_xfer(struct denali_nand_info *denali, void *buf,
|
|
|
}
|
|
|
|
|
|
iowrite32(DMA_ENABLE__FLAG, denali->reg + DMA_ENABLE);
|
|
|
+ /*
|
|
|
+ * The ->setup_dma() hook kicks DMA by using the data/command
|
|
|
+ * interface, which belongs to a different AXI port from the
|
|
|
+ * register interface. Read back the register to avoid a race.
|
|
|
+ */
|
|
|
+ ioread32(denali->reg + DMA_ENABLE);
|
|
|
|
|
|
denali_reset_irq(denali);
|
|
|
denali->setup_dma(denali, dma_addr, page, write);
|