dmaeninge: xilinx_dma: Fix bug in multiple frame stores scenario in vdma
authorKedareswara rao Appana <appana.durga.rao@xilinx.com>
Thu, 7 Dec 2017 05:21:03 +0000 (10:51 +0530)
committerVinod Koul <vinod.koul@intel.com>
Mon, 18 Dec 2017 05:14:09 +0000 (10:44 +0530)
commitfe0503e19310bddc892ddbfd6dfc8746abbe7261
tree3e3da8707bd46923cc8936062c25be10f5bc191a
parent21e02a3e05cfd3994ca598a5c9c2e1795007b603
dmaeninge: xilinx_dma: Fix bug in multiple frame stores scenario in vdma

VDMA engine default frame buffer configuration is cirular mode.
in this mode dmaengine continuously circles through h/w configured fstore
frame buffers.

When vdma h/w is configured for more than one frame.
for example h/w is configured for n number of frames, user
submits less than n number of frames and triggered the dmaengine
using issue_pending API.

since the h/w (or) driver default configuraiton is circular mode
h/w tries to write/read from an invalid frame buffer resulting
errors from the vdma dmaengine.

This patch fixes this issue by enabling the park mode as
default mode configuration for frame buffers in s/w,
so that driver can handle all cases for "k" frames where n%k==0
(n is a multiple of k) by simply replicating the frame pointers.

Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/xilinx/xilinx_dma.c