Fix the issue of fsldma driver's VIRT_TO_BUS dependence in Kconfig.
Subsystems (2)
PATCH 1/1 Fix the issue of fsldma driver's VIRT_TO_BUS dependence in Kconfig.
Remove virt_to_bus(), just using the saved phy address to match.
Signed-off-by Zhang Wei <[email protected]>
--- drivers/dma/fsldma.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-)
drivers/dma/fsldma.c +9 -4
@@ -495,15 +495,20 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(*/ static void fsl_dma_update_completed_cookie (struct fsl_dma_chan *fsl_chan) { -struct fsl_desc_sw *cur_desc; +struct fsl_desc_sw *cur_desc, *desc;dma_addr_t ld_phy; ld_phy =get_cdar (fsl_chan) &FSL_DMA_NLDA_MASK ;if (ld_phy) { - cur_desc = (struct fsl_desc_sw *)bus_to_virt (ld_phy); - -if (cur_desc->async_tx.cookie) { + cur_desc =NULL ; +list_for_each_entry (desc, &fsl_chan->ld_queue, node) +if (desc->async_tx.phys == ld_phy) { + cur_desc = desc; +break ; + } + +if (cur_desc && cur_desc->async_tx.cookie) {if (dma_is_idle (fsl_chan)) fsl_chan->completed_cookie = cur_desc->async_tx.cookie;
Signature · 1 line
1.5.2