]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit178d6b96f363077d9fc64099b2795e7c23b9d211
tree3e3da8707bd46923cc8936062c25be10f5bc191a
parent747f375c3ea06d9847095cfc008ff5970018e195
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