summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2010-05-25 20:23:59 +0530
committerGary King <gking@nvidia.com>2010-05-27 07:41:56 -0700
commit7d05987b03a7bd6c0ab9d2043ce2dcfb19f53e02 (patch)
tree2f13fbcd145ccde9ae41b37a165adc6b56e5db9a
parentae3a36307f58e03f9a1e1d3d4e790a96cd4e23ef (diff)
tegra: Flushing dma write buffer before starting dma.
Flushing the memory write buffer to the physical memory before starting the dma. This will make sure that dma will read the desired from memory after memory gets written otherwise there may be race condition between dma read from memory and actual data write into memory. Tested on whistler. bug 685253 Change-Id: I5387588f4ed15fe9c62bfff2cc236e91ba092b5d Reviewed-on: http://git-master/r/1590 Reviewed-by: Venkata (Muni) Anda <vanda@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/nvrm/io/ap15/nvrm_dma.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_dma.c b/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_dma.c
index a08f1d47a98b..d3ff3ff553d2 100644
--- a/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_dma.c
+++ b/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_dma.c
@@ -1206,6 +1206,8 @@ static NvError LogApbDmaTransferRequest(NvRmDmaHandle hDma, void *pCurrRequest)
if (IsSourceAddPerip)
pCurrReq->TransferMode |= RmDmaTransferMode_SourcePeripheral;
+ else
+ NvOsFlushWriteCombineBuffer();
// Configure for address wrapping of the dma register as per source and
// destination address wrapping of this transfer request.