/* AFIFO is not in use */
if (!numevt) {
/* Configure the burst size for platform drivers */
- dma_params->fifo_level = 0;
- dma_data->maxburst = 0;
+ if (active_serializers > 1) {
+ /*
+ * If more than one serializers are in use we have one
+ * DMA request to provide data for all serializers.
+ * For example if three serializers are enabled the DMA
+ * need to transfer three words per DMA request.
+ */
+ dma_params->fifo_level = active_serializers;
+ dma_data->maxburst = active_serializers;
+ } else {
+ dma_params->fifo_level = 0;
+ dma_data->maxburst = 0;
+ }
return 0;
}
mcasp_mod_bits(mcasp, reg, NUMEVT(numevt), NUMEVT_MASK);
/* Configure the burst size for platform drivers */
+ if (numevt == 1)
+ numevt = 0;
dma_params->fifo_level = numevt;
dma_data->maxburst = numevt;