1. 15 12月, 2015 2 次提交
  2. 17 11月, 2015 1 次提交
    • A
      clocksource: Disallow drivers for ARCH_USES_GETTIMEOFFSET · 3da6d49e
      Arnd Bergmann 提交于
      We can now select clocksource drivers like ti-32k and CONFIG_OF
      on ancient machines that still use gettimeoffset, and the combination
      results in a link error.
      
      arch/arm/kernel/built-in.o: In function `time_init':
      (.init.text+0xc28): undefined reference to `clocksource_probe'
      
      The reason for this is that the Makefile is hidden behind
      CONFIG_ARCH_USES_GETTIMEOFFSET, but the Kconfig file is not, and
      it has shown up just now because the ti-32k driver was added
      and can be selected using COMPILE_TEST on all platforms.
      
      This patch hides the Kconfig menu in CONFIG_ARCH_USES_GETTIMEOFFSET
      as well.
      
      Fixes: dfedaf10 "clocksource: ti-32k: make it depend on GENERIC_CLOCKSOURCE"
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Link: http://lkml.kernel.org/r/7579471.4N90fYPQOK@wuerfelSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      3da6d49e
  3. 17 10月, 2015 2 次提交
  4. 16 10月, 2015 1 次提交
  5. 01 10月, 2015 2 次提交
  6. 03 9月, 2015 1 次提交
  7. 10 8月, 2015 1 次提交
  8. 24 7月, 2015 1 次提交
  9. 24 6月, 2015 1 次提交
  10. 23 6月, 2015 1 次提交
  11. 22 6月, 2015 1 次提交
    • P
      clocksource: Increase dependencies of timer-stm32 to limit build wreckage · 1cb6c215
      Paul Gortmaker 提交于
      This driver leaks out into arch/parisc builds that don't have
      CONFIG_GENERIC_CLOCKEVENTS, leading to the following (truncated)
      wreckage:
      
        CC      drivers/clocksource/timer-stm32.o
      drivers/clocksource/timer-stm32.c:38:28: error: field 'evtdev' has incomplete type
      drivers/clocksource/timer-stm32.c:44:19: warning: 'enum clock_event_mode' declared inside parameter list
      drivers/clocksource/timer-stm32.c:44:19: warning: its scope is only this definition or declaration, which is probably not what you want
      drivers/clocksource/timer-stm32.c:43:62: error: parameter 1 ('mode') has incomplete type
      drivers/clocksource/timer-stm32.c:43:13: error: function declaration isn't a prototype
      drivers/clocksource/timer-stm32.c: In function 'stm32_clock_event_set_mode':
      drivers/clocksource/timer-stm32.c:47:3: error: type defaults to 'int' in declaration of '__mptr'
      drivers/clocksource/timer-stm32.c:47:3: warning: initialization from incompatible pointer type
      drivers/clocksource/timer-stm32.c:51:7: error: 'CLOCK_EVT_MODE_PERIODIC' undeclared (first use in this function)
      drivers/clocksource/timer-stm32.c:51:7: note: each undeclared identifier is reported only once for each function it appears in
      drivers/clocksource/timer-stm32.c:56:7: error: 'CLOCK_EVT_MODE_ONESHOT' undeclared (first use in this function)
      
      Tighten up the dependencies to limit where it gets built by copying
      the style of the Kconfig line for CLKSRC_EFM32 a few lines above.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Chanwoo Choi <cw00.choi@samsung.com>
      Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Link: http://lkml.kernel.org/r/1434841352-24300-1-git-send-email-paul.gortmaker@windriver.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      1cb6c215
  12. 03 6月, 2015 1 次提交
  13. 02 6月, 2015 5 次提交
  14. 06 4月, 2015 1 次提交
  15. 01 4月, 2015 1 次提交
  16. 26 3月, 2015 1 次提交
  17. 17 3月, 2015 1 次提交
  18. 25 2月, 2015 1 次提交
  19. 29 1月, 2015 3 次提交
  20. 14 1月, 2015 1 次提交
  21. 09 1月, 2015 1 次提交
  22. 24 11月, 2014 2 次提交
  23. 18 11月, 2014 1 次提交
  24. 29 9月, 2014 1 次提交
  25. 15 9月, 2014 1 次提交
  26. 23 7月, 2014 4 次提交
    • D
      clocksource: exynos_mct: Only use 32-bits where possible · 3252a646
      Doug Anderson 提交于
      The MCT has a nice 64-bit counter.  That means that we _can_ register
      as a 64-bit clocksource and sched_clock.  ...but that doesn't mean we
      should.
      
      The 64-bit counter is read by reading two 32-bit registers.  That
      means reading needs to be something like:
      - Read upper half
      - Read lower half
      - Read upper half and confirm that it hasn't changed.
      
      That wouldn't be terrible, but:
      - THe MCT isn't very fast to access (hundreds of nanoseconds).
      - The clocksource is queried _all the time_.
      
      In total system profiles of real workloads on ChromeOS, we've seen
      exynos_frc_read() taking 2% or more of CPU time even after optimizing
      the 3 reads above to 2 (see below).
      
      The MCT is clocked at ~24MHz on all known systems.  That means that
      the 32-bit half of the counter rolls over every ~178 seconds.  This
      inspired an optimization in ChromeOS to cache the upper half between
      calls, moving 3 reads to 2.  ...but we can do better!  Having a 32-bit
      timer that flips every 178 seconds is more than sufficient for Linux.
      Let's just use the lower half of the MCT.
      
      Times on 5420 to do 1000000 gettimeofday() calls from userspace:
      * Original code:                      1323852 us
      * ChromeOS cache upper half:          1173084 us
      * ChromeOS + ldmia to optimize:       1045674 us
      * Use lower 32-bit only (this code):  1014429 us
      
      As you can see, the time used doesn't increase linearly with the
      number of reads and we can make 64-bit work almost as fast as 32-bit
      with a bit of assembly code.  But since there's no real gain for
      64-bit, let's go with the simplest and fastest implementation.
      
      Note: with this change roughly half the time for gettimeofday() is
      spent in exynos_frc_read().  The rest is timer / system call overhead.
      
      Also note: this patch disables the use of the MCT on ARM64 systems
      until we've sorted out how to make "cycles_t" always 32-bit.  Really
      ARM64 systems should be using arch timers anyway.
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Acked-by Vincent Guittot <vincent.guittot@linaro.org>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      3252a646
    • C
      clocksource: Kconfig: Let EM_TIMER_STI depend on HAS_IOMEM · 40c96312
      Chen Gang 提交于
      In 'em_sti.c', it will call devm_ioremap_resource() which need
      HAS_IOMEM. So need let EM_TIMER_STI depend on HAS_IOMEM, too.
      
      The related error (with allmodconfig under score):
      
        LD      init/built-in.o
      em_sti.c:(.text.em_sti_probe+0x84): undefined reference to `devm_ioremap_resource'
      make: *** [vmlinux] Error 1
      Signed-off-by: NChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      40c96312
    • M
      clocksource: Add support for the Mediatek SoCs · ecb3530d
      Matthias Brugger 提交于
      This patch adds a clock source and clock event for the timer found
      on the Mediatek SoCs.
      
      The Mediatek General Purpose Timer block provides five 32 bit timers and
      one 64 bit timer.
      
      Two 32 bit timers are used by this driver:
      TIMER1: clock events supporting periodic and oneshot events
      TIMER2: clock source configured as a free running counter
      
      The General Purpose Timer block can be run with two clocks. A 13 MHz system
      clock and the RTC clock running at 32 KHz. This implementation uses the system
      clock with no clock source divider.
      
      The interrupts are shared between the different timers and have to be read back
      from a register. We just enable one interrupt for the clock event. The clock
      event timer is used by all cores.
      Signed-off-by: NMatthias Brugger <matthias.bgg@gmail.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      ecb3530d
    • K
      7e139187
  27. 22 6月, 2014 1 次提交