If a new vb buf is added to vb queue, the queue is
empty and steaming, dma should be started.
Signed-off-by: Songjun Wu <songjun.wu@microchip.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
        unsigned long flags;
 
        spin_lock_irqsave(&isc->dma_queue_lock, flags);
-       list_add_tail(&buf->list, &isc->dma_queue);
+       if (!isc->cur_frm && list_empty(&isc->dma_queue) &&
+               vb2_is_streaming(vb->vb2_queue)) {
+               isc->cur_frm = buf;
+               isc_start_dma(isc->regmap, isc->cur_frm,
+                       isc->current_fmt->reg_dctrl_dview);
+       } else
+               list_add_tail(&buf->list, &isc->dma_queue);
        spin_unlock_irqrestore(&isc->dma_queue_lock, flags);
 }