> -----Original Message----- > From: linux-omap-owner@xxxxxxxxxxxxxxx > [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of > Shilimkar, Santosh > Sent: Friday, October 01, 2010 8:35 PM > To: Peter Ujfalusi; Tony Lindgren > Cc: linux-omap@xxxxxxxxxxxxxxx; Jarkko Nikula; Liam Girdwood > Subject: RE: [PATCH v3 2/2] OMAP3: DMA: Errata: sDMA FIFO > draining does not finish > > > -----Original Message----- > > From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap- > > owner@xxxxxxxxxxxxxxx] On Behalf Of Peter Ujfalusi > > Sent: Friday, October 01, 2010 6:06 PM > > To: Tony Lindgren > > Cc: linux-omap@xxxxxxxxxxxxxxx; Jarkko Nikula; Liam Girdwood > > Subject: [PATCH v3 2/2] OMAP3: DMA: Errata: sDMA FIFO draining does > > not finish > > > > Implement the suggested workaround for OMAP3 regarding to sDMA > > draining issue, when the channel is disabled on the fly. > > This errata affects the following configuration: > > sDMA transfer is source synchronized > > Buffering is enabled > > SmartStandby is selected. > > > > The issue can be easily reproduced by creating overrun > situation while > > recording audio. > > Either introduce load to the CPU: > > nice -19 arecord -D hw:0 -M -B 10000 -F 5000 -f dat > > /dev/null & \ dd > > if=/dev/urandom of=/dev/null > > > > or suspending the arecord, and resuming it: > > arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null > > CTRL+Z; fg; CTRL+Z; fg; ... > > > > In case of overrun audio stops DMA, and restarts it > (without reseting > > the sDMA channel). When we hit this errata in stop case (sDMA drain > > did not complete), at the coming start the sDMA will not > going to be > > operational (it is still draining). > > This leads to DMA stall condition. > > On OMAP3 we can recover with sDMA channel reset, it has > been observed > > that by introducing unrelated sDMA activity might also help > (reading > > from MMC for example). > > > Just fyi, FIFO drain errata is not applicable for OMAP4 SDMA > IP version. > Patch looks good to me. > > > The same errata exists for OMAP2, where the suggestion is > to disable > > the buffering to avoid this type of error. > > On OMAP3 the suggestion is to set sDMA to NoStandby before > disabling > > the channel, and wait for the drain to finish, than > configure sDMA to > > SmartStandby again. > > > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxx> > > Acked-by: Jarkko Nikula <jhnikula@xxxxxxxxx> > > Acked-by : Santosh Shilimkar <santosh.shilimkar@xxxxxx> I can rebase this patch on top of dma hwmod changes. Acked-by : G, Manjunath Kondaiah <manjugk@xxxxxx> -Manjunath -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html