1. 15 9月, 2011 2 次提交
    • P
      OMAP: powerdomain: remove omap_chip bitmasks · 8179488a
      Paul Walmsley 提交于
      At Tony's request, remove the omap_chip bitmasks from the powerdomain
      definitions.  Instead, initialize powerdomains based on one or more
      lists that are applicable to a particular SoC family, variant, and
      silicon revision.
      
      Gražvydas Ignotas <notasas@gmail.com> found and reported a bug in a
      related patch that also applied to this patch - thanks Gražvydas.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Gražvydas Ignotas <notasas@gmail.com>
      8179488a
    • P
      OMAP: powerdomain: split pwrdm_init() into two functions · 129c65ee
      Paul Walmsley 提交于
      In preparation for OMAP_CHIP() removal, split pwrdm_init() into three
      functions.  This allows some of them to be called multiple times: for
      example, pwrdm_register_pwrdms() can be called once to register
      powerdomains that are common to a group of SoCs, and once to register
      powerdomains that are specific to a single SoC.
      
      The appropriate order to call these functions - which is enforced
      by the code - is:
      
      1. pwrdm_register_platform_funcs()
      2. pwrdm_register_pwrdms() (can be called multiple times)
      3. pwrdm_complete_init()
      
      Convert the OMAP2, 3, and 4 powerdomain init code to use these new
      functions.
      
      While here, improve documentation, and increase CodingStyle
      conformance by shortening some local variable names.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      129c65ee
  2. 20 8月, 2011 1 次提交
  3. 31 3月, 2011 1 次提交
  4. 11 3月, 2011 1 次提交
    • J
      perf: add OMAP support for the new power events · 5e7c58dc
      Jean Pihet 提交于
      The patch adds the new power management trace points for
      the OMAP architecture.
      
      The trace points are for:
      - default idle handler. Since the cpuidle framework is
        instrumented in the generic way there is no need to
        add trace points in the OMAP specific cpuidle handler;
      - SoC clocks changes (enable, disable, set_rate),
      - power domain states: the desired target state and -if different-
        the actually hit state.
      
      Because of the generic nature of the changes, OMAP3 and OMAP4 are supported.
      
      Tested on OMAP3 with suspend/resume, cpuidle, basic DVFS.
      Signed-off-by: NJean Pihet <j-pihet@ti.com>
      Acked-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      5e7c58dc
  5. 08 3月, 2011 1 次提交
    • P
      OMAP2+: powerdomain: add pwrdm_can_ever_lose_context() · 694606c4
      Paul Walmsley 提交于
      Some drivers wish to know whether the device that they control can
      ever lose context, for example, when the device's enclosing
      powerdomain loses power.  They can use this information to determine
      whether it is necessary to save and restore device context, or whether
      it can be skipped.  Implement the powerdomain portion of this by
      adding the function pwrdm_can_ever_lose_context().  This is not for
      use directly from driver code, but instead is intended to be called
      from driver-subarch integration code (i.e., arch/arm/*omap* code).
      
      Currently, the result from this function should be passed into the
      driver code via struct platform_data, but at some point this should
      be part of some common or OMAP-specific device code.
      
      While here, update file copyrights.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      694606c4
  6. 22 12月, 2010 10 次提交
  7. 03 8月, 2010 1 次提交
  8. 21 5月, 2010 4 次提交
  9. 31 3月, 2010 1 次提交
  10. 25 2月, 2010 2 次提交
  11. 27 1月, 2010 7 次提交
  12. 12 12月, 2009 5 次提交
  13. 21 10月, 2009 1 次提交
    • T
      omap: headers: Move remaining headers from include/mach to include/plat · ce491cf8
      Tony Lindgren 提交于
      Move the remaining headers under plat-omap/include/mach
      to plat-omap/include/plat. Also search and replace the
      files using these headers to include using the right path.
      
      This was done with:
      
      #!/bin/bash
      mach_dir_old="arch/arm/plat-omap/include/mach"
      plat_dir_new="arch/arm/plat-omap/include/plat"
      headers=$(cd $mach_dir_old && ls *.h)
      omap_dirs="arch/arm/*omap*/ \
      drivers/video/omap \
      sound/soc/omap"
      other_files="drivers/leds/leds-ams-delta.c \
      drivers/mfd/menelaus.c \
      drivers/mfd/twl4030-core.c \
      drivers/mtd/nand/ams-delta.c"
      
      for header in $headers; do
      	old="#include <mach\/$header"
      	new="#include <plat\/$header"
      	for dir in $omap_dirs; do
      		find $dir -type f -name \*.[chS] | \
      			xargs sed -i "s/$old/$new/"
      	done
      	find drivers/ -type f -name \*omap*.[chS] | \
      		xargs sed -i "s/$old/$new/"
      	for file in $other_files; do
      		sed -i "s/$old/$new/" $file
      	done
      done
      
      for header in $(ls $mach_dir_old/*.h); do
      	git mv $header $plat_dir_new/
      done
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      ce491cf8
  14. 06 10月, 2009 1 次提交
    • A
      OMAP3: PM: introduce a new powerdomain walk helper · ee894b18
      Artem Bityutskiy 提交于
      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: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      ee894b18
  15. 04 9月, 2009 1 次提交
    • P
      OMAP: powerdomain: Fix overflow when doing powerdomain deps lookups. · 5d113262
      Paul Walmsley 提交于
      At the end of the list pd is a pointer to a NULL struct, so checking
      if the address == NULL doesn't help here. In fact the original code
      will just keep running past the struct to read who knows what in
      memory.
      
      This case manifests itself when from clkdms_setup() when enabling auto
      idle for a clock domain and the clockdomain usecount is greater than
      0. When _clkdm_add_autodeps() tries to add the a dependency that does
      not exist in the powerdomain->wkdep_srcs array the for loop will run
      past the wkdep_srcs array.
      
      Currently in linux-omap you won't hit this because the not found case
      is never executed, unless you start modifying powerdomains and their
      wakeup/sleep deps.
      Signed-off-by: NMike Chan <mike@android.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      5d113262
  16. 03 9月, 2009 1 次提交