[RFC] dmaengine: omap-dma: Allow DMA controller to prefetch data
Mark A. Greer
mgreer at animalcreek.com
Thu Oct 18 19:50:27 EDT 2012
On Fri, Oct 19, 2012 at 12:33:35AM +0100, Russell King - ARM Linux wrote:
> On Thu, Oct 18, 2012 at 04:24:05PM -0700, Mark A. Greer wrote:
> > On Thu, Oct 18, 2012 at 11:55:40PM +0100, Russell King - ARM Linux wrote:
> > > On Thu, Oct 18, 2012 at 03:20:46PM -0700, Mark A. Greer wrote:
> > > > This patch seems fairly stable but I've only tested omap-sham (crypto)
> > > > and omap_hsmmc (mmc) on an am37x EVM. I also enabled burst mode but
> > > > that made the system unstable when exercising either omap-sham or
> > > > omap_hsmmc. I'm unaware of any errata that would make this an unwanted
> > > > modification but I haven't checked all of the SoCs. Are there other
> > > > reasons that this should be applied??
> > >
> > > It definitely needs checking with audio, because it will affect the
> > > pointer position in relation to audio output, and it will have an
> > > effect on how much audio data is lost over a pause/resume event.
> > >
> > > Unfortunately, the OMAP DMA hardware has no way to do a proper "pause",
> > > it can only do a "stop" which involves dumping its FIFOs on the floor
> > > in the case of anything but a DEV->MEM transfer. So the more data
> > > held in the DMA hardware, the more is lost on pause.
> >
> > Hmm, interesting.
> >
> > Is there a way to tweak DMA params like this on a per logical channel
> > basis using the dmaengine API? I don't see any but I could have missed it.
> >
> > If not, are you open to adding such a thing (e.g., extend 'enum dma_ctrl_flags'
> > with DMA_ENABL_PREFETCH)?
>
> I would suggest getting some feedback from the ASoC people first, before
> trying to invent new APIs to work around this stuff. If they can live
> with having prefetch enabled on OMAP then there isn't an issue here. If
> not, we need a solution to this.
>
> I do not believe that precisely stopping and starting playback across a
> suspend/resume event is really necessary (it's desirable but the world
> doesn't collapse if you miss a few samples.) It could be more of an
> issue for pause/resume though, but as I say, that's for ASoC people to
> comment on.
>
> I'm merely pointing out here that we need their feedback here before
> deciding if there's anything further that needs to happen.
Thanks, I will do that.
More information about the linux-arm-kernel
mailing list