30 Dec, 2014

1 commit


17 Dec, 2014

1 commit

  • Commit 0b46b8a718c6 (clocksource: arch_timer: Fix code to use physical
    timers when requested) introduces the use of physical counters in the
    ARM architected timer driver. However, he arm64 kernel uses CNTVCT in
    VDSO. When booting in EL2, the kernel switches to the physical timers to
    make things easier for KVM but it continues to use the virtual counter
    both in user and kernel. While in such scenario CNTVCT == CNTPCT (since
    CNTVOFF is initialised by the kernel to 0), we want to spot firmware
    bugs corrupting CNTVOFF early (which would affect CNTVCT).

    Signed-off-by: Catalin Marinas
    Tested-by: Yingjoe Chen
    Cc: Daniel Lezcano
    Signed-off-by: Arnd Bergmann

    Catalin Marinas
     

12 Dec, 2014

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is an unusually large pull request for MIPS - in parts because
    lots of patches missed the 3.18 deadline but primarily because some
    folks opened the flood gates.

    - Retire the MIPS-specific phys_t with the generic phys_addr_t.
    - Improvments for the backtrace code used by oprofile.
    - Better backtraces on SMP systems.
    - Cleanups for the Octeon platform code.
    - Cleanups and fixes for the Loongson platform code.
    - Cleanups and fixes to the firmware library.
    - Switch ATH79 platform to use the firmware library.
    - Grand overhault to the SEAD3 and Malta interrupt code.
    - Move the GIC interrupt code to drivers/irqchip
    - Lots of GIC cleanups and updates to the GIC code to use modern IRQ
    infrastructures and features of the kernel.
    - OF documentation updates for the GIC bindings
    - Move GIC clocksource driver to drivers/clocksource
    - Merge GIC clocksource driver with clockevent driver.
    - Further updates to bring the GIC clocksource driver up to date.
    - R3000 TLB code cleanups
    - Improvments to the Loongson 3 platform code.
    - Convert pr_warning to pr_warn.
    - Merge a bunch of small lantiq and ralink fixes that have been
    staged/lingering inside the openwrt tree for a while.
    - Update archhelp for IP22/IP32
    - Fix a number of issues for Loongson 1B.
    - New clocksource and clockevent driver for Loongson 1B.
    - Further work on clk handling for Loongson 1B.
    - Platform work for Broadcom BMIPS.
    - Error handling cleanups for TurboChannel.
    - Fixes and optimization to the microMIPS support.
    - Option to disable the FTLB.
    - Dump more relevant information on machine check exception
    - Change binfmt to allow arch to examine PT_*PROC headers
    - Support for new style FPU register model in O32
    - VDSO randomization.
    - BCM47xx cleanups
    - BCM47xx reimplement the way the kernel accesses NVRAM information.
    - Random cleanups
    - Add support for ATH25 platforms
    - Remove pointless locking code in some PCI platforms.
    - Some improvments to EVA support
    - Minor Alchemy cleanup"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (185 commits)
    MIPS: Add MFHC0 and MTHC0 instructions to uasm.
    MIPS: Cosmetic cleanups of page table headers.
    MIPS: Add CP0 macros for extended EntryLo registers
    MIPS: Remove now unused definition of phys_t.
    MIPS: Replace use of phys_t with phys_addr_t.
    MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT
    PCMCIA: Alchemy Don't select 64BIT_PHYS_ADDR in Kconfig.
    MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery
    MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO
    MIPS: fix indentation.
    MAINTAINERS: Add entry for BMIPS multiplatform kernel
    MIPS: Enable VDSO randomization
    MIPS: Remove a temporary hack for debugging cache flushes in SMTC configuration
    MIPS: Remove declaration of obsolete arch_init_clk_ops()
    MIPS: atomic.h: Reformat to fit in 79 columns
    MIPS: Apply `.insn' to fixup labels throughout
    MIPS: Fix microMIPS LL/SC immediate offsets
    MIPS: Kconfig: Only allow 32-bit microMIPS builds
    MIPS: signal.c: Fix an invalid cast in ISA mode bit handling
    MIPS: mm: Only build one microassembler that is suitable
    ...

    Linus Torvalds
     

11 Dec, 2014

1 commit

  • Pull timer core updates from Thomas Gleixner:
    "The time(r) departement provides:

    - more infrastructure work on the year 2038 issue

    - a few fixes in the Armada SoC timers

    - the usual pile of fixlets and improvements"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: armada-370-xp: Use the reference clock on A375 SoC
    watchdog: orion: Use the reference clock on Armada 375 SoC
    clocksource: armada-370-xp: Add missing clock enable
    time: Fix sign bug in NTP mult overflow warning
    time: Remove timekeeping_inject_sleeptime()
    rtc: Update suspend/resume timing to use 64bit time
    rtc/lib: Provide y2038 safe rtc_tm_to_time()/rtc_time_to_tm() replacement
    time: Fixup comments to reflect usage of timespec64
    time: Expose get_monotonic_coarse64() for in-kernel uses
    time: Expose getrawmonotonic64 for in-kernel uses
    time: Provide y2038 safe mktime() replacement
    time: Provide y2038 safe timekeeping_inject_sleeptime() replacement
    time: Provide y2038 safe do_settimeofday() replacement
    time: Complete NTP adjustment threshold judging conditions
    time: Avoid possible NTP adjustment mult overflow.
    time: Rename udelay_test.c to test_udelay.c
    clocksource: sirf: Remove hard-coded clock rate

    Linus Torvalds
     

10 Dec, 2014

3 commits

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "These are changes for drivers that are intimately tied to some SoC and
    for some reason could not get merged through the respective subsystem
    maintainer tree.

    The largest single change here this time around is the Tegra
    iommu/memory controller driver, which gets updated to the new iommu DT
    binding. More drivers like this are likely to follow for the
    following merge window, but we should be able to do those through the
    iommu maintainer.

    Other notable changes are:
    - reset controller drivers from the reset maintainer (socfpga, sti,
    berlin)
    - fixes for the keystone navigator driver merged last time
    - at91 rtc driver changes related to the at91 cleanups
    - ARM perf driver changes from Will Deacon
    - updates for the brcmstb_gisb driver"

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (53 commits)
    clocksource: arch_timer: Allow the device tree to specify uninitialized timer registers
    clocksource: arch_timer: Fix code to use physical timers when requested
    memory: Add NVIDIA Tegra memory controller support
    bus: brcmstb_gisb: Add register offset tables for older chips
    bus: brcmstb_gisb: Look up register offsets in a table
    bus: brcmstb_gisb: Introduce wrapper functions for MMIO accesses
    bus: brcmstb_gisb: Make the driver buildable on MIPS
    of: Add NVIDIA Tegra memory controller binding
    ARM: tegra: Move AHB Kconfig to drivers/amba
    amba: Add Kconfig file
    clk: tegra: Implement memory-controller clock
    serial: samsung: Fix serial config dependencies for exynos7
    bus: brcmstb_gisb: resolve section mismatch
    ARM: common: edma: edma_pm_resume may be unused
    ARM: common: edma: add suspend resume hook
    powerpc/iommu: Rename iommu_[un]map_sg functions
    rtc: at91sam9: add DT bindings documentation
    rtc: at91sam9: use clk API instead of relying on AT91_SLOW_CLOCK
    ARM: at91: add clk_lookup entry for RTT devices
    rtc: at91sam9: rework the Kconfig description
    ...

    Linus Torvalds
     
  • Pull ARM SoC platform changes from Arnd Bergmann:
    "New and updated SoC support, notable changes include:

    - bcm:
    brcmstb SMP support
    initial iproc/cygnus support
    - exynos:
    Exynos4415 SoC support
    PMU and suspend support for Exynos5420
    PMU support for Exynos3250
    pm related maintenance
    - imx:
    new LS1021A SoC support
    vybrid 610 global timer support
    - integrator:
    convert to using multiplatform configuration
    - mediatek:
    earlyprintk support for mt8127/mt8135
    - meson:
    meson8 soc and l2 cache controller support
    - mvebu:
    Armada 38x CPU hotplug support
    drop support for prerelease Armada 375 Z1 stepping
    extended suspend support, now works on Armada 370/XP
    - omap:
    hwmod related maintenance
    prcm cleanup
    - pxa:
    initial pxa27x DT handling
    - rockchip:
    SMP support for rk3288
    add cpu frequency scaling support
    - shmobile:
    r8a7740 power domain support
    various small restart, timer, pci apmu changes
    - sunxi:
    Allwinner A80 (sun9i) earlyprintk support
    - ux500:
    power domain support

    Overall, a significant chunk of changes, coming mostly from the usual
    suspects: omap, shmobile, samsung and mvebu, all of which already
    contain a lot of platform specific code in arch/arm"

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (187 commits)
    ARM: mvebu: use the cpufreq-dt platform_data for independent clocks
    soc: integrator: Add terminating entry for integrator_cm_match
    ARM: mvebu: add SDRAM controller description for Armada XP
    ARM: mvebu: adjust mbus controller description on Armada 370/XP
    ARM: mvebu: add suspend/resume DT information for Armada XP GP
    ARM: mvebu: synchronize secondary CPU clocks on resume
    ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume
    ARM: mvebu: Armada XP GP specific suspend/resume code
    ARM: mvebu: reserve the first 10 KB of each memory bank for suspend/resume
    ARM: mvebu: implement suspend/resume support for Armada XP
    clk: mvebu: add suspend/resume for gatable clocks
    bus: mvebu-mbus: provide a mechanism to save SDRAM window configuration
    bus: mvebu-mbus: suspend/resume support
    clocksource: time-armada-370-xp: add suspend/resume support
    irqchip: armada-370-xp: Add suspend/resume support
    ARM: add lolevel debug support for asm9260
    ARM: add mach-asm9260
    ARM: EXYNOS: use u8 for val[] in struct exynos_pmu_conf
    power: reset: imx-snvs-poweroff: add power off driver for i.mx6
    ARM: imx: temporarily remove CONFIG_SOC_FSL from LS1021A
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanup on mach-at91 from Arnd Bergmann:
    "On Atmel AT91, the conversion to device tree is now considered
    complete, and all machines that were not already converted in 3.18 are
    assumed to be unused and dropped by the maintainer.

    All remaining board files that were written in C are dropped, and the
    ancient at91x40 sub-platform (based on an MMU-less ARM7) is removed
    altogether. Cleaning up the last pieces was great fun, so I took the
    time to do some of the coding myself and removed several hundred code
    lines that ended up unused after the board files were done.

    There are still a couple of AT91 specific device drivers that are not
    converted to DT (CF, USB-OTG) and currently not working, and the
    platform itself is not "multiplatform"-enabled, but both issues are
    going to be taken care of in the 3.20 cycle.

    This is split out from the other cleanups purely based on the size of
    the branch"

    * tag 'at91-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (33 commits)
    ARM: at91: remove unused board.h file
    ARM: at91: remove unneeded header files
    ARM: at91/clocksource: remove !DT PIT initializations
    ARM: at91: at91rm9200 ST initialization is now DT only
    ARM: at91: remove old AT91-specific drivers
    ARM: at91: cleanup initilisation code by removing dead code
    ARM: at91/Kconfig: select board files automatically
    ARM: at91: remove unused IRQ function declarations
    ARM: at91: remove legacy IRQ driver and related code
    ARM: at91: remove old at91-specific clock driver
    ARM: at91: remove clock data in at91sam9n12.c and at91sam9x5.c files
    ARM: at91: remove all !DT related configuration options
    ARM: at91/trivial: update Kconfig comment to mention SAMA5
    ARM: at91: always USE_OF from now on
    ARM: at91/Kconfig: remove ARCH_AT91RM9200 option for drivers
    ARM: at91: switch configuration option to SOC_AT91RM9200
    ARM: at91: remove at91rm9200 legacy board support
    ARM: at91: remove at91rm9200 legacy boards files
    ARM: at91/Kconfig: remove useless fbdev Kconfig options
    ARM: at91: remove at91sam9261/at91sam9g10 legacy board support
    ...

    Linus Torvalds
     

09 Dec, 2014

1 commit

  • The at91 cleanups changed a lot of files, this merges in the
    latest cleanups to resolve the conflicts

    Conflicts:
    arch/arm/mach-at91/at91sam9260.c
    arch/arm/mach-at91/at91sam9261.c
    arch/arm/mach-at91/at91sam9263.c
    arch/arm/mach-at91/clock.c
    arch/arm/mach-at91/clock.h
    drivers/rtc/Kconfig

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

05 Dec, 2014

3 commits

  • * clocksource/physical-timers:
    clocksource: arch_timer: Allow the device tree to specify uninitialized timer registers
    clocksource: arch_timer: Fix code to use physical timers when requested

    Olof Johansson
     
  • Some 32-bit (ARMv7) systems are architected like this:

    * The firmware doesn't know and doesn't care about hypervisor mode and
    we don't want to add the complexity of hypervisor there.

    * The firmware isn't involved in SMP bringup or resume.

    * The ARCH timer come up with an uninitialized offset (CNTVOFF)
    between the virtual and physical counters. Each core gets a
    different random offset.

    * The device boots in "Secure SVC" mode.

    * Nothing has touched the reset value of CNTHCTL.PL1PCEN or
    CNTHCTL.PL1PCTEN (both default to 1 at reset)

    On systems like the above, it doesn't make sense to use the virtual
    counter. There's nobody managing the offset and each time a core goes
    down and comes back up it will get reinitialized to some other random
    value.

    This adds an optional property which can inform the kernel of this
    situation, and firmware is free to remove the property if it is going
    to initialize the CNTVOFF registers when each CPU comes out of reset.

    Currently, the best course of action in this case is to use the
    physical timer, which is why it is important that CNTHCTL hasn't been
    changed from its reset value and it's a reasonable assumption given
    that the firmware has never entered HYP mode.

    Note that it's been said that on ARMv8 systems the firmware and
    kernel really can't be architected as described above. That means
    using the physical timer like this really only makes sense for ARMv7
    systems.

    Signed-off-by: Doug Anderson
    Signed-off-by: Sonny Rao
    Reviewed-by: Mark Rutland
    Acked-by: Daniel Lezcano
    Acked-by: Catalin Marinas
    Signed-off-by: Olof Johansson

    Doug Anderson
     
  • This is a bug fix for using physical arch timers when
    the arch_timer_use_virtual boolean is false. It restores the
    arch_counter_get_cntpct() function after removal in

    0d651e4e "clocksource: arch_timer: use virtual counters"

    We need this on certain ARMv7 systems which are architected like this:

    * The firmware doesn't know and doesn't care about hypervisor mode and
    we don't want to add the complexity of hypervisor there.

    * The firmware isn't involved in SMP bringup or resume.

    * The ARCH timer come up with an uninitialized offset between the
    virtual and physical counters. Each core gets a different random
    offset.

    * The device boots in "Secure SVC" mode.

    * Nothing has touched the reset value of CNTHCTL.PL1PCEN or
    CNTHCTL.PL1PCTEN (both default to 1 at reset)

    One example of such as system is RK3288 where it is much simpler to
    use the physical counter since there's nobody managing the offset and
    each time a core goes down and comes back up it will get reinitialized
    to some other random value.

    Fixes: 0d651e4e65e9 ("clocksource: arch_timer: use virtual counters")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sonny Rao
    Acked-by: Catalin Marinas
    Acked-by: Daniel Lezcano
    Signed-off-by: Olof Johansson

    Sonny Rao
     

04 Dec, 2014

1 commit

  • Pull "mvebu SoC suspend changes for v3.19" from Jason Cooper:

    - Armada 370/XP suspend/resume support

    - mvebu SoC driver suspend/resume support
    - irqchip
    - clocksource
    - mbus
    - clk

    * tag 'mvebu-soc-suspend-3.19' of git://git.infradead.org/linux-mvebu:
    ARM: mvebu: add SDRAM controller description for Armada XP
    ARM: mvebu: adjust mbus controller description on Armada 370/XP
    ARM: mvebu: add suspend/resume DT information for Armada XP GP
    ARM: mvebu: synchronize secondary CPU clocks on resume
    ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume
    ARM: mvebu: Armada XP GP specific suspend/resume code
    ARM: mvebu: reserve the first 10 KB of each memory bank for suspend/resume
    ARM: mvebu: implement suspend/resume support for Armada XP
    clk: mvebu: add suspend/resume for gatable clocks
    bus: mvebu-mbus: provide a mechanism to save SDRAM window configuration
    bus: mvebu-mbus: suspend/resume support
    clocksource: time-armada-370-xp: add suspend/resume support
    irqchip: armada-370-xp: Add suspend/resume support
    Documentation: dt-bindings: minimal documentation for MVEBU SDRAM controller

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

03 Dec, 2014

1 commit


01 Dec, 2014

1 commit

  • This commit adds a set of suspend/resume syscore_ops to respectively
    save and restore a number of timer registers, in order to make sure
    the clockevent and clocksource devices continue to work properly
    across a suspend/resume cycle.

    Signed-off-by: Thomas Petazzoni
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Acked-by: Daniel Lezcano
    Link: https://lkml.kernel.org/r/1416585613-2113-5-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     

27 Nov, 2014

1 commit


26 Nov, 2014

2 commits

  • The 25 MHz reference clock has better stability so its use is preferred over the
    core clock.

    This commit takes advantage of the already introduced Armada 375 devicetree
    compatible string and adds a new timer initialization. If available, the timer
    will use the reference clock (named as 'fixed'). Otherwise, it falls back to the
    previous behavior.

    Acked-by: Jason Cooper
    Acked-by: Gregory CLEMENT
    Acked-by: Wim Van Sebroeck
    Reviewed-by: Thomas Petazzoni
    Tested-by: Thomas Petazzoni
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Daniel Lezcano

    Ezequiel Garcia
     
  • This commit makes sure the timer clock is prepared and enabled
    before retrieving its rate.

    Acked-by: Jason Cooper
    Acked-by: Gregory CLEMENT
    Acked-by: Wim Van Sebroeck
    Reviewed-by: Thomas Petazzoni
    Tested-by: Thomas Petazzoni
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Daniel Lezcano

    Ezequiel Garcia
     

24 Nov, 2014

10 commits

  • Parse the GIC timer frequency and interrupt from the device-tree.

    Signed-off-by: Andrew Bresticker
    Acked-by: Arnd Bergmann
    Cc: Rob Herring
    Cc: Pawel Moll
    Cc: Mark Rutland
    Cc: Ian Campbell
    Cc: Kumar Gala
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Daniel Lezcano
    Cc: John Crispin
    Cc: David Daney
    Cc: Qais Yousef
    Cc: James Hogan
    Cc: linux-mips@linux-mips.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8421/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Bump up the rating of the GIC timer so that it gets prioritized
    over the CP0 timer.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8141/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Use clockevents_config_and_register to setup the clock_event_device
    based on frequency and min/max ticks instead of doing it ourselves.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8140/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Instead of requiring an explicit call to gic_clockevent_init in the SMP
    startup path, use CPU notifiers to register and enable the GIC timer on
    CPU startup.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8139/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Since the GIC timer IRQ is a percpu IRQ, we can use percpu_dev_id
    to pass the IRQ handler the correct clock_event_device.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8138/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Remove gic_event_handler since it is completely unnecessary.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8136/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • There's no reason for gic_frequency to be global any more and it
    certainly doesn't belong in the GIC irqchip driver, so move it to
    the GIC clocksource driver.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8137/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • There are a number of variables and functions which are unnecessarily
    global. Mark them static.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8135/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Combine the GIC clocksource driver with the GIC clockevent driver from
    arch/mips/kernel/cevt-gic.c and remove the clockevent driver's separate
    Kconfig symbol.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Andrew Bresticker
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8132/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     
  • Move the GIC clocksource driver to drivers/clocksource/mips-gic-timer.c.

    Signed-off-by: Andrew Bresticker
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Paul Burton
    Cc: Qais Yousef
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8133/
    Signed-off-by: Ralf Baechle

    Andrew Bresticker
     

21 Nov, 2014

2 commits

  • Pull "ARM: meson: SOC related changes" from Carlo Caione:

    This is the pull request for the SoC related changes for the 3.19.
    The support for Meson8 is added together with L2 cache management.

    * tag 'v3.19-meson-soc' of https://github.com/carlocaione/linux-meson:
    clocksource: meson6: Select CLKSRC_MMIO
    ARM: meson: enable L2 cache
    ARM: meson: document meson8 compatible properties
    ARM: meson: add meson8 support

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • …nel/git/linusw/linux-integrator into next/soc

    Pull "ARM SoC Integrator updates for v3.19" from Linus Walleij:

    Integrator updates for the v3.19 merge cycle on
    top of the multiplatform patches, this moves out
    some drivers and reduced the amount of code carried
    in arch/arm/mach-integrator.

    - Move the Integrator/AP timer to drivers/clocksource
    - Move the restart functionality to the device tree,
    patches to enable restart for the Integrator have
    been merged to the reset tree (orthogonal)
    - Move debug LEDs to device tree (using the syscon
    LED driver merged for v3.18)
    - Move core module LEDs to device tree (using the
    syscon LED driver merged for v3.18)
    - Move the SoC driver (chip ID etc) to
    drivers/soc/versatile/soc-integrator.c

    * tag 'integrator-v3.19-arm-soc-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
    soc: move SoC driver for the ARM Integrator
    ARM: integrator: move core module LED to device tree
    ARM: integrator: move debug LEDs to syscon LED driver
    ARM: integrator: move restart to the device tree
    ARM: integrator: move AP timer to clocksource

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

    Arnd Bergmann
     

19 Nov, 2014

2 commits

  • The customers may want to adjust the whole PLL and dividers according to
    different user scenerios, and this causes the parent clock of sirf clocksource
    not be divided exactly by the current hard-coded 1MHz clock rate.
    This patch removes the hard-coded rate and makes the clocksource driver more
    adaptive to the external changes.

    Signed-off-by: Yanchang Li
    Signed-off-by: Barry Song
    Signed-off-by: Daniel Lezcano

    Yanchang Li
     
  • The interrupts were activated and the handler registered before the clockevent
    was registered in the probe function.

    The interrupt handler, however, was making the assumption that the clockevent
    device was registered.

    That could cause a null pointer dereference if the timer interrupt was firing
    during this narrow window.

    Fix that by moving the clockevent registration before the interrupt is enabled.

    Reported-by: Roman Byshko
    Signed-off-by: Maxime Ripard
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Lezcano

    Maxime Ripard
     

18 Nov, 2014

1 commit


28 Oct, 2014

1 commit

  • This moves the timer/clocksource implementation for the
    Integrator/AP down to drivers/clocksource and augments the
    driver a little to use CLOCKSOURCE_OF_DECLARE(). Remove
    the static mapping of the timer blocks while we're at it.

    Tested on the Integrator/AP.

    Acked-by: Thomas Gleixner
    Acked-by: Daniel Lezcano
    Signed-off-by: Linus Walleij

    Linus Walleij
     

27 Oct, 2014

1 commit

  • Commit c387f07e6205 (clocksource: arm_arch_timer: Discard unavailable
    timers correctly) changed the way the driver makes sure both the memory
    and system-register timers have been probed before finalizing the probing.

    There is a interesting flaw in this logic that leads to this final step
    never to be executed. Things seems to work pretty well until something
    actually needs the data that is produced during this final stage.

    For example, KVM explodes on the first run of a guest when executed on
    a platform that has both memory and sysreg nodes (Juno, for example).

    Just fix the damned logic, and enjoy booting VMs again.

    Tested on a Juno system.

    Cc: Sudeep Holla
    Cc: Stephen Boyd
    Cc: Mark Rutland
    Cc: Daniel Lezcano
    Cc: Christoffer Dall
    Reported-by: Riku Voipio
    Acked-by: Mark Rutland
    Acked-by: Sudeep Holla
    Tested-by: Sudeep Holla
    Signed-off-by: Marc Zyngier
    Signed-off-by: Daniel Lezcano

    Marc Zyngier
     

15 Oct, 2014

1 commit

  • Pull percpu consistent-ops changes from Tejun Heo:
    "Way back, before the current percpu allocator was implemented, static
    and dynamic percpu memory areas were allocated and handled separately
    and had their own accessors. The distinction has been gone for many
    years now; however, the now duplicate two sets of accessors remained
    with the pointer based ones - this_cpu_*() - evolving various other
    operations over time. During the process, we also accumulated other
    inconsistent operations.

    This pull request contains Christoph's patches to clean up the
    duplicate accessor situation. __get_cpu_var() uses are replaced with
    with this_cpu_ptr() and __this_cpu_ptr() with raw_cpu_ptr().

    Unfortunately, the former sometimes is tricky thanks to C being a bit
    messy with the distinction between lvalues and pointers, which led to
    a rather ugly solution for cpumask_var_t involving the introduction of
    this_cpu_cpumask_var_ptr().

    This converts most of the uses but not all. Christoph will follow up
    with the remaining conversions in this merge window and hopefully
    remove the obsolete accessors"

    * 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (38 commits)
    irqchip: Properly fetch the per cpu offset
    percpu: Resolve ambiguities in __get_cpu_var/cpumask_var_t -fix
    ia64: sn_nodepda cannot be assigned to after this_cpu conversion. Use __this_cpu_write.
    percpu: Resolve ambiguities in __get_cpu_var/cpumask_var_t
    Revert "powerpc: Replace __get_cpu_var uses"
    percpu: Remove __this_cpu_ptr
    clocksource: Replace __this_cpu_ptr with raw_cpu_ptr
    sparc: Replace __get_cpu_var uses
    avr32: Replace __get_cpu_var with __this_cpu_write
    blackfin: Replace __get_cpu_var uses
    tile: Use this_cpu_ptr() for hardware counters
    tile: Replace __get_cpu_var uses
    powerpc: Replace __get_cpu_var uses
    alpha: Replace __get_cpu_var
    ia64: Replace __get_cpu_var uses
    s390: cio driver &__get_cpu_var replacements
    s390: Replace __get_cpu_var uses
    mips: Replace __get_cpu_var uses
    MIPS: Replace __get_cpu_var uses in FPU emulator.
    arm: Replace __this_cpu_ptr with raw_cpu_ptr
    ...

    Linus Torvalds
     

09 Oct, 2014

2 commits

  • Pull timer updates from Thomas Gleixner:
    "Nothing really exciting this time:

    - a few fixlets in the NOHZ code

    - a new ARM SoC timer abomination. One should expect that we have
    enough of them already, but they insist on inventing new ones.

    - the usual bunch of ARM SoC timer updates. That feels like herding
    cats"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: arm_arch_timer: Consolidate arch_timer_evtstrm_enable
    clocksource: arm_arch_timer: Enable counter access for 32-bit ARM
    clocksource: arm_arch_timer: Change clocksource name if CP15 unavailable
    clocksource: sirf: Disable counter before re-setting it
    clocksource: cadence_ttc: Add support for 32bit mode
    clocksource: tcb_clksrc: Sanitize IRQ request
    clocksource: arm_arch_timer: Discard unavailable timers correctly
    clocksource: vf_pit_timer: Support shutdown mode
    ARM: meson6: clocksource: Add Meson6 timer support
    ARM: meson: documentation: Add timer documentation
    clocksource: sh_tmu: Document r8a7779 binding
    clocksource: sh_mtu2: Document r7s72100 binding
    clocksource: sh_cmt: Document SoC specific bindings
    timerfd: Remove an always true check
    nohz: Avoid tick's double reprogramming in highres mode
    nohz: Fix spurious periodic tick behaviour in low-res dynticks mode

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Arnd Bergmann:
    "These are changes for drivers that are intimately tied to some SoC and
    for some reason could not get merged through the respective subsystem
    maintainer tree.

    Most of the new code is for the Keystone Navigator driver, which is
    new base support that is going to be needed for their hardware
    accelerated network driver and other units.

    Most of the commits are for moving old code around from at91 and omap
    for things that are done in device drivers nowadays.

    - at91: move reset, poweroff, memory and clocksource code into
    drivers directories
    - socfpga: add edac driver (through arm-soc, as requested by Boris)
    - omap: move omap-intc code to drivers/irqchip
    - sunxi: added an RTC driver for sun6i
    - omap: mailbox driver related changes
    - keystone: support for the "Navigator" component
    - versatile: new reboot, led and soc drivers"

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (92 commits)
    bus: arm-ccn: Fix spurious warning message
    leds: add device tree bindings for register bit LEDs
    soc: add driver for the ARM RealView
    power: reset: driver for the Versatile syscon reboot
    leds: add a driver for syscon-based LEDs
    drivers/soc: ti: fix build break with modules
    MAINTAINERS: Add Keystone Multicore Navigator drivers entry
    soc: ti: add Keystone Navigator DMA support
    Documentation: dt: soc: add Keystone Navigator DMA bindings
    soc: ti: add Keystone Navigator QMSS driver
    Documentation: dt: soc: add Keystone Navigator QMSS bindings
    rtc: sunxi: Depend on platforms sun4i/sun7i that actually have the rtc
    rtc: sun6i: Add sun6i RTC driver
    irqchip: omap-intc: remove unnecessary comments
    irqchip: omap-intc: correct maximum number or MIR registers
    irqchip: omap-intc: enable TURBO idle mode
    irqchip: omap-intc: enable IP protection
    irqchip: omap-intc: remove unnecesary of_address_to_resource() call
    irqchip: omap-intc: comment style cleanup
    irqchip: omap-intc: minor improvement to omap_irq_pending()
    ...

    Linus Torvalds
     

29 Sep, 2014

3 commits

  • The arch_timer_evtstrm_enable hooks in arm and arm64 are substantially
    similar, the only difference being a CONFIG_COMPAT-conditional section
    which is relevant only for arm64. Copy the arm64 version to the
    driver, removing the arch-specific hooks.

    Signed-off-by: Nathan Lynch
    Signed-off-by: Daniel Lezcano
    Acked-by: Will Deacon

    Nathan Lynch
     
  • The only difference between arm and arm64's implementations of
    arch_counter_set_user_access is that 32-bit ARM does not enable user
    access to the virtual counter. We want to enable this access for the
    32-bit ARM VDSO, so copy the arm64 version to the driver itself, and
    remove the arch-specific implementations.

    Signed-off-by: Nathan Lynch
    Signed-off-by: Daniel Lezcano
    Acked-by: Will Deacon

    Nathan Lynch
     
  • The arm and arm64 VDSOs need CP15 access to the architected counter.
    If this is unavailable (which is allowed by ARM v7), indicate this by
    changing the clocksource name to "arch_mem_counter" before registering
    the clocksource.

    Suggested by Stephen Boyd.

    Signed-off-by: Nathan Lynch
    Reviewed-by: Stephen Boyd
    Signed-off-by: Daniel Lezcano
    Acked-by: Will Deacon

    Nathan Lynch