summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoj Chourasia <mchourasia@nvidia.com>2012-05-09 16:45:06 +0530
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-06-13 01:24:53 -0700
commitff5d25f4a5847c664a123ca02ad981df699d50b6 (patch)
treed0cebdf52230826aca3ef7feba148c1c7a0c7eda
parent2bbf11be6d0b5ee8c47f370fc8e72ea0e0790ea6 (diff)
mtd: tegra-nor: Fix dma/cpu coherency issues
Call dma sync single api's to maintain coherency between CPU, dma and device in data transfers. bug 984029 bug 980884 Change-Id: I50b5a24a7ce482f473670347af3c75d6975c6060 Signed-off-by: Manoj Chourasia <mchourasia@nvidia.com> Reviewed-on: http://git-master/r/105917 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
-rw-r--r--drivers/mtd/maps/tegra_nor.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mtd/maps/tegra_nor.c b/drivers/mtd/maps/tegra_nor.c
index cc80a0bb3e86..505a2591f884 100644
--- a/drivers/mtd/maps/tegra_nor.c
+++ b/drivers/mtd/maps/tegra_nor.c
@@ -217,6 +217,8 @@ static void tegra_flash_dma(struct map_info *map,
bytes_remaining += (word32_count << 2);
break;
}
+ dma_sync_single_for_cpu(c->dev, c->dma_phys_buffer,
+ (current_transfer << 2), DMA_FROM_DEVICE);
memcpy((char *)(copy_to), (char *)(c->dma_virt_buffer),
(current_transfer << 2));