1. 27 8月, 2014 1 次提交
  2. 09 8月, 2014 1 次提交
    • T
      ARM: EXYNOS: Fix suspend/resume sequences · 01601b34
      Tomasz Figa 提交于
      Due to recent consolidation of Exynos suspend and cpuidle code, some
      parts of suspend and resume sequences are executed two times, once from
      exynos_pm_syscore_ops and then from exynos_cpu_pm_notifier() and thus it
      breaks suspend, at least on Exynos4-based boards. In addition, simple
      core power down from a cpuidle driver could, in case of CPU 0 could
      result in calling functions that are specific to suspend and deeper idle
      states.
      
      This patch fixes the issue by moving those operations outside the CPU PM
      notifier into suspend and AFTR code paths. This leads to a bit of code
      duplication, but allows additional code simplification, so in the end
      more code is removed than added.
      
      Fixes: 85f9f908 ("ARM: EXYNOS: Use the cpu_pm notifier for pm")
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: arm@kernel.org
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      [b.zolnierkie: ported patch over current changes]
      [b.zolnierkie: fixed exynos_aftr_finisher() return value]
      Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      01601b34
  3. 07 8月, 2014 4 次提交
  4. 05 8月, 2014 1 次提交
  5. 29 7月, 2014 4 次提交
  6. 28 7月, 2014 1 次提交
  7. 24 7月, 2014 3 次提交
  8. 20 7月, 2014 1 次提交
  9. 19 7月, 2014 3 次提交
  10. 09 7月, 2014 1 次提交
  11. 19 6月, 2014 2 次提交
  12. 11 6月, 2014 1 次提交
  13. 05 6月, 2014 1 次提交
  14. 28 5月, 2014 1 次提交
    • P
      cpuidle: cpuidle-cps: add MIPS CPS cpuidle driver · d0508944
      Paul Burton 提交于
      This patch adds a cpuidle driver for systems based around the MIPS
      Coherent Processing System (CPS) architecture. It supports four idle
      states:
      
        - The standard MIPS wait instruction.
      
        - The non-coherent wait, clock gated & power gated states exposed by
          the recently added pm-cps layer.
      
      The pm-cps layer is used to enter all the deep idle states. Since cores
      in the clock or power gated states cannot service interrupts, the
      gic_send_ipi_single function is modified to send a power up command for
      the appropriate core to the CPC in cases where the target CPU has marked
      itself potentially incoherent.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      d0508944
  15. 26 5月, 2014 1 次提交
  16. 09 5月, 2014 1 次提交
  17. 07 5月, 2014 1 次提交
  18. 01 5月, 2014 3 次提交
  19. 30 4月, 2014 1 次提交
  20. 18 4月, 2014 1 次提交
  21. 08 4月, 2014 1 次提交
  22. 12 3月, 2014 1 次提交
    • P
      cpuidle: delay enabling interrupts until all coupled CPUs leave idle · 0b89e9aa
      Paul Burton 提交于
      As described by a comment at the end of cpuidle_enter_state_coupled it
      can be inefficient for coupled idle states to return with IRQs enabled
      since they may proceed to service an interrupt instead of clearing the
      coupled idle state. Until they have finished & cleared the idle state
      all CPUs coupled with them will spin rather than being able to enter a
      safe idle state.
      
      Commits e1689795 "cpuidle: Add common time keeping and irq
      enabling" and 554c06ba "cpuidle: remove en_core_tk_irqen flag" led
      to the cpuidle_enter_state enabling interrupts for all idle states,
      including coupled ones, making this inefficiency unavoidable by drivers
      & the local_irq_enable near the end of cpuidle_enter_state_coupled
      redundant. This patch avoids enabling interrupts in cpuidle_enter_state
      after a coupled state has been entered, allowing them to remain disabled
      until all coupled CPUs have exited the idle state and
      cpuidle_enter_state_coupled re-enables them.
      
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0b89e9aa
  23. 11 3月, 2014 2 次提交
  24. 07 3月, 2014 1 次提交
  25. 06 3月, 2014 2 次提交
    • T
      cpuidle: Move perf multiplier calculation out of the selection loop · 96e95182
      tuukka.tikkanen@linaro.org 提交于
      The menu governor performance multiplier defines a minimum predicted
      idle duration to latency ratio. Instead of checking this separately
      in every iteration of the state selection loop, adjust the overall
      latency restriction for the whole loop if this restriction is tighter
      than what is set by the QoS subsystem.
      
      The original test
      s->exit_latency * multiplier > data->predicted_us
      becomes
      s->exit_latency > data->predicted_us / multiplier
      by dividing both sides of the comparison by "multiplier".
      
      While division is likely to be several times slower than multiplication,
      the minor performance hit allows making a generic sleep state selection
      function based on (sleep duration, maximum latency) tuple.
      Signed-off-by: NTuukka Tikkanen <tuukka.tikkanen@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      96e95182
    • T
      cpuidle: Do not substract exit latency from assumed sleep length · 61c66d6e
      tuukka.tikkanen@linaro.org 提交于
      The menu governor statistics update function tries to determine the
      amount of time between entry to low power state and the occurrence
      of the wakeup event. However, the time measured by the framework
      includes exit latency on top of the desired value. This exit latency
      is substracted from the measured value to obtain the desired value.
      
      When measured value is not available, the menu governor assumes
      the wakeup was caused by the timer and the time is equal to remaining
      timer length. No exit latency should be substracted from this value.
      
      This patch prevents the erroneous substraction and clarifies the
      associated comment. It also removes one intermediate variable that
      serves no purpose.
      Signed-off-by: NTuukka Tikkanen <tuukka.tikkanen@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      61c66d6e