1. 11 8月, 2012 1 次提交
    • C
      ARM: 7486/1: sched_clock: update epoch_cyc on resume · 237ec6f2
      Colin Cross 提交于
      Many clocks that are used to provide sched_clock will reset during
      suspend.  If read_sched_clock returns 0 after suspend, sched_clock will
      appear to jump forward.  This patch resets cd.epoch_cyc to the current
      value of read_sched_clock during resume, which causes sched_clock() just
      after suspend to return the same value as sched_clock() just before
      suspend.
      
      In addition, during the window where epoch_ns has been updated before
      suspend, but epoch_cyc has not been updated after suspend, it is unknown
      whether the clock has reset or not, and sched_clock() could return a
      bogus value.  Add a suspended flag, and return the pre-suspend epoch_ns
      value during this period.
      
      The new behavior is triggered by calling setup_sched_clock_needs_suspend
      instead of setup_sched_clock.
      Signed-off-by: NColin Cross <ccross@android.com>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      237ec6f2
  2. 19 12月, 2011 1 次提交
  3. 12 1月, 2011 1 次提交
    • R
      ARM: sched_clock: allow init_sched_clock() to be called early · 211baa70
      Russell King 提交于
      sched_clock is supposed to be initialized early - in the recently added
      init_early platform hook.  However, in doing so we end up calling
      mod_timer() before the timer lists are initialized, resulting in an
      oops.
      
      Split the initialization in two - the part which the platform calls
      early which starts things off.  The addition of the timer can be
      delayed until after we have more of the kernel initialized - when the
      normal time sources are initialized.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      211baa70
  4. 23 12月, 2010 1 次提交