1. 23 10月, 2012 1 次提交
    • P
      ARM: OMAP3: PM: apply part of the erratum i582 workaround · 856c3c5b
      Paul Walmsley 提交于
      On OMAP34xx/35xx, and OMAP36xx chips with ES < 1.2, if the PER
      powerdomain goes to OSWR or OFF while CORE stays at CSWR or ON, or if,
      upon chip wakeup from OSWR or OFF, the CORE powerdomain goes ON before
      PER, the UART3/4 FIFOs and McBSP2/3 SIDETONE memories will be
      unusable.  This is erratum i582 in the OMAP36xx Silicon Errata
      document.
      
      This patch implements one of several parts of the workaround: the
      addition of the wakeup dependency between the PER and WKUP
      clockdomains, such that PER will wake up at the same time CORE_L3
      does.
      
      This is not a complete workaround.  For it to be complete:
      
      1. the PER powerdomain's next power state must not be set to OSWR or
         OFF if the CORE powerdomain's next power state is set to CSWR or
         ON;
      
      2. the UART3/4 FIFO and McBSP2/3 SIDETONE loopback tests should be run
         if the LASTPOWERSTATEENTERED bits for PER and CORE indicate that
         PER went OFF while CORE stayed on.  If loopback tests fail, then
         those devices will be unusable until PER and CORE can undergo a
         transition from ON to OSWR/OFF and back ON.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      856c3c5b
  2. 20 6月, 2012 1 次提交
    • D
      ARM: OMAP3/4: consolidate cpuidle Makefile · 164e0cbf
      Daniel Lezcano 提交于
      The current Makefile compiles the cpuidle34xx.c and cpuidle44xx.c files
      even if the cpuidle option is not set in the kernel.
      
      This patch fixes this by creating a section in the Makefile where these
      files are compiled only if the CONFIG_CPU_IDLE option is set.
      
      This modification breaks an implicit dependency between CPU_IDLE and PM as
      they belong to the same block in the Makefile. This is fixed in the Kconfig
      by selecting explicitely PM is CPU_IDLE is set.
      
      The linux coding style recommend to use no-op functions in the headers
      when the subsystem is disabled instead of adding big section in C files.
      
      This patch fix this also.
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Reviewed-by: NJean Pihet <j-pihet@ti.com>
      Reviewed-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      164e0cbf
  3. 01 6月, 2012 1 次提交
  4. 04 5月, 2012 2 次提交
  5. 06 3月, 2012 2 次提交
  6. 22 2月, 2012 1 次提交
  7. 09 12月, 2011 1 次提交
    • S
      ARM: OMAP4: PM: Add CPUidle support · 98272660
      Santosh Shilimkar 提交于
      Add OMAP4 CPUIDLE support. CPU1 is left with defualt idle and
      the low power state for it is managed via cpu-hotplug.
      
      This patch adds MPUSS low power states in cpuidle.
      
      	C1 - CPU0 ON + CPU1 ON + MPU ON
      	C2 - CPU0 OFF + CPU1 OFF + MPU CSWR
      	C3 - CPU0 OFF + CPU1 OFF + MPU OSWR
      
      OMAP4460 onwards, MPUSS power domain doesn't support OFF state any more
      anymore just like CORE power domain. The deepest state supported is OSWr.
      Ofcourse when MPUSS and CORE PD transitions to OSWR along with device
      off mode, even the memory contemts are lost which is as good as
      the PD off state.
      
      On OMAP4 because of hardware constraints, no low power states are
      targeted when both CPUs are online and in SMP mode. The low power
      states are attempted only when secondary CPU gets offline to OFF
      through hotplug infrastructure.
      
      Thanks to Nicole Chalhoub <n-chalhoub@ti.com> for doing exhaustive
      C-state latency profiling.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NJean Pihet <j-pihet@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      Tested-by: NVishwanath BS <vishwanath.bs@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      98272660
  8. 30 6月, 2011 2 次提交
    • R
      ARM: pm: omap3: move saving of the auxiliary control registers to C · cbe26349
      Russell King 提交于
      Move the saving of the auxiliary control registers into C; there's
      no need for this to be in assembly code.  This results in less
      assembly code to deal with in OMAP.
      
      Kevin tested full-chip retention and off on 3430/n900, 3530/Overo and
      3630/Zoom3.
      Tested-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      cbe26349
    • J
      ARM: pm: omap3: run the ASM sleep code from DDR · 46e130d2
      Jean Pihet 提交于
      Most of the ASM sleep code (in arch/arm/mach-omap2/sleep34xx.S)
      is copied to internal SRAM at boot and after wake-up from CORE OFF
      mode.  However only a small part of the code really needs to run from
      internal SRAM.
      
      This fix lets most of the ASM idle code run from the DDR in order to
      minimize the SRAM usage and the overhead in the code copy.
      
      The only pieces of code that are mandatory in SRAM are:
      - the i443 erratum WA,
      - the i581 erratum WA,
      - the security extension code.
      
      SRAM usage:
      - original code:
        . 560 bytes for omap3_sram_configure_core_dpll (used by DVFS),
        . 852 bytes for omap_sram_idle (used by suspend/resume in RETention),
        . 124 bytes for es3_sdrc_fix (used by suspend/resume in OFF mode on ES3.x),
        . 108 bytes for save_secure_ram_context (used on HS parts only).
      
      With this fix the usage for suspend/resume in RETention goes down 288
      bytes, so the gain in SRAM usage for suspend/resume is 564 bytes.
      
      Also fixed the SRAM initialization sequence to avoid an unnecessary
      copy to SRAM at boot time and for readability.
      
      Tested on Beagleboard (ES2.x) in idle with full RET and OFF modes.
      
      Kevin Hilman tested retention and off on 3430/n900, 3530/Overo and
      3630/Zoom3
      Signed-off-by: NJean Pihet <j-pihet@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      Tested-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      46e130d2
  9. 28 6月, 2011 1 次提交
  10. 21 6月, 2011 2 次提交
  11. 20 6月, 2011 1 次提交
  12. 20 5月, 2011 2 次提交
  13. 10 3月, 2011 1 次提交
  14. 04 2月, 2011 1 次提交
  15. 23 12月, 2010 3 次提交
  16. 22 12月, 2010 9 次提交
  17. 02 10月, 2010 1 次提交
    • L
      OMAP: PM: Fix build when CONFIG_PM_DEBUG isn't set · ebfa88cf
      Loïc Minier 提交于
      Since 6cdee912 the references to
      enable_off_mode and sleep_while_idle can't be resolved when CONFIG_PM_DEBUG
      isn't set:
      arch/arm/mach-omap2/built-in.o: In function `omap_uart_restore_context':
      arch/arm/mach-omap2/serial.c:253: undefined reference to `enable_off_mode'
      arch/arm/mach-omap2/built-in.o: In function `omap3_can_sleep':
      arch/arm/mach-omap2/pm34xx.c:479: undefined reference to `sleep_while_idle'
      
      Simply #define these in pm.h just like omap2_pm_debug.
      Signed-off-by: NLoïc Minier <loic.minier@linaro.org>
      [khilman: moved down into existing #ifdef section]
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      ebfa88cf
  18. 24 9月, 2010 2 次提交
  19. 13 5月, 2010 1 次提交
  20. 24 2月, 2010 3 次提交
    • K
      OMAP3: cpuidle: Add valid field into C-state parameter passing · 709731bb
      Kalle Jokiniemi 提交于
      Different boards benefit differently from the available
      seven C-states for cpu idle. In most cases, only few,
      properly spaced (in terms of consumption and latency)
      C-states are required to make the power management
      optimal. Hence we need a possibility to pass which
      C-states are actually used for each board.
      
      So added the valid field to cpuidle_params and added
      support to 3430sdp, which uses the paramenter passing.
      Signed-off-by: NKalle Jokiniemi <kalle.jokiniemi@digia.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      709731bb
    • K
      OMAP3: cpuidle: configure latencies/thresholds from board file · bb4de3df
      Kevin Hilman 提交于
      The CPUidle C state latencies and thresholds are dependent on various
      board specific details.  This patch makes it possible to configure
      these values from the respective board files.
      
      omap3_pm_init_cpuidle() can now be optionally called from board files
      to pass board specific cpuidle parameters.  If the board files do not
      use this function to pass the params default values are used which
      might cause higher consumption dur to wrong state selection by the
      governor.
      
      This patch only updates the 3430sdp board files to use
      omap3_pm_init_cpuidle().
      
      From Kalle, in addition to original patch from Rajendra:
      
      Building without CONFIG_CPU_IDLE or CONFIG_PM causes build to fail if
      cpu idle parameters are tried to pass using omap3_pm_init_cpuidle
      function.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NKalle Jokiniemi <kalle.jokiniemi@digia.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      bb4de3df
    • S
      OMAP3: cpuidle: Update statistics for correct state · 6af83b38
      Sanjeev Premi 提交于
      When 'enable_off_mode' is 0, the target power state for MPU
      and CORE was locally changed to PWRDM_POWER_RET but, the
      statistics are updated for idle state originally selected
      by the governor.
      
      This patch 'invalidates' the idle states that lead either of
      MPU or Core to PWRDM_POWER_OFF state when 'enable_off_mode'
      is '0'. The states are valid once 'enable_off_mode' is set
      to '1'.
      
      Added function next_valid_state() to check if current state
      is valid; else get the next valid state. It is called from
      omap3_enter_idle_bm().
      Signed-off-by: NSanjeev Premi <premi@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      6af83b38
  21. 21 1月, 2010 1 次提交
    • M
      OMAP3: PM debug: fix build error when !CONFIG_DEBUG_FS · ae559d87
      Manjunatha GK 提交于
      The PM debug code fails to build on when CONFIG_DEBUG_FS is not
      enabled.
      
      Build error log:
      arch/arm/mach-omap2/built-in.o: In function `omap_sram_idle':
      arch/arm/mach-omap2/pm34xx.c:449: undefined reference to `pm_dbg_regset_save'
      arch/arm/mach-omap2/pm34xx.c:460: undefined reference to `pm_dbg_regset_save'
      arch/arm/mach-omap2/built-in.o: In function `configure_vc':
      arch/arm/mach-omap2/pm34xx.c:1237: undefined reference to `pm_dbg_regset_init'
      arch/arm/mach-omap2/pm34xx.c:1238: undefined reference to `pm_dbg_regset_init'
      make: *** [.tmp_vmlinux1] Error 1
      
      This patch fixes the above errors.
      
      Kernel booting is tested on omap zoom2 and zoom3 boards.
      Signed-off-by: NManjunatha GK <manjugk@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      ae559d87
  22. 12 11月, 2009 1 次提交