diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2010-05-25 20:23:59 +0530 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-05-27 07:41:56 -0700 |
commit | 7d05987b03a7bd6c0ab9d2043ce2dcfb19f53e02 (patch) | |
tree | 2f13fbcd145ccde9ae41b37a165adc6b56e5db9a | |
parent | ae3a36307f58e03f9a1e1d3d4e790a96cd4e23ef (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.c | 2 |
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. |