1. 23 7月, 2014 5 次提交
  2. 05 7月, 2014 2 次提交
    • A
      clocksource: exynos_mct: Register the timer for stable udelay · 8bf13a43
      Amit Daniel Kachhap 提交于
      This patch registers the exynos mct clocksource as the current timer
      as it has constant clock rate. This will generate correct udelay for
      the exynos platform and avoid using unnecessary calibrated
      jiffies. This change has been tested on exynos5420 based board and
      udelay is very close to expected.
      
      Without this patch udelay() on exynos5400 / exynos5800 is wildly
      inaccurate due to big.LITTLE not adjusting loops_per_jiffy correctly.
      Also without this patch udelay() on exynos5250 can be innacruate
      during transitions between frequencies < 800 MHz (you'll go 200 MHz ->
      800 MHz -> 300 MHz and will run at 800 MHz for a time with the wrong
      loops_per_jiffy).
      
      [dianders: reworked and created version 3]
      Signed-off-by: NAmit Daniel Kachhap <amit.daniel@samsung.com>
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      8bf13a43
    • D
      clocksource: exynos_mct: Fix ftrace · 89e6a13b
      Doug Anderson 提交于
      In (93bfb769 clocksource: exynos_mct: register sched_clock callback) we
      supported using the MCT as a scheduler clock.  We properly marked
      exynos4_read_sched_clock() as notrace.  However, we then went and
      called another function that _wasn't_ notrace.  That means if you do:
      
        cd /sys/kernel/debug/tracing/
        echo function_graph > current_tracer
      
      You'll get a crash.
      
      Fix this (but still let other readers of the MCT be trace-enabled) by
      adding an extra function.  It's important to keep other users of MCT
      traceable because the MCT is actually quite slow to access and we want
      exynos4_frc_read() to show up in ftrace profiles if it's the
      bottleneck.
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      89e6a13b
  3. 04 7月, 2014 3 次提交
  4. 02 7月, 2014 6 次提交
  5. 22 6月, 2014 1 次提交
  6. 16 6月, 2014 1 次提交
  7. 04 6月, 2014 1 次提交
  8. 27 5月, 2014 1 次提交
    • A
      ARM: vexpress: refine dependencies for new code · b33cdd28
      Arnd Bergmann 提交于
      The versatile express changes for 3.16 introduced a number of
      build regressions for randconfig kernels by not tracking dependencies
      between the components right.
      
      This patch tries to rectify that:
      
      * the mach-vexpress code cannot link without the syscfg driver,
        which in turn needs MFD_VEXPRESS_SYSREG
      * various drivers call devm_regmap_init_vexpress_config(), which
        has to be exported so it can be used by loadable modules
      * the configuration bus uses OF DT helper functions that are not
        available to platforms disable CONFIG_OF
      * The sysreg driver exports GPIOs through gpiolib, which can
        be disabled on some platforms.
      * The clocksource code cannot be built on platforms that don't
        use modern timekeeping but rely on gettimeoffset.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      b33cdd28
  9. 23 5月, 2014 10 次提交
  10. 21 5月, 2014 1 次提交
  11. 20 5月, 2014 1 次提交
  12. 19 5月, 2014 2 次提交
  13. 16 5月, 2014 1 次提交
  14. 12 5月, 2014 2 次提交
    • Z
      clocksource:sirf: remove the hardcode for the clk of timers · c7cff54d
      Zhiwu Song 提交于
      Nobody want to know the connection between io clk and timer clk,
      so exposing this information to timer module is not reasonable.
      this patch moves to define the timers' clk in dt.
      Signed-off-by: NZhiwu Song <Zhiwu.Song@csr.com>
      Signed-off-by: NBarry Song <Baohua.Song@csr.com>
      c7cff54d
    • B
      clocksource: prima2: fix some minor checkpatch issues · 4c1ad709
      Bin Shi 提交于
      Fix the "line over 80 characters". users of the codes - key customers
      really care about that.
      
      WARNING: line over 80 characters
      64: FILE: timer-prima2.c:64:
      +       WARN_ON(!(readl_relaxed(sirfsoc_timer_base + SIRFSOC_TIMER_STATUS) & BIT(0)));
      
      WARNING: line over 80 characters
      80: FILE: timer-prima2.c:80:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      82: FILE: timer-prima2.c:82:
      +       cycles = (cycles << 32) | readl_relaxed(sirfsoc_timer_base + SIRFSOC_TIMER_LATCHED_LO);
      
      WARNING: line over 80 characters
      92: FILE: timer-prima2.c:92:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      96: FILE: timer-prima2.c:96:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      111: FILE: timer-prima2.c:111:
      +               writel_relaxed(val | BIT(0), sirfsoc_timer_base + SIRFSOC_TIMER_INT_EN);
      
      WARNING: line over 80 characters
      114: FILE: timer-prima2.c:114:
      +               writel_relaxed(val & ~BIT(0), sirfsoc_timer_base + SIRFSOC_TIMER_INT_EN);
      
      WARNING: line over 80 characters
      126: FILE: timer-prima2.c:126:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      129: FILE: timer-prima2.c:129:
      +               sirfsoc_timer_reg_val[i] = readl_relaxed(sirfsoc_timer_base + sirfsoc_timer_reg_list[i]);
      
      WARNING: line over 80 characters
      137: FILE: timer-prima2.c:137:
      +               writel_relaxed(sirfsoc_timer_reg_val[i], sirfsoc_timer_base + sirfsoc_timer_reg_list[i]);
      
      WARNING: line over 80 characters
      139: FILE: timer-prima2.c:139:
      +       writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 2], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_LO);
      
      WARNING: line over 80 characters
      140: FILE: timer-prima2.c:140:
      +       writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 1], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_HI);
      
      WARNING: line over 80 characters
      216: FILE: timer-prima2.c:216:
      +CLOCKSOURCE_OF_DECLARE(sirfsoc_prima2_timer, "sirf,prima2-tick", sirfsoc_prima2_timer_init);
      
      total: 0 errors, 13 warnings, 216 lines checked
      
      timer-prima2.c has style problems, please review.
      
      If any of these errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
      Signed-off-by: NBin Shi <Bin.Shi@csr.com>
      Signed-off-by: NBarry Song <Baohua.Song@csr.com>
      4c1ad709
  15. 02 5月, 2014 1 次提交
  16. 29 4月, 2014 2 次提交
    • A
      clocksource: nspire: Fix compiler warning · 9afa27ce
      Alexander Shiyan 提交于
      CC      drivers/clocksource/zevio-timer.o
      drivers/clocksource/zevio-timer.c:215:1: warning: comparison of distinct pointer types lacks a cast [enabled by default]
      Signed-off-by: NAlexander Shiyan <shc_work@mail.ru>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      9afa27ce
    • L
      clocksource: arch_arm_timer: Fix age-old arch timer C3STOP detection issue · 82a56194
      Lorenzo Pieralisi 提交于
      ARM arch timers are tightly coupled with the CPU logic and lose context
      on platform implementing HW power management when cores are powered
      down at run-time. Marking the arch timers as C3STOP regardless of power
      management capabilities causes issues on platforms with no power management,
      since in that case the arch timers cannot possibly enter states where the
      timer loses context at runtime and therefore can always be used as a high
      resolution clockevent device.
      
      In order to fix the C3STOP issue in a way compliant with how real HW
      works, this patch adds a boolean property to the arch timer bindings
      to define if the arch timer is managed by an always-on power domain.
      
      This power domain is present on all ARM platforms to date, and manages
      HW that must not be turned off, whatever the state of other HW
      components (eg power controller). On platforms with no power management
      capabilities, it is the only power domain present, which encompasses
      and manages power supply for all HW components in the system.
      
      If the timer is powered by the always-on power domain, the always-on
      property must be present in the bindings which means that the timer cannot
      be shutdown at runtime, so it is not a C3STOP clockevent device.
      If the timer binding does not contain the always-on property, the timer is
      assumed to be power-gateable, hence it must be defined as a C3STOP
      clockevent device.
      
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Magnus Damm <damm@opensource.se>
      Cc: Marc Carino <marc.ceeeee@gmail.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      82a56194