ASoC: DaVinci: Fix McASP hardware FIFO configuration

On DA830/OMAP-L137 and DA850/OMAP-L138 SoCs, the McASP peripheral
has FIFO support. This FIFO provides additional data buffering. It
also provides tolerance to variation in host/DMA controller response
times. More details of the FIFO operation can be found at

http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sprufm1&fileType=pdf

Existing sequence of steps for audio playback/capture are:
a. DMA configuration
b. McASP configuration (configures and enables FIFO)
c. Start DMA
d. Start McASP (enables FIFO)

During McASP configuration, while FIFO was being configured, FIFO
was being enabled in davinci_hw_common_param() function of
sound/soc/davinci/davinci-mcasp.c file. This generated a transmit
DMA event, which gets serviced when DMA is started.

https://patchwork.kernel.org/patch/84611/ patch clears the DMA
events before starting DMA, which is the right thing to do. But
this resulted in a state where DMA was waiting for an event from
McASP (after step c above), but the event which was already there,
has got cleared (because of step b above).

The fix is not to enable the FIFO during McASP configuration as
FIFO was being enabled as part of McASP start.

Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

authored by Sudhakar Rajashekhara and committed by Mark Brown 5b61ea49 e854df61

-2
-2
sound/soc/davinci/davinci-mcasp.c
··· 612 NUMDMA_MASK); 613 mcasp_mod_bits(dev->base + DAVINCI_MCASP_WFIFOCTL, 614 ((dev->txnumevt * tx_ser) << 8), NUMEVT_MASK); 615 - mcasp_set_bits(dev->base + DAVINCI_MCASP_WFIFOCTL, FIFO_ENABLE); 616 } 617 618 if (dev->rxnumevt && stream == SNDRV_PCM_STREAM_CAPTURE) { ··· 622 NUMDMA_MASK); 623 mcasp_mod_bits(dev->base + DAVINCI_MCASP_RFIFOCTL, 624 ((dev->rxnumevt * rx_ser) << 8), NUMEVT_MASK); 625 - mcasp_set_bits(dev->base + DAVINCI_MCASP_RFIFOCTL, FIFO_ENABLE); 626 } 627 } 628
··· 612 NUMDMA_MASK); 613 mcasp_mod_bits(dev->base + DAVINCI_MCASP_WFIFOCTL, 614 ((dev->txnumevt * tx_ser) << 8), NUMEVT_MASK); 615 } 616 617 if (dev->rxnumevt && stream == SNDRV_PCM_STREAM_CAPTURE) { ··· 623 NUMDMA_MASK); 624 mcasp_mod_bits(dev->base + DAVINCI_MCASP_RFIFOCTL, 625 ((dev->rxnumevt * rx_ser) << 8), NUMEVT_MASK); 626 } 627 } 628