[alsa-devel] [PATCH] ASoC: DaVinci: Fix McASP hardware FIFO configuration

Liam Girdwood lrg at slimlogic.co.uk
Mon Jun 14 15:43:35 CEST 2010

On Mon, 2010-06-14 at 11:44 +0530, Sudhakar Rajashekhara wrote:
> 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 at ti.com>

Acked-by: Liam Girdwood <lrg at slimlogic.co.uk>

Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.

More information about the Alsa-devel mailing list