• Kedareswara rao Appana's avatar
    dmaeninge: xilinx_dma: Fix bug in multiple frame stores scenario in vdma · fe0503e1
    Kedareswara rao Appana authored
    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: default avatarKedareswara rao Appana <appanad@xilinx.com>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    fe0503e1
xilinx_dma.c 72.4 KB