[PATCH v4 0/4] OMAP: DMA: mstandby mode and runtime pm support

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Apr 28 09:56:35 EDT 2011


On Tue, Apr 19, 2011 at 04:05:17AM -0700, Tony Lindgren wrote:
> * G, Manjunath Kondaiah <manjugk at ti.com> [110328 07:29]:
> > 
> > G, Manjunath Kondaiah (4):
> >   OMAP2+: PM: omap device: API's for handling mstandby mode
> >   OMAP2+: DMA: prevent races while setting M idle mode to nostandby
> >   OMAP: PM: DMA: Enable runtime pm
> >   OMAP: DMA: Fix: context restore during off mode
> > 
> >  arch/arm/mach-omap1/dma.c                     |    1 +
> >  arch/arm/mach-omap2/dma.c                     |   16 ++
> >  arch/arm/mach-omap2/omap_hwmod.c              |   42 ++++++
> >  arch/arm/plat-omap/dma.c                      |  196 +++++++++++++++++++++----
> >  arch/arm/plat-omap/include/plat/dma.h         |    1 +
> >  arch/arm/plat-omap/include/plat/omap_device.h |    2 +
> >  arch/arm/plat-omap/include/plat/omap_hwmod.h  |    4 +-
> >  arch/arm/plat-omap/omap_device.c              |   62 ++++++++
> >  8 files changed, 291 insertions(+), 33 deletions(-)
> 
> With the DMA code too we need to do the cleanup to move it
> to drivers/dma before adding new features.

It also needs to conform to the DMA engine API, which is not well
documented.  The points to watch out for are:

1. it passes lockdep.
2. drivers _can_ submit new slave transactions during a previous slave
   transaction callback.
3. callbacks must be made from tasklet context.
4. terminating a transaction dma dma_terminate_all() should not call any
   callbacks (as they may submit new transactions, causing DMA to restart.)

I think that's about it, but there may be more.



More information about the linux-arm-kernel mailing list