ARM: tegra: dma: Return ERROR_STOPPED if dma stopped.
authorLaxman Dewangan <ldewangan@nvidia.com>
Fri, 2 Mar 2012 07:24:19 +0000 (12:24 +0530)
committerVarun Colbert <vcolbert@nvidia.com>
Sat, 10 Mar 2012 05:28:59 +0000 (21:28 -0800)
commit7988d9109fb6c274faf9e14dd9e8366c68214640
tree9150a49b2e063b3dbd401938a74c42e731018e5e
parentb0a97558c4ff738fefcc52c98faa8c417b1747d7
ARM: tegra: dma: Return ERROR_STOPPED if dma stopped.

The dma will be stop in continuous mode with following reason:
- There is no next request and dma restarted the same buffer
  as it was last transfer.
- The buffer size was not enough and so latency to serve dma interrupt
  is more than buffer transfer time and hence buffer completed before
  interrupt served.

In the above cases, dma actually transfer more than requested
size. Returning correct transferred data in byte transferred and
return request status as ERROR.

Change-Id: I7046e0935b7261475a0f6ed49e40a6f1b86d72ec
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/86002
Reviewed-by: Stephen Warren <swarren@nvidia.com>
arch/arm/mach-tegra/dma.c
arch/arm/mach-tegra/include/mach/dma.h