1. 22 3月, 2014 1 次提交
    • G
      clocksource: CMT, MTU2, TMU and STI should depend on GENERIC_CLOCKEVENTS · 87291a92
      Geert Uytterhoeven 提交于
      If GENERIC_CLOCKEVENTS=n:
      
      drivers/clocksource/sh_cmt.c:54:28: error: field 'ced' has incomplete type
      drivers/clocksource/sh_cmt.c: In function 'sh_cmt_interrupt':
      drivers/clocksource/sh_cmt.c:407:23: error: 'CLOCK_EVT_MODE_ONESHOT' undeclared (first use in this function)
      
      drivers/clocksource/sh_mtu2.c:44:28: error: field 'ced' has incomplete type
      drivers/clocksource/sh_mtu2.c: In function 'ced_to_sh_mtu2':
      drivers/clocksource/sh_mtu2.c:184:70: warning: initialization from incompatible pointer type [enabled by default]
      drivers/clocksource/sh_mtu2.c: At top level:
      drivers/clocksource/sh_mtu2.c:188:16: warning: 'enum clock_event_mode' declared inside parameter list [enabled by default]
      
      drivers/clocksource/sh_tmu.c:45:28: error: field 'ced' has incomplete type
      drivers/clocksource/sh_tmu.c: In function 'sh_tmu_interrupt':
      drivers/clocksource/sh_tmu.c:207:21: error: 'CLOCK_EVT_MODE_ONESHOT' undeclared (first use in this function)
      
      drivers/clocksource/em_sti.c:44:28: error: field 'ced' has incomplete type
      drivers/clocksource/em_sti.c: In function 'ced_to_em_sti':
      drivers/clocksource/em_sti.c:251:69: warning: initialization from incompatible pointer type [enabled by default]
      drivers/clocksource/em_sti.c: At top level:
      drivers/clocksource/em_sti.c:255:16: warning: 'enum clock_event_mode' declared inside parameter list [enabled by default]
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: Magnus Damm <damm@opensource.se>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Link: http://lkml.kernel.org/r/1395324352-9146-1-git-send-email-geert@linux-m68k.orgSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      87291a92
  2. 20 3月, 2014 3 次提交
  3. 12 3月, 2014 17 次提交
  4. 11 3月, 2014 1 次提交
  5. 04 3月, 2014 2 次提交
  6. 03 3月, 2014 1 次提交
  7. 28 2月, 2014 1 次提交
  8. 26 2月, 2014 5 次提交
  9. 15 2月, 2014 2 次提交
  10. 09 2月, 2014 1 次提交
  11. 07 2月, 2014 6 次提交
    • T
      time: Fixup fallout from recent clockevent/tick changes · f1689bb7
      Thomas Gleixner 提交于
      Make the stub function static inline instead of static and move the
      clockevents related function into the proper ifdeffed section.
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Soren Brinkmann <soren.brinkmann@xilinx.com>
      Cc: Preeti U Murthy <preeti@linux.vnet.ibm.com>
      f1689bb7
    • P
      tick: Introduce hrtimer based broadcast · 5d1638ac
      Preeti U Murthy 提交于
      On some architectures, in certain CPU deep idle states the local timers stop.
      An external clock device is used to wakeup these CPUs. The kernel support for the
      wakeup of these CPUs is provided by the tick broadcast framework by using the
      external clock device as the wakeup source.
      
      However not all implementations of architectures provide such an external
      clock device. This patch includes support in the broadcast framework to handle
      the wakeup of the CPUs in deep idle states on such systems by queuing a hrtimer
      on one of the CPUs, which is meant to handle the wakeup of CPUs in deep idle states.
      
      This patchset introduces a pseudo clock device which can be registered by the
      archs as tick_broadcast_device in the absence of a real external clock
      device. Once registered, the broadcast framework will work as is for these
      architectures as long as the archs take care of the BROADCAST_ENTER
      notification failing for one of the CPUs. This CPU is made the stand by CPU to
      handle wakeup of the CPUs in deep idle and it *must not enter deep idle states*.
      
      The CPU with the earliest wakeup is chosen to be this CPU. Hence this way the
      stand by CPU dynamically moves around and so does the hrtimer which is queued
      to trigger at the next earliest wakeup time. This is consistent with the case where
      an external clock device is present. The smp affinity of this clock device is
      set to the CPU with the earliest wakeup. This patchset handles the hotplug of
      the stand by CPU as well by moving the hrtimer on to the CPU handling the CPU_DEAD
      notification.
      
      Originally-from: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NPreeti U Murthy <preeti@linux.vnet.ibm.com>
      Cc: deepthi@linux.vnet.ibm.com
      Cc: paulmck@linux.vnet.ibm.com
      Cc: fweisbec@gmail.com
      Cc: paulus@samba.org
      Cc: srivatsa.bhat@linux.vnet.ibm.com
      Cc: svaidy@linux.vnet.ibm.com
      Cc: peterz@infradead.org
      Cc: benh@kernel.crashing.org
      Cc: rafael.j.wysocki@intel.com
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: http://lkml.kernel.org/r/20140207080632.17187.80532.stgit@preeti.in.ibm.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      5d1638ac
    • P
      cpuidle: Handle clockevents_notify(BROADCAST_ENTER) failure · ba8f20c2
      Preeti U Murthy 提交于
      Some archs set the CPUIDLE_FLAG_TIMER_STOP flag for idle states in which the
      local timers stop. The cpuidle_idle_call() currently handles such idle states
      by calling into the broadcast framework so as to wakeup CPUs at their next
      wakeup event. With the hrtimer mode of broadcast, the BROADCAST_ENTER call
      into the broadcast frameowork can fail for archs that do not have an external
      clock device to handle wakeups and the CPU in question has thus to be made
      the stand by CPU. This patch handles such cases by failing the call into
      cpuidle so that the arch can take some default action. The arch will certainly
      not enter a similar idle state because a failed cpuidle call will also implicitly
      indicate that the broadcast framework has not registered this CPU to be woken up.
      Hence we are safe if we fail the cpuidle call.
      
      In the process move the functions that trace idle statistics just before and
      after the entry and exit into idle states respectively. In other
      scenarios where the call to cpuidle fails, we end up not tracing idle
      entry and exit since a decision on an idle state could not be taken. Similarly
      when the call to broadcast framework fails, we skip tracing idle statistics
      because we are in no further position to take a decision on an alternative
      idle state to enter into.
      Signed-off-by: NPreeti U Murthy <preeti@linux.vnet.ibm.com>
      Cc: deepthi@linux.vnet.ibm.com
      Cc: paulmck@linux.vnet.ibm.com
      Cc: fweisbec@gmail.com
      Cc: paulus@samba.org
      Cc: srivatsa.bhat@linux.vnet.ibm.com
      Cc: svaidy@linux.vnet.ibm.com
      Cc: peterz@infradead.org
      Cc: benh@kernel.crashing.org
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: http://lkml.kernel.org/r/20140207080652.17187.66344.stgit@preeti.in.ibm.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      ba8f20c2
    • P
      time: Change the return type of clockevents_notify() to integer · da7e6f45
      Preeti U Murthy 提交于
      The broadcast framework can potentially be made use of by archs which do not have an
      external clock device as well. Then, it is required that one of the CPUs need
      to handle the broadcasting of wakeup IPIs to the CPUs in deep idle. As a
      result its local timers should remain functional all the time. For such
      a CPU, the BROADCAST_ENTER notification has to fail indicating that its clock
      device cannot be shutdown. To make way for this support, change the return
      type of tick_broadcast_oneshot_control() and hence clockevents_notify() to
      indicate such scenarios.
      Signed-off-by: NPreeti U Murthy <preeti@linux.vnet.ibm.com>
      Cc: deepthi@linux.vnet.ibm.com
      Cc: paulmck@linux.vnet.ibm.com
      Cc: fweisbec@gmail.com
      Cc: paulus@samba.org
      Cc: srivatsa.bhat@linux.vnet.ibm.com
      Cc: svaidy@linux.vnet.ibm.com
      Cc: peterz@infradead.org
      Cc: benh@kernel.crashing.org
      Cc: rafael.j.wysocki@intel.com
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: http://lkml.kernel.org/r/20140207080606.17187.78306.stgit@preeti.in.ibm.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      da7e6f45
    • S
      clockevents: Adjust timer interval when frequency changes · fe79a9ba
      Soren Brinkmann 提交于
      clockevent devices in periodic mode are not updated when the frequency
      of the device changes. Issue a dev->set_mode() callback which forces
      the device to reevaluate the timer settings.
      Signed-off-by: NSoren Brinkmann <soren.brinkmann@xilinx.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Michal Simek <michal.simek@xilinx.com>
      Link: http://lkml.kernel.org/r/1391466877-28908-3-git-send-email-soren.brinkmann@xilinx.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      fe79a9ba
    • T
      clockevents: Serialize calls to clockevents_update_freq() in the core · 627ee794
      Thomas Gleixner 提交于
      We can identify the broadcast device in the core and serialize all
      callers including interrupts on a different CPU against the update.
      Also, disabling interrupts is moved into the core allowing callers to
      leave interrutps enabled when calling clockevents_update_freq().
      Signed-off-by: NSoren Brinkmann <soren.brinkmann@xilinx.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Soeren Brinkmann <soren.brinkmann@xilinx.com>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Michal Simek <michal.simek@xilinx.com>
      Link: http://lkml.kernel.org/r/1391466877-28908-2-git-send-email-soren.brinkmann@xilinx.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      627ee794