07 Jul, 2013

1 commit

  • Pull timer core updates from Thomas Gleixner:
    "The timer changes contain:

    - posix timer code consolidation and fixes for odd corner cases

    - sched_clock implementation moved from ARM to core code to avoid
    duplication by other architectures

    - alarm timer updates

    - clocksource and clockevents unregistration facilities

    - clocksource/events support for new hardware

    - precise nanoseconds RTC readout (Xen feature)

    - generic support for Xen suspend/resume oddities

    - the usual lot of fixes and cleanups all over the place

    The parts which touch other areas (ARM/XEN) have been coordinated with
    the relevant maintainers. Though this results in an handful of
    trivial to solve merge conflicts, which we preferred over nasty cross
    tree merge dependencies.

    The patches which have been committed in the last few days are bug
    fixes plus the posix timer lot. The latter was in akpms queue and
    next for quite some time; they just got forgotten and Frederic
    collected them last minute."

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (59 commits)
    hrtimer: Remove unused variable
    hrtimers: Move SMP function call to thread context
    clocksource: Reselect clocksource when watchdog validated high-res capability
    posix-cpu-timers: don't account cpu timer after stopped thread runtime accounting
    posix_timers: fix racy timer delta caching on task exit
    posix-timers: correctly get dying task time sample in posix_cpu_timer_schedule()
    selftests: add basic posix timers selftests
    posix_cpu_timers: consolidate expired timers check
    posix_cpu_timers: consolidate timer list cleanups
    posix_cpu_timer: consolidate expiry time type
    tick: Sanitize broadcast control logic
    tick: Prevent uncontrolled switch to oneshot mode
    tick: Make oneshot broadcast robust vs. CPU offlining
    x86: xen: Sync the CMOS RTC as well as the Xen wallclock
    x86: xen: Sync the wallclock when the system time is set
    timekeeping: Indicate that clock was set in the pvclock gtod notifier
    timekeeping: Pass flags instead of multiple bools to timekeeping_update()
    xen: Remove clock_was_set() call in the resume path
    hrtimers: Support resuming with two or more CPUs online (but stopped)
    timer: Fix jiffies wrap behavior of round_jiffies_common()
    ...

    Linus Torvalds
     

19 Jun, 2013

1 commit

  • This reverts commit 55a68c23e0a675b2b8ac2656fd6edbf98b78e4c6.

    In order to avoid a collision with dw_apb_timer changes in
    the arm-soc tree, revert this change.

    I'm leaving it to the arm-soc folks to sort out if they want
    to keep the other side of the collision or if they're just going
    to back it all out and try again during the next release cycle.

    Reported-by: Dinh Nguyen
    Signed-off-by: John Stultz

    John Stultz
     

12 Jun, 2013

1 commit

  • dw_apb_timer_init used to search the devicetree for matching timer
    devices, making calls to it from board files necessary.

    Change the dw_apb_timer_init to work with CLOCKSOURCE_OF_DECLARE.
    With this change the function gets called once for each timer node
    and tracks these number of calls to attach clockevent and clocksource
    devices to the nodes.

    Also remove the calls to dw_apb_timer_init from all previous users, as
    clocksource_of_init is the default for init_time now.

    Tested on the upcoming rk3066 code.

    Signed-off-by: Heiko Stuebner
    Acked-by: Rob Herring
    Acked-by: Arnd Bergmann
    Acked-by: Jamie Iles
    Acked-by: Dinh Nguyen

    Heiko Stuebner
     

29 May, 2013

1 commit

  • It seems we made a mistake when creating dw_apb_timer_of.c:
    picoxcell sched_clock had parts that were not related to
    dw_apb_timer, yet we moved them to dw_apb_timer_of, and tried to
    use them on socfpga.

    This results in system where user/system time is not measured
    properly, as demonstrated by

    time dd if=/dev/urandom of=/dev/zero bs=100000 count=100

    So this patch switches sched_clock to hardware that exists on both
    platforms, and adds missing of_node_put() in dw_apb_timer_init().

    Signed-off-by: Pavel Machek
    Acked-by: Jamie Iles
    Signed-off-by: John Stultz

    Pavel Machek
     

16 May, 2013

1 commit


25 Dec, 2012

1 commit

  • Now that the only field in struct sys_timer is .init, delete the struct,
    and replace the machine descriptor .timer field with the initialization
    function itself.

    This will enable moving timer drivers into drivers/clocksource without
    having to place a public prototype of each struct sys_timer object into
    include/linux; the intent is to create a single of_clocksource_init()
    function that determines which timer driver to initialize by scanning
    the device dtree, much like the proposed irqchip_init() at:
    http://www.spinics.net/lists/arm-kernel/msg203686.html

    Includes mach-omap2 fixes from Igor Grinberg.

    Tested-by: Robert Jarzmik
    Signed-off-by: Stephen Warren

    Stephen Warren
     

19 Jul, 2012

1 commit


05 Oct, 2011

1 commit


28 Jun, 2011

1 commit

  • The APB timers are an IP block from Synopsys (DesignWare APB timers)
    and are also found in other systems including ARM SoC's. This patch
    adds functions for creating clock_event_devices and clocksources from
    APB timers but does not do the resource allocation. This is handled
    in a higher layer to allow the timers to be created from multiple
    methods such as platform_devices.

    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Jacob Pan
    Signed-off-by: Jamie Iles
    Signed-off-by: John Stultz

    Jamie Iles