linux/arch/arm/plat-omap
Artem Bityutskiy ee894b18e0 OMAP3: PM: introduce a new powerdomain walk helper
The 'pwrdm_for_each()' function walks powerdomains with a spinlock
locked, so the the callbacks cannot do anything which may sleep.
This patch introduces a 'pwrdm_for_each_nolock()' helper which does
the same, but without the spinlock locked. This fixes the following
lockdep warning:

[    0.000000] WARNING: at kernel/lockdep.c:2460 lockdep_trace_alloc+0xac/0xec()
[    0.000000] Modules linked in:
(unwind_backtrace+0x0/0xdc) from [<c0045464>] (warn_slowpath_common+0x48/0x60)
(warn_slowpath_common+0x48/0x60) from [<c0067dd4>] (lockdep_trace_alloc+0xac/0xec)
(lockdep_trace_alloc+0xac/0xec) from [<c009da14>] (kmem_cache_alloc+0x1c/0xd0)
(kmem_cache_alloc+0x1c/0xd0) from [<c00b21d8>] (d_alloc+0x1c/0x1a4)
(d_alloc+0x1c/0x1a4) from [<c00a887c>] (__lookup_hash+0xd8/0x118)
(__lookup_hash+0xd8/0x118) from [<c00a9f20>] (lookup_one_len+0x84/0x94)
(lookup_one_len+0x84/0x94) from [<c010d12c>] (debugfs_create_file+0x8c/0x20c)
(debugfs_create_file+0x8c/0x20c) from [<c010d320>] (debugfs_create_dir+0x1c/0x20)
(debugfs_create_dir+0x1c/0x20) from [<c000e8cc>] (pwrdms_setup+0x60/0x90)
(pwrdms_setup+0x60/0x90) from [<c002e010>] (pwrdm_for_each+0x30/0x80)
(pwrdm_for_each+0x30/0x80) from [<c000e79c>] (pm_dbg_init+0x7c/0x14c)
(pm_dbg_init+0x7c/0x14c) from [<c00232b4>] (do_one_initcall+0x5c/0x1b8)
(do_one_initcall+0x5c/0x1b8) from [<c00083f8>] (kernel_init+0x90/0x10c)
(kernel_init+0x90/0x10c) from [<c00242c4>] (kernel_thread_exit+0x0/0x8)

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
2009-10-05 10:51:00 -07:00
..
include/mach OMAP3: PM: introduce a new powerdomain walk helper 2009-10-05 10:51:00 -07:00
clock.c OMAP clock: use debugfs_remove_recursive() for rewinding 2009-09-03 20:14:06 +03:00
common.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-09-18 09:19:26 -07:00
cpu-omap.c OMAP: PM: CPUfreq: obey min/max settings of policy 2009-08-05 09:10:54 -07:00
debug-devices.c
debug-leds.c ARM: Rework omap suspend_late()/resume_early() 2009-07-22 00:28:38 +02:00
devices.c ARM: OMAP4: Add minimal support for omap4 2009-05-28 14:16:04 -07:00
dma.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-09-18 09:19:26 -07:00
dmtimer.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
fb.c ARM: OMAP: Fix printing of reserved memory for frambuffer 2009-05-11 09:58:19 -07:00
gpio.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-09-18 09:19:26 -07:00
i2c.c ARM: OMAP: Update contact address of I2C registration helper 2009-05-25 11:08:43 -07:00
io.c OMAP: Remove ifdefs for io.h 2009-08-28 10:50:37 -07:00
iommu-debug.c OMAP: iommu: add initial debugfs support 2009-08-28 10:54:41 -07:00
iommu.c OMAP: iommu: add initial debugfs support 2009-08-28 10:54:41 -07:00
iopgtable.h
iovmm.c OMAP: iommu: fix wrong argument in flush_cache_vmap() 2009-08-28 10:54:40 -07:00
Kconfig OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer 2009-09-03 20:14:01 +03:00
mailbox.c
Makefile OMAP2/3/4 core: create omap_device layer 2009-09-03 20:14:05 +03:00
mcbsp.c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-09-14 17:48:14 -07:00
mux.c ARM: OMAP4: Add minimal support for omap4 2009-05-28 14:16:04 -07:00
ocpi.c
omap_device.c OMAP2/3/4 core: create omap_device layer 2009-09-03 20:14:05 +03:00
omap-pm-noop.c OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer 2009-09-03 20:14:01 +03:00
sram.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
usb.c