• Cooper Jr., Franklin's avatar
    mtd: nand: omap2: Start dma request before enabling prefetch · 03d3a1df
    Cooper Jr., Franklin authored
    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 a dma 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: default avatarFranklin S Cooper Jr <fcooper@ti.com>
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
    03d3a1df
omap2.c 61.1 KB