aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/davinci
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/davinci')
-rw-r--r--sound/soc/davinci/davinci-mcasp.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index 9454d123f4bb..196158f2d1c4 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -529,8 +529,19 @@ static int mcasp_common_hw_param(struct davinci_mcasp *mcasp, int stream,
529 /* AFIFO is not in use */ 529 /* AFIFO is not in use */
530 if (!numevt) { 530 if (!numevt) {
531 /* Configure the burst size for platform drivers */ 531 /* Configure the burst size for platform drivers */
532 dma_params->fifo_level = 0; 532 if (active_serializers > 1) {
533 dma_data->maxburst = 0; 533 /*
534 * If more than one serializers are in use we have one
535 * DMA request to provide data for all serializers.
536 * For example if three serializers are enabled the DMA
537 * need to transfer three words per DMA request.
538 */
539 dma_params->fifo_level = active_serializers;
540 dma_data->maxburst = active_serializers;
541 } else {
542 dma_params->fifo_level = 0;
543 dma_data->maxburst = 0;
544 }
534 return 0; 545 return 0;
535 } 546 }
536 547
@@ -558,6 +569,8 @@ static int mcasp_common_hw_param(struct davinci_mcasp *mcasp, int stream,
558 mcasp_mod_bits(mcasp, reg, NUMEVT(numevt), NUMEVT_MASK); 569 mcasp_mod_bits(mcasp, reg, NUMEVT(numevt), NUMEVT_MASK);
559 570
560 /* Configure the burst size for platform drivers */ 571 /* Configure the burst size for platform drivers */
572 if (numevt == 1)
573 numevt = 0;
561 dma_params->fifo_level = numevt; 574 dma_params->fifo_level = numevt;
562 dma_data->maxburst = numevt; 575 dma_data->maxburst = numevt;
563 576