15 Jul, 2013

1 commit

  • The __cpuinit type of throwaway sections might have made sense
    some time ago when RAM was more constrained, but now the savings
    do not offset the cost and complications. For example, the fix in
    commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
    is a good example of the nasty type of bugs that can be created
    with improper use of the various __init prefixes.

    After a discussion on LKML[1] it was decided that cpuinit should go
    the way of devinit and be phased out. Once all the users are gone,
    we can then finally remove the macros themselves from linux/init.h.

    This removes all the drivers/clocksource and drivers/irqchip uses of
    the __cpuinit macros from all C files.

    [1] https://lkml.org/lkml/2013/5/20/589

    Cc: John Stultz
    Cc: Thomas Gleixner
    Acked-by: Thomas Gleixner
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

12 Jul, 2013

1 commit


07 Jul, 2013

2 commits

  • 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
     
  • Pull Metag architecture changes from James Hogan:
    - Infrastructure and DT files for TZ1090 SoC (pin control drivers
    already merged via pinctrl tree).
    - Panic on boot instead of just warning if cache aliasing possible.
    - Various SMP/hotplug fixes.
    - Various other randconfig/sparse fixes.

    * tag 'metag-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (24 commits)
    metag: move EXPORT_SYMBOL(csum_partial) to metag_ksyms.c
    metag: cpu hotplug: route_irq: preserve irq mask
    metag: kick: add missing irq_enter/exit to kick_handler()
    metag: smp: don't spin waiting for CPU to start
    metag: smp: enable irqs after set_cpu_online
    metag: use clear_tasks_mm_cpumask()
    metag: tz1090: select and instantiate pinctrl-tz1090-pdc
    metag: tz1090: select and instantiate pinctrl-tz1090
    metag: don't check for cache aliasing on smp cpu boot
    metag: panic if cache aliasing possible
    metag: *.dts: include using preprocessor
    metag: add symlink
    metag/.gitignore: Extend the *.dtb pattern to match the dtb.S files
    metag/traps: include setup.h for the per_cpu_trap_init declaration
    metag/traps: Mark die() as __noreturn to match the declaration.
    metag/processor.h: Add missing cpuinfo_op declaration.
    metag/setup: Restrict scope for the capabilities variable
    metag/mm/cache: Restrict scope for metag_lnkget_probe
    metag/asm/irq.h: Declare init_IRQ
    metag/kernel/irq.c: Declare root_domain as static
    ...

    Linus Torvalds
     

04 Jul, 2013

1 commit

  • Pull ARM updates from Russell King:
    "This contains the usual updates from other people (listed below) and
    the usual random muddle of miscellaneous ARM updates which cover some
    low priority bug fixes and performance improvements.

    I've started to put the pull request wording into the merge commits,
    which are:

    - NoMMU stuff:

    This includes the following series sent earlier to the list:
    - nommu-fixes
    - R7 Support
    - MPU support

    I've left out the ARCH_MULTIPLATFORM/!MMU stuff that Arnd and I
    were discussing today until we've reached a conclusion/that's had
    some more review.

    This is rebased (and re-tested) on your devel-stable branch because
    otherwise there were going to be conflicts with Uwe's V7M work now
    that you've merged that. I've included the fix for limiting MPU to
    CPU_V7.

    - Huge page support

    These changes bring both HugeTLB support and Transparent HugePage
    (THP) support to ARM. Only long descriptors (LPAE) are supported
    in this series.

    The code has been tested on an Arndale board (Exynos 5250).

    - LPAE updates

    Please pull these miscellaneous LPAE fixes I've been collecting for
    a while now for 3.11. They've been tested and reviewed by quite a
    few people, and most of the patches are pretty trivial. -- Will Deacon.

    - arch_timer cleanups

    Please pull these arch_timer cleanups I've been holding onto for a
    while. They're the same as my last posting, but have been rebased
    to v3.10-rc3.

    - mpidr linearisation (multiprocessor id register - identifies which
    CPU number we are in the system)

    This patch series that implements MPIDR linearization through a
    simple hashing algorithm and updates current cpu_{suspend}/{resume}
    code to use the newly created hash structures to retrieve context
    pointers. It represents a stepping stone for the implementation of
    power management code on forthcoming multi-cluster ARM systems.

    It has been tested on TC2 (dual cluster A15xA7 system), iMX6q,
    OMAP4 and Tegra, with processors hitting low-power states requiring
    warm-boot resume through the cpu_resume code path"

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (77 commits)
    ARM: 7775/1: mm: Remove do_sect_fault from LPAE code
    ARM: 7777/1: Avoid extra calls to the C compiler
    ARM: 7774/1: Fix dtb dependency to use order-only prerequisites
    ARM: 7770/1: remove residual ARMv2 support from decompressor
    ARM: 7769/1: Cortex-A15: fix erratum 798181 implementation
    ARM: 7768/1: prevent risks of out-of-bound access in ASID allocator
    ARM: 7767/1: let the ASID allocator handle suspended animation
    ARM: 7766/1: versatile: don't mark pen as __INIT
    ARM: 7765/1: perf: Record the user-mode PC in the call chain.
    ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork
    ARM: kernel: implement stack pointer save array through MPIDR hashing
    ARM: kernel: build MPIDR hash function data structure
    ARM: mpu: Ensure that MPU depends on CPU_V7
    ARM: mpu: protect the vectors page with an MPU region
    ARM: mpu: Allow enabling of the MPU via kconfig
    ARM: 7758/1: introduce config HAS_BANDGAP
    ARM: 7757/1: mm: don't flush icache in switch_mm with hardware broadcasting
    ARM: 7751/1: zImage: don't overwrite ourself with a page table
    ARM: 7749/1: spinlock: retry trylock operation if strex fails on free lock
    ARM: 7748/1: oabi: handle faults when loading swi instruction from userspace
    ...

    Linus Torvalds
     

03 Jul, 2013

5 commits

  • This is a simple driver for the global timer module found in the Cortex
    A9-MP cores from revision r1p0 onwards. This should be able to perform
    the functions of the system timer and the local timer in an SMP system.

    The global timer has the following features:
    The global timer is a 64-bit incrementing counter with an
    auto-incrementing feature. It continues incrementing after sending
    interrupts. The global timer is memory mapped in the private memory
    region.
    The global timer is accessible to all Cortex-A9 processors in the
    cluster. Each Cortex-A9 processor has a private 64-bit comparator that
    is used to assert a private interrupt when the global timer has reached
    the comparator value. All the Cortex-A9 processors in a design use the
    banked ID, ID27, for this interrupt. ID27 is sent to the Interrupt
    Controller as a Private Peripheral Interrupt. The global timer is
    clocked by PERIPHCLK.

    Signed-off-by: Stuart Menefy
    Signed-off-by: Srinivas Kandagatla
    CC: Arnd Bergmann
    CC: Rob Herring
    CC: Linus Walleij
    CC: Will Deacon
    CC: Thomas Gleixner
    Signed-off-by: Daniel Lezcano

    Stuart Menefy
     
  • Pull ARM SoC late changes from Arnd Bergmann:
    "These are changes that arrived a little late before the merge window
    or that have multiple dependencies on previous branches so they did
    not fit into one of the earlier ones. There are 10 branches merged
    here, a total of 39 non-merge commits. Contents are a mixed bag for
    the above reasons:

    * Two new SoC platforms: ST microelectronics stixxxx and the TI
    'Nspire' graphing calculator. These should have been in the 'soc'
    branch but were a little late
    * Support for the Exynos 5420 variant in mach-exynos, which is based
    on the other exynos branches to avoid conflicts.
    * Various small changes for sh-mobile, ux500 and davinci
    * Common clk support for MSM"

    * tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
    ARM: ux500: bail out on alien cpus
    ARM: davinci: da850: adopt to pinctrl-single change for configuring multiple pins
    serial: sh-sci: Initialise variables before access in sci_set_termios()
    ARM: stih41x: Add B2020 board support
    ARM: stih41x: Add B2000 board support
    ARM: sti: Add DEBUG_LL console support
    ARM: sti: Add STiH416 SOC support
    ARM: sti: Add STiH415 SOC support
    ARM: msm: Migrate to common clock framework
    ARM: msm: Make proc_comm clock control into a platform driver
    ARM: msm: Prepare clk_get() users in mach-msm for clock-pcom driver
    ARM: msm: Remove clock-7x30.h include file
    ARM: msm: Remove custom clk_set_{max,min}_rate() API
    ARM: msm: Remove custom clk_set_flags() API
    msm: iommu: Use clk_set_rate() instead of clk_set_min_rate()
    msm: iommu: Convert to clk_prepare/unprepare
    msm_sdcc: Convert to clk_prepare/unprepare
    usb: otg: msm: Convert to clk_prepare/unprepare
    msm_serial: Use devm_clk_get() and properly return errors
    msm_serial: Convert to clk_prepare/unprepare
    ...

    Linus Torvalds
     
  • Pull ARM SoC driver specific changes from Arnd Bergmann:
    "These changes are all driver specific and cross over between arm-soc
    contents and some other subsystem, in these cases cpufreq, crypto,
    dma, pinctrl, mailbox and usb, and the subsystem owners agreed to have
    these changes merged through arm-soc.

    As we proceed to untangle the dependencies between platform code and
    driver code, the amount of changes in this category is fortunately
    shrinking, for 3.11 we have 16 branches here and 101 non-merge
    changesets, the majority of which are for the stedma40 dma engine
    driver used in the ux500 platform. Cleaning up that code touches
    multiple subsystems, but gets rid of the dependency in the end.

    The mailbox code moved out from mach-omap2 to drivers/mailbox is an
    intermediate step and is still omap specific at the moment. Patches
    exist to generalize the subsystem and add other drivers with the same
    API, but those did not make it for 3.11."

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (101 commits)
    crypto: ux500: use dmaengine_submit API
    crypto: ux500: use dmaengine_prep_slave_sg API
    crypto: ux500: use dmaengine_device_control API
    crypto: ux500/crypt: add missing __iomem qualifiers
    crypto: ux500/hash: add missing static qualifiers
    crypto: ux500/hash: use readl on iomem addresses
    dmaengine: ste_dma40: Declare memcpy config as static
    ARM: ux500: Remove mop500_snowball_ethernet_clock_enable()
    ARM: ux500: Correct the EN_3v3 regulator's on/off GPIO
    ARM: ux500: Provide a AB8500 GPIO Device Tree node
    gpio: rcar: fix gpio_rcar_of_table
    gpio-rcar: Remove #ifdef CONFIG_OF around OF-specific sections
    gpio-rcar: Reference core gpio documentation in the DT bindings
    clk: exynos5250: Add enum entries for divider clock of i2s1 and i2s2
    ARM: dts: Update Samsung I2S documentation
    ARM: dts: add clock provider information for i2s controllers in Exynos5250
    ARM: dts: add Exynos audio subsystem clock controller node
    clk: samsung: register audio subsystem clocks using common clock framework
    ARM: dts: use #include for all device trees for Samsung
    pinctrl: s3c24xx: use correct header for chained_irq functions
    ...

    Linus Torvalds
     
  • Pull ARM SoC device tree changes from Arnd Bergmann:
    "These changes from 30 individual branches for the most part update
    device tree files, but there are also a few source code changes that
    have crept in this time, usually in order to atomically move over a
    driver from using hardcoded data to DT probing.

    A number of platforms change their DT files to use the C preprocessor,
    which is causing a bit of churn, but that is hopefully only this once"

    * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (372 commits)
    ARM: at91: dt: rm9200ek: add spi support
    ARM: at91: dt: rm9200: add spi support
    ARM: at91/DT: at91sam9n12: add SPI DMA client infos
    ARM: at91/DT: sama5d3: add SPI DMA client infos
    ARM: at91/DT: fix SPI compatibility string
    ARM: Kirkwood: Fix the internal register ranges translation
    ARM: dts: bcm281xx: change comment to C89 style
    ARM: mmc: bcm281xx SDHCI driver (dt mods)
    ARM: nomadik: add the new clocks to the device tree
    clk: nomadik: implement the Nomadik clocks properly
    ARM: dts: omap5-uevm: Provide USB Host PHY clock frequency
    ARM: dts: omap4-panda: Fix DVI EDID reads
    ARM: dts: omap4-panda: Add USB Host support
    arm: mvebu: enable mini-PCIe connectors on Armada 370 RD
    ARM: shmobile: irqpin: add a DT property to enable masking on parent
    ARM: dts: AM43x EPOS EVM support
    ARM: dts: OMAP5: Add bandgap DT entry
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to am335x EVM
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to EVMsk
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to beaglebone
    ...

    Linus Torvalds
     
  • Pull ARM SoC specific changes from Arnd Bergmann:
    "These changes are all to SoC-specific code, a total of 33 branches on
    17 platforms were pulled into this. Like last time, Renesas sh-mobile
    is now the platform with the most changes, followed by OMAP and
    EXYNOS.

    Two new platforms, TI Keystone and Rockchips RK3xxx are added in this
    branch, both containing almost no platform specific code at all, since
    they are using generic subsystem interfaces for clocks, pinctrl,
    interrupts etc. The device drivers are getting merged through the
    respective subsystem maintainer trees.

    One more SoC (u300) is now multiplatform capable and several others
    (shmobile, exynos, msm, integrator, kirkwood, clps711x) are moving
    towards that goal with this series but need more work.

    Also noteworthy is the work on PCI here, which is traditionally part
    of the SoC specific code. With the changes done by Thomas Petazzoni,
    we can now more easily have PCI host controller drivers as loadable
    modules and keep them separate from the platform code in
    drivers/pci/host. This has already led to the discovery that three
    platforms (exynos, spear and imx) are actually using an identical PCIe
    host controller and will be able to share a driver once support for
    spear and imx is added."

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (480 commits)
    ARM: integrator: let pciv3 use mem/premem from device tree
    ARM: integrator: set local side PCI addresses right
    ARM: dts: Add pcie controller node for exynos5440-ssdk5440
    ARM: dts: Add pcie controller node for Samsung EXYNOS5440 SoC
    ARM: EXYNOS: Enable PCIe support for Exynos5440
    pci: Add PCIe driver for Samsung Exynos
    ARM: OMAP5: voltagedomain data: remove temporary OMAP4 voltage data
    ARM: keystone: Move CPU bringup code to dedicated asm file
    ARM: multiplatform: always pick one CPU type
    ARM: imx: select syscon for IMX6SL
    ARM: keystone: select ARM_ERRATA_798181 only for SMP
    ARM: imx: Synertronixx scb9328 needs to select SOC_IMX1
    ARM: OMAP2+: AM43x: resolve SMP related build error
    dmaengine: edma: enable build for AM33XX
    ARM: edma: Add EDMA crossbar event mux support
    ARM: edma: Add DT and runtime PM support to the private EDMA API
    dmaengine: edma: Add TI EDMA device tree binding
    arm: add basic support for Rockchip RK3066a boards
    arm: add debug uarts for rockchip rk29xx and rk3xxx series
    arm: Add basic clocks for Rockchip rk3066a SoCs
    ...

    Linus Torvalds
     

02 Jul, 2013

1 commit

  • This patch add a DT enabled driver for timers found on Marvell Orion SoCs
    (Kirkwood, Dove, Orion5x, and Discovery Innovation). It installs a free-
    running clocksource on timer0 and a clockevent source on timer1.
    Corresponding device tree documentation is also added.

    Signed-off-by: Sebastian Hesselbarth
    Signed-off-by: Daniel Lezcano
    Tested-by: Ezequiel Garcia
    Tested-by: Andrew Lunn

    Sebastian Hesselbarth
     

25 Jun, 2013

2 commits

  • Commit 38ff87f7 (sched_clock: Make ARM's sched_clock generic for all
    architectures) changed the header to , so adapt
    it in order to fix the following build error:

    drivers/clocksource/vf_pit_timer.c:15:29: fatal error: asm/sched_clock.h: No such file or directory

    Signed-off-by: Fabio Estevam
    Cc: shawn.guo@linaro.org
    Cc: sboyd@codeaurora.org
    Cc: john.stultz@linaro.org
    Link: http://lkml.kernel.org/r/1372116008-2323-1-git-send-email-festevam@gmail.com
    Signed-off-by: Thomas Gleixner

    Fabio Estevam
     
  • Several architectures have a dummy timer driver tightly coupled with
    their broadcast code to support machines without cpu-local timers (or
    where there is a lack of driver support).

    Since 12ad100046: "clockevents: Add generic timer broadcast function"
    it's been possible to write broadcast-capable timer drivers decoupled
    from the broadcast mechanism. We can use this functionality to implement
    a generic dummy timer driver that can be shared by all architectures
    with generic tick broadcast (ARCH_HAS_TICK_BROADCAST).

    This patch implements a generic dummy timer using this facility.

    [sboyd: Make percpu data static, use __this_cpu_ptr(), move to
    early_initcall to properly register on each CPU, only
    register if more than one CPU possible]

    Signed-off-by: Mark Rutland
    Signed-off-by: Stephen Boyd
    Acked-by: Marc Zyngier ,
    Cc: John Stultz
    Cc: Daniel Lezcano
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/1370291642-13259-3-git-send-email-sboyd@codeaurora.org
    Signed-off-by: Thomas Gleixner

    Mark Rutland
     

21 Jun, 2013

1 commit

  • …it/mmind/linux-rockchip into next/soc

    From Heiko Stuebner:

    Adds basic support for Rockchip Cortex-A9 SoCs.

    * tag 'v3.11-rockchip-basics' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
    arm: add basic support for Rockchip RK3066a boards
    arm: add debug uarts for rockchip rk29xx and rk3xxx series
    arm: Add basic clocks for Rockchip rk3066a SoCs
    clocksource: dw_apb_timer_of: use clocksource_of_init
    clocksource: dw_apb_timer_of: select DW_APB_TIMER
    clocksource: dw_apb_timer_of: add clock-handling
    clocksource: dw_apb_timer_of: enable the use the clocksource as sched clock

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     

20 Jun, 2013

1 commit

  • From Michal Simek:

    arm: Xilinx Zynq dt changes for v3.11

    The branch contains:
    - DT uart handling cleanup
    - Support for zc706 and zed board
    - Removal of board compatible string

    * tag 'zynq-dt-for-3.11' of git://git.xilinx.com/linux-xlnx:
    arm: dt: zynq: Add support for the zed platform
    arm: dt: zynq: Add support for the zc706 platform
    arm: dt: zynq: Use 'status' property for UART nodes
    arm: zynq: Remove board specific compatibility string
    clk: zynq: Remove deprecated clock code
    arm: zynq: Migrate platform to clock controller
    clk: zynq: Add clock controller driver
    clk: zynq: Factor out PLL driver

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

19 Jun, 2013

3 commits


15 Jun, 2013

1 commit


13 Jun, 2013

2 commits


12 Jun, 2013

4 commits

  • 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
     
  • dw_apb_timer_of is the driver part facing devicetree platforms and
    calls into dw_apb_timer with the data gathered from the dt.

    Currently the two platforms using the dw_apb_timer_of select both
    the options for the core timer and the dt addon.

    As dw_apb_timer_of always depends on dw_apb_timer let it select
    DW_APB_TIMER itself without the need for every platform to do it.

    Signed-off-by: Heiko Stuebner
    Acked-by: Jamie Iles
    Acked-by: Dinh Nguyen

    Heiko Stuebner
     
  • Add the possibility to get the clock-frequency from a timer clock instead
    of specifying it as dt property. Additionally also add the possibility
    to also define a controlling periphal clock for the timer block.

    The clock-frequency property is kept to act as fallback if no clocks
    are specified.

    Signed-off-by: Heiko Stuebner
    Acked-by: Jamie Iles

    Heiko Stuebner
     
  • Currently the dw_apb_timer always expects a separate special timer to be
    availbable for the sched_clock. Some devices using dw_apb_timers do not
    have this sptimer but can use the clocksource as sched_clock instead.

    Therefore enable the driver to distiguish between devices with and without
    sptimer based on the devicetree data and select the correct timer as
    sched_clock.

    Signed-off-by: Heiko Stuebner
    Acked-by: Linus Walleij
    Acked-by: Jamie Iles

    Heiko Stuebner
     

09 Jun, 2013

1 commit


07 Jun, 2013

1 commit

  • Switching between reading the virtual or physical counters is
    problematic, as some core code wants a view of time before we're fully
    set up. Using a function pointer and switching the source after the
    first read can make time appear to go backwards, and having a check in
    the read function is an unfortunate block on what we want to be a fast
    path.

    Instead, this patch makes us always use the virtual counters. If we're a
    guest, or don't have hyp mode, we'll use the virtual timers, and as such
    don't care about CNTVOFF as long as it doesn't change in such a way as
    to make time appear to travel backwards. As the guest will use the
    virtual timers, a (potential) KVM host must use the physical timers
    (which can wake up the host even if they fire while a guest is
    executing), and hence a host must have CNTVOFF set to zero so as to have
    a consistent view of time between the physical timers and virtual
    counters.

    Signed-off-by: Mark Rutland
    Acked-by: Catalin Marinas
    Acked-by: Marc Zyngier
    Acked-by: Santosh Shilimkar
    Cc: Rob Herring

    Mark Rutland
     

06 Jun, 2013

3 commits

  • This patch adds a clocksource/clockevent driver for the timer found on some
    models in the TI-Nspire calculator series. The timer has two 16bit subtimers
    within its memory mapped I/O interface but only the first can generate
    interrupts. The first subtimer is used to generate clockevents but only if an
    interrupt number and register is given.

    The interrupt acknowledgement mechanism is a little strange because the
    interrupt mask and acknowledge registers are located in another memory mapped
    I/O peripheral. The address of this register is passed to the driver through
    device tree bindings.

    The second subtimer is used as a clocksource because it isn't capable of
    generating an interrupt. This subtimer is always added.

    Reviewed-by: Linus Walleij
    Signed-off-by: Daniel Tang
    Signed-off-by: Daniel Lezcano

    Daniel Tang
     
  • Add Freescale Vybrid Family period interrupt timer support.

    Signed-off-by: Jingchang Lu
    Reviewed-by: Daniel Lezcano
    Acked-by: Shawn Guo
    Signed-off-by: Daniel Lezcano

    Jingchang Lu
     
  • irq_of_parse_and_map() returns 0 on error, while the code checks for NO_IRQ.
    This breaks on platforms that have NO_IRQ != 0.

    Cc:
    Signed-off-by: Baruch Siach
    Signed-off-by: Daniel Lezcano

    Baruch Siach
     

01 Jun, 2013

1 commit

  • The clocksource API has changed slightly, which causes a harmless
    warning:

    /git/arm-soc/drivers/clocksource/nomadik-mtu.c:259:28: warning: 'nmdk_timer_match' defined but not used [-Wunused-variable]
    static struct of_device_id nmdk_timer_match[] __initconst = {
    ^

    Fortunately, the same API change also lets us simplify the code
    while removing the warning.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Olof Johansson

    Arnd Bergmann
     

29 May, 2013

2 commits

  • The time.h header seems not to be used by current code.
    Removing this include allows the driver to build on other
    architecture that do not have this header.

    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: John Stultz
    Cc: Thomas Gleixner
    Cc: Jamie Iles
    Cc: Dinh Nguyen
    Acked-by: Jamie Iles
    Signed-off-by: Baruch Siach
    [tweaked commit message and header]
    Signed-off-by: John Stultz

    Baruch Siach
     
  • 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
     

27 May, 2013

3 commits


16 May, 2013

1 commit


13 May, 2013

1 commit


08 May, 2013

2 commits

  • Pull late ARM Exynos multiplatform changes from Arnd Bergmann:
    "These continue the multiplatform support for exynos, adding support
    for building most of the essential drivers (clocksource, clk, irqchip)
    when combined with other platforms. As a result, it should become
    really easy to add full multiplatform exynos support in 3.11, although
    we don't yet enable it for 3.10.

    The changes were not included in the earlier multiplatform series in
    order to avoid clashes with the other Exynos updates.

    This also includes work from Tomasz Figa to fix the pwm clocksource
    code on Exynos, which is not strictly required for multiplatform, but
    related to the other patches in this set and needed as a bug fix for
    at least one board."

    * tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits)
    ARM: dts: exynops4210: really add universal_c210 dts
    ARM: dts: exynos4210: Add basic dts file for universal_c210 board
    ARM: dts: exynos4: Add node for PWM device
    ARM: SAMSUNG: Do not register legacy timer interrupts on Exynos
    clocksource: samsung_pwm_timer: Work around rounding errors in clockevents core
    clocksource: samsung_pwm_timer: Correct programming of clock events
    clocksource: samsung_pwm_timer: Use proper clockevents max_delta
    clocksource: samsung_pwm_timer: Add support for non-DT platforms
    clocksource: samsung_pwm_timer: Drop unused samsung_pwm struct
    clocksource: samsung_pwm_timer: Keep all driver data in a structure
    clocksource: samsung_pwm_timer: Make PWM spinlock global
    clocksource: samsung_pwm_timer: Let platforms select the driver
    Documentation: Add device tree bindings for Samsung PWM timers
    clocksource: add samsung pwm timer driver
    irqchip: exynos: look up irq using irq_find_mapping
    irqchip: exynos: pass irq_base from platform
    irqchip: exynos: localize irq lookup for ATAGS
    irqchip: exynos: allocate combiner_data dynamically
    irqchip: exynos: pass max combiner number to combiner_init
    ARM: exynos: add missing properties for combiner IRQs
    ...

    Linus Torvalds
     
  • Pull ARM SoC late cleanups from Arnd Bergmann:
    "These are cleanups and smaller changes that either depend on earlier
    feature branches or came in late during the development cycle. We
    normally try to get all cleanups early, so these are the exceptions:

    - A follow-up on the clocksource reworks, hopefully the last time we
    need to merge clocksource subsystem changes through arm-soc.

    A first set of patches was part of the original 3.10 arm-soc
    cleanup series because of interdependencies with timer drivers now
    moved out of arch/arm.

    - Migrating the SPEAr13xx platform away from using auxdata for DMA
    channel descriptions towards using information in device tree,
    based on the earlier SPEAr multiplatform series

    - A few follow-ups on the Atmel SAMA5 support and other changes for
    Atmel at91 based on the larger at91 reworks.

    - Moving the armada irqchip implementation to drivers/irqchip

    - Several OMAP cleanups following up on the larger series already
    merged in 3.10."

    * tag 'cleanup-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (50 commits)
    ARM: OMAP4: change the device names in usb_bind_phy
    ARM: OMAP2+: Fix mismerge for timer.c between ff931c82 and da4a686a
    ARM: SPEAr: conditionalize SMP code
    ARM: arch_timer: Silence debug preempt warnings
    ARM: OMAP: remove unused variable
    serial: amba-pl011: fix !CONFIG_DMA_ENGINE case
    ata: arasan: remove the need for platform_data
    ARM: at91/sama5d34ek.dts: remove not needed compatibility string
    ARM: at91: dts: add MCI DMA support
    ARM: at91: dts: add i2c dma support
    ARM: at91: dts: set #dma-cells to the correct value
    ARM: at91: suspend both memory controllers on at91sam9263
    irqchip: armada-370-xp: slightly cleanup irq controller driver
    irqchip: armada-370-xp: move IRQ handler to avoid forward declaration
    irqchip: move IRQ driver for Armada 370/XP
    ARM: mvebu: move L2 cache initialization in init_early()
    devtree: add binding documentation for sp804
    ARM: integrator-cp: convert use CLKSRC_OF for timer init
    ARM: versatile: use OF init for sp804 timer
    ARM: versatile: add versatile dtbs to dtbs target
    ...

    Linus Torvalds