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

G, Manjunath Kondaiah manjugk at ti.com
Thu Mar 3 23:18:26 EST 2011


On Thu, Mar 03, 2011 at 10:35:23AM -0800, Kevin Hilman wrote:
> "G, Manjunath Kondaiah" <manjugk at ti.com> writes:
> 
> > This patch series is remaining part of dma hwmod to support pm runtime 
> > and for handling mstandby mode for all applicable DMA mstandby mode errata.
> 
> This is still not runtime-suspending when I use my DMA test in linking
> mode.
> 
> If I put a large enough period between transfers, it should autosuspend
> during transfers.  It seems to do auto-suspend and resume once, but then
> it never suspends again.
> 
> I tested with my dmatest module[1], and loaded with:
> 
>   # insmod ./dmatest.ko linking=1 forever=1 forever_period=1024
> 
> Not only does it not auto-suspend between transfers (which I expected),
> it also doesn't suspend after removing the module which stops all active
> channels.

The normal chaining test cases are executed and which used to show the
proper status. Let me reproduce this issue with your test procedure.


> > The alignment for handling mstandby mode errata handling is at:
> > http://thread.gmane.org/gmane.linux.ports.arm.omap/47398/focus=47426
> > http://thread.gmane.org/gmane.linux.ports.arm.omap/47479/focus=47537
> >
> > Testing:
> > Compile tested for
> >  - omap1_defconfig
> >  - omap2plus_defconfig
> >
> > Boot test on:
> >  - OMAP1710-H3
> >  - OMAP2420-H4
> >  - OMAP3430-LDP
Sorry. It's OMAP3430 Zoom2 and not LDP.

-Manjunath

> >  - OMAP3630-Zoom3
> >  - OMAP4430-Blaze
> >
> > DMA memory to memory test cases(including chaining) are executed for
> > all the above boards and for each test case, 
> > /sys/devices/platform/omap/omap_dma_system.0/power/runtime_status
> > was verified and after completion of the tests, runtime_status will be 
> > always suspended.
> >
> > Apart from that, offmode testing is done for OMAP3430-LDP using the procedure:
> > echo 1 > /debug/pm_debug/sleep_while_idle
> > echo 1 > /debug/pm_debug/enable_off_mode
> > echo 5 > /sys/devices/platform/omap/omap_uart.0/sleep_timeout
> > echo 5 > /sys/devices/platform/omap/omap_uart.1/sleep_timeout
> > echo 5 > /sys/devices/platform/omap/omap_uart.2/sleep_timeout
> >
> > With the above steps, core off mode count gets increasing if the the board
> > is idle for more than 5 seconds.
> >
> > Baseline:
> > Applies cleanly on top of mainline 2.6.38-rc6:
> > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
> > commit f5412be599602124d2bdd49947b231dd77c0bf99
> > Author: Linus Torvalds <torvalds at linux-foundation.org>
> > Date:   Mon Feb 21 17:25:52 2011 -0800
> >
> >     Linux 2.6.38-rc6
> >
> > Note: OMAP1 is tested on top of 2.6.38-rc5 since rc6 is broken for omap1 build
> >
> > Patch Summary:
> > ==============
> > G, Manjunath Kondaiah (2):
> >   OMAP2+: PM: omap device: API's for handling mstandby mode
> >   OMAP2+: DMA: prevent races while setting M idle mode to nostandby
> >
> > Manjunath G Kondaiah (1):
> >   OMAP: PM: DMA: Enable runtime pm
> >
> >  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                      |  190 +++++++++++++++++++++----
> >  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              |   64 +++++++++
> >  8 files changed, 293 insertions(+), 27 deletions(-)



More information about the linux-arm-kernel mailing list