21 May, 2019

1 commit


14 Dec, 2018

3 commits

  • Rename pen_release and boot_lock in the Versatile specific SMP
    implementation, describe why these exist and state clearly that they
    should not be used in production implementations.

    Signed-off-by: Russell King

    Russell King
     
  • The arm boot_lock is used by the secondary processor startup code. The locking
    task is the idle thread, which has idle->sched_class == &idle_sched_class.
    idle_sched_class->enqueue_task == NULL, so if the idle task blocks on the
    lock, the attempt to wake it when the lock becomes available will fail:

    try_to_wake_up()
    ...
    activate_task()
    enqueue_task()
    p->sched_class->enqueue_task(rq, p, flags)

    Fix by converting boot_lock to a raw spin lock.

    Cc: Linus Walleij
    Signed-off-by: Frank Rowand
    Link: http://lkml.kernel.org/r/4E77B952.3010606@am.sony.com
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Russell King

    Sebastian Andrzej Siewior
     
  • The only difference between the hotplug implementation for Realview
    and Versatile Express are the bit in the auxiliary control register
    to disable coherency. Combine the two implentations accounting for
    that difference.

    Rename the functions to try to discourage cargo-cult copying of this
    code.

    Tested-by: Sudeep Holla
    Acked-by: Sudeep Holla
    Signed-off-by: Russell King

    Russell King
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

07 Apr, 2017

1 commit


13 Jun, 2016

1 commit

  • Fix two missing function declarations by including the
    file where they are defined. Fixes:

    arch/arm/plat-versatile/platsmp.c:35:6: warning: symbol 'versatile_secondary_init' was not declared. Should it be static?
    arch/arm/plat-versatile/platsmp.c:50:5: warning: symbol 'versatile_boot_secondary' was not declared. Should it be static?

    Cc: Liviu Dudau
    Cc: Lorenzo Pieralisi
    Signed-off-by: Ben Dooks
    Signed-off-by: Sudeep Holla

    Ben Dooks
     

10 Feb, 2016

1 commit


28 Nov, 2014

1 commit

  • Now, with the CLCD DT support available, there is no
    more reason to keep the non-DT support for V2P-CA9.

    Removed, together with "some" supporting code. It was
    necessary to make PLAT_VERSATILE_SCHED_CLOCK optional
    and selected by the machines still interested in it.

    Acked-by: Mike Turquette
    Signed-off-by: Pawel Moll
    Signed-off-by: Arnd Bergmann

    Pawel Moll
     

27 Jun, 2014

1 commit

  • This moves the Versatile-specific helper code and panel database
    down into the drivers/video folder next to the CLCD driver
    itself, preserving the config symbol but also moving the header
    to platform data.

    This is necessary to rid the Integrator of this final
    inclusion dependency and get us one less user of the
    plat-versatile folder.

    Cc: Arnd Bergmann
    Cc: Jean-Christophe Plagniol-Villard
    Cc: linux-fbdev@vger.kernel.org
    Cc: Russell King
    Acked-by: Tomi Valkeinen
    Signed-off-by: Linus Walleij

    Linus Walleij
     

28 Mar, 2014

1 commit


27 Feb, 2014

1 commit

  • The LEDs were initialized unconditionally with an fs_initcall()
    which doesn't play well with multiplatform. Convert the driver
    to a platform device and convert all boards with these LEDs
    to register a platform device and pass the register as a
    resource instead.

    Tested successfully on the Versatile/AB and RealView PB1176.

    Cc: Bryan Wu
    Cc: Richard Purdie
    Cc: Russell King
    Cc: Pawel Moll
    Signed-off-by: Linus Walleij

    Linus Walleij
     

26 Feb, 2014

1 commit


24 Jan, 2014

1 commit

  • Pull ARM SoC platform changes from Olof Johansson:
    "New core SoC-specific changes.

    New platforms:
    * Introduction of a vendor, Hisilicon, and one of their SoCs with
    some random numerical product name.
    * Introduction of EFM32, embedded platform from Silicon Labs (ARMv7m,
    i.e. !MMU).
    * Marvell Berlin series of SoCs, which include the one in Chromecast.
    * MOXA platform support, ARM9-based platform used mostly in
    industrial products
    * Support for Freescale's i.MX50 SoC.

    Other work:
    * Renesas work for new platforms and drivers, and conversion over to
    more multiplatform-friendly device registration schemes.
    * SMP support for Allwinner sunxi platforms.
    * ... plus a bunch of other stuff across various platforms"

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (201 commits)
    ARM: tegra: fix tegra_powergate_sequence_power_up() inline
    ARM: msm_defconfig: Update for multi-platform
    ARM: msm: Move MSM's DT based hardware to multi-platform support
    ARM: msm: Only build timer.c if required
    ARM: msm: Only build clock.c on proc_comm based platforms
    ARM: ux500: Enable system suspend with WFI support
    ARM: ux500: turn on PRINTK_TIME in u8500_defconfig
    ARM: shmobile: r8a7790: Fix I2C controller names
    ARM: msm: Simplify ARCH_MSM_DT config
    ARM: msm: Add support for MSM8974 SoC
    ARM: sunxi: select ARM_PSCI
    MAINTAINERS: Update Allwinner sunXi maintainer files
    ARM: sunxi: Select RESET_CONTROLLER
    ARM: imx: improve the comment of CCM lpm SW workaround
    ARM: imx: improve status check of clock gate
    ARM: imx: add necessary interface for pfd
    ARM: imx_v6_v7_defconfig: Select CONFIG_REGULATOR_PFUZE100
    ARM: imx_v6_v7_defconfig: Select MX35 and MX50 device tree support
    ARM: imx: Add cpu frequency scaling support
    ARM i.MX35: Add devicetree support.
    ...

    Linus Torvalds
     

12 Dec, 2013

1 commit


07 Dec, 2013

1 commit

  • From Stephen Boyd:
    * soc/sched_clock:
    ARM: versatile: Switch to sched_clock_register()
    ARM: orion: Switch to sched_clock_register()
    ARM: OMAP: Switch to sched_clock_register()
    ARM: iop: Switch to sched_clock_register()
    ARM: u300: Switch to sched_clock_register()
    ARM: sa1100: Switch to sched_clock_register()
    ARM: pxa: Switch to sched_clock_register()
    ARM: OMAP2+: Switch to sched_clock_register()
    ARM: OMAP1: Switch to sched_clock_register()
    ARM: msm: Switch to sched_clock_register()
    ARM: mmp: Switch to sched_clock_register()
    ARM: IXP4xx: Switch to sched_clock_register()
    ARM: integrator: Switch to sched_clock_register()
    ARM: imx: Switch to sched_clock_register()
    ARM: davinci: Switch to sched_clock_register()
    ARM: clps711x: Switch to sched_clock_register()
    ARM: timer-sp: Switch to sched_clock_register()

    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

22 Nov, 2013

1 commit


20 Oct, 2013

1 commit


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.

    Note that some harmless section mismatch warnings may result, since
    notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
    and are flagged as __cpuinit -- so if we remove the __cpuinit from
    the arch specific callers, we will also get section mismatch warnings.
    As an intermediate step, we intend to turn the linux/init.h cpuinit
    related content into no-ops as early as possible, since that will get
    rid of these warnings. In any case, they are temporary and harmless.

    This removes all the ARM uses of the __cpuinit macros from C code,
    and all __CPUINIT from assembly code. It also had two ".previous"
    section statements that were paired off against __CPUINIT
    (aka .section ".cpuinit.text") that also get removed here.

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

    Cc: Russell King
    Cc: Will Deacon
    Cc: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

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
     

24 Jun, 2013

1 commit

  • When booting fewer cores than are physically present on a versatile
    platform (e.g. when passing maxcpus=N on the command line), some
    secondary cores may remain in the holding pen, which is marked __INIT,
    as each CPU's gic cpumask is initialised to 0xff, and thus an IPI to any
    CPU will wake up *all* secondaries. This behaviour is crucial to the GIC
    cpumask self-discovery. Late in the boot process, the memory comprising
    the holding pen will be released to the kernel for more general use, and
    may be overwritten with arbitrary data, which can cause the held
    secondaries to start behaving unpredictably. This can lead to all manner
    of odd behaviour from the kernel.

    As preventing cpus from entering the pen would require invasive changes
    to the GIC driver and to existing dts used in the wild, we instead
    remove the __INIT marker from the pen, keeping it around and leaving the
    unused secondary CPUs dormant.

    Link: http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/175039.html

    Signed-off-by: Mark Rutland
    Acked-by: Pawel Moll
    Acked-by: Nicolas Pitre
    Cc: Lorenzo Pieralisi
    Signed-off-by: Russell King

    Mark Rutland
     

13 Jun, 2013

1 commit


27 Mar, 2013

1 commit

  • All the calls to gic_secondary_init() pass 0 as the first argument.
    Since this function is called on each CPU when starting, it can be done
    in a platform-independent way via a CPU notifier registered by the GIC
    code.

    Signed-off-by: Catalin Marinas
    Acked-by: Stephen Warren
    Acked-by: Viresh Kumar
    Acked-by: Santosh Shilimkar
    Acked-by: Rob Herring
    Acked-by: Simon Horman
    Tested-by: Simon Horman
    Acked-by: Srinidhi Kasagar
    Tested-by: Dinh Nguyen
    Acked-by: Nicolas Pitre
    Tested-by: Marc Zyngier
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Kukjin Kim
    Cc: Sascha Hauer
    Cc: David Brown
    Cc: Bryan Huntsman
    Cc: Tony Lindgren
    Cc: Magnus Damm
    Cc: Shiraz Hashim
    Cc: Linus Walleij
    Cc: Will Deacon
    Cc: Kukjin Kim
    Cc: Barry Song

    Catalin Marinas
     

28 Jan, 2013

1 commit


24 Jan, 2013

1 commit

  • In ARM multi-cluster systems the MPIDR affinity level 0 cannot be used as a
    single cpu identifier, affinity levels 1 and 2 must be taken into account as
    well.
    This patch extends the MPIDR usage to affinity levels 1 and 2 in versatile
    secondary cores start up code in order to compare the passed pen_release
    value with the full-blown affinity mask.

    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: Liviu Dudau
    Acked-by: Nicolas Pitre
    Signed-off-by: Pawel Moll

    Lorenzo Pieralisi
     

13 Jan, 2013

1 commit

  • Now that we have GIC moved to drivers/irqchip and all GIC DT init for
    platforms using irqchip_init, move gic.h and update the remaining
    includes.

    Signed-off-by: Rob Herring
    Cc: Thomas Gleixner
    Cc: Russell King
    Cc: Anton Vorontsov
    Cc: Kukjin Kim
    Cc: Sascha Hauer
    Cc: David Brown
    Cc: Daniel Walker
    Cc: Bryan Huntsman
    Cc: Tony Lindgren
    Cc: Paul Mundt
    Cc: Magnus Damm
    Cc: Viresh Kumar
    Cc: Shiraz Hashim
    Cc: Stephen Warren
    Cc: Srinidhi Kasagar
    Cc: Linus Walleij
    Cc: Samuel Ortiz

    Rob Herring
     

11 Jan, 2013

1 commit

  • In preparation of moving gic code to drivers/irqchip, remove the direct
    platform dependencies on gic_raise_softirq. Move the setup of
    smp_cross_call into the gic code and use arch_send_wakeup_ipi_mask
    function to trigger wake-up IPIs.

    Signed-off-by: Rob Herring
    Cc: Russell King
    Cc: Kukjin Kim
    Cc: Sascha Hauer
    Cc: David Brown
    Cc: Daniel Walker
    Cc: Bryan Huntsman
    Acked-by: Tony Lindgren
    Acked-by: Santosh Shilimkar
    Cc: Paul Mundt
    Cc: Magnus Damm
    Acked-by: Viresh Kumar
    Cc: Shiraz Hashim
    Acked-by: Stephen Warren
    Cc: Srinidhi Kasagar
    Cc: Linus Walleij
    Acked-by: Olof Johansson

    Rob Herring
     

13 Dec, 2012

1 commit

  • Pull ARM SoC updates from Olof Johansson:
    "This contains the bulk of new SoC development for this merge window.

    Two new platforms have been added, the sunxi platforms (Allwinner A1x
    SoCs) by Maxime Ripard, and a generic Broadcom platform for a new
    series of ARMv7 platforms from them, where the hope is that we can
    keep the platform code generic enough to have them all share one mach
    directory. The new Broadcom platform is contributed by Christian
    Daudt.

    Highbank has grown support for Calxeda's next generation of hardware,
    ECX-2000.

    clps711x has seen a lot of cleanup from Alexander Shiyan, and he's
    also taken on maintainership of the platform.

    Beyond this there has been a bunch of work from a number of people on
    converting more platforms to IRQ domains, pinctrl conversion, cleanup
    and general feature enablement across most of the active platforms."

    Fix up trivial conflicts as per Olof.

    * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (174 commits)
    mfd: vexpress-sysreg: Remove LEDs code
    irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids
    clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids
    irq: versatile: delete dangling variable
    ARM: sunxi: add missing include for mdelay()
    ARM: EXYNOS: Avoid early use of of_machine_is_compatible()
    ARM: dts: add node for PL330 MDMA1 controller for exynos4
    ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412
    ARM: EXYNOS: add UART3 to DEBUG_LL ports
    ARM: S3C24XX: Add clkdev entry for camif-upll clock
    ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers
    ARM: sunxi: Add missing sun4i.dtsi file
    pinctrl: samsung: Do not initialise statics to 0
    ARM i.MX6: remove gate_mask from pllv3
    ARM i.MX6: Fix ethernet PLL clocks
    ARM i.MX6: rename PLLs according to datasheet
    ARM i.MX6: Add pwm support
    ARM i.MX51: Add pwm support
    ARM i.MX53: Add pwm support
    ARM: mx5: Replace clk_register_clkdev with clock DT lookup
    ...

    Linus Torvalds
     

26 Nov, 2012

1 commit


05 Nov, 2012

1 commit


27 Oct, 2012

1 commit

  • This switches the FPGA IRQ driver over to using the simple IRQ
    domain. We can then use the same codepath for this in the
    DT and non-DT cases.

    To be able to use quicker irq_find_mapping() in the handlers
    we first call irq_create_mapping() on all the valid HW IRQ
    numbers so that descriptors will be created for them in the
    DT case where a linear domain will be the outcome of the
    call.

    Signed-off-by: Linus Walleij

    Linus Walleij
     

07 Oct, 2012

1 commit

  • Pull ARM updates from Russell King:
    "This is the first chunk of ARM updates for this merge window.
    Conflicts are expected in two files - asm/timex.h and
    mach-integrator/integrator_cp.c. Nothing particularly stands out more
    than anything else.

    Most of the growth is down to the opcodes stuff from Dave Martin,
    which is countered by Rob's patches to use more of the asm-generic
    headers on ARM."

    (A few more conflicts grew since then, but it all looked fairly trivial)

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (44 commits)
    ARM: 7548/1: include linux/sched.h in syscall.h
    ARM: 7541/1: Add ARM ERRATA 775420 workaround
    ARM: ensure vm_struct has its phys_addr member filled in
    ARM: 7540/1: kexec: Check segment memory addresses
    ARM: 7539/1: kexec: scan for dtb magic in segments
    ARM: 7538/1: delay: add registration mechanism for delay timer sources
    ARM: 7536/1: smp: Formalize an IPI for wakeup
    ARM: 7525/1: ptrace: use updated syscall number for syscall auditing
    ARM: 7524/1: support syscall tracing
    ARM: 7519/1: integrator: convert platform devices to Device Tree
    ARM: 7518/1: integrator: convert AMBA devices to device tree
    ARM: 7517/1: integrator: initial device tree support
    ARM: 7516/1: plat-versatile: add DT support to FPGA IRQ
    ARM: 7515/1: integrator: check PL010 base address from resource
    ARM: 7514/1: integrator: call common init function from machine
    ARM: 7522/1: arch_timers: register a time/cycle counter
    ARM: 7523/1: arch_timers: enable the use of the virtual timer
    ARM: 7531/1: mark kernelmode mem{cpy,set} non-experimental
    ARM: 7520/1: Build dtb files in all target
    ARM: Fix build warning in arch/arm/mm/alignment.c
    ...

    Linus Torvalds
     

02 Oct, 2012

1 commit

  • Pull ARM soc multiplatform enablement from Olof Johansson:
    "This is a pretty significant branch. It's the introduction of the
    first multiplatform support on ARM, and with this (and the later
    branch) merged, it is now possible to build one kernel that contains
    support for highbank, vexpress, mvebu, socfpga, and picoxcell. More
    platforms will be convered over in the next few releases.

    Two critical last things had to be done for this to be practical and
    possible:
    * Today each platform has its own include directory under
    mach-/include/mach/*, and traditionally that is where a lot
    of driver/platform shared definitions have gone, such as platform
    data structures. They now need to move out to a common location
    instead, and this branch moves a large number of those out to
    include/linux/platform_data.
    * Each platform used to list the device trees to compile for its
    boards in mach-/Makefile.boot.

    Both of the above changes will mean that there are some merge
    conflicts to come (and some to resolve here). It's a one-time move
    and once it settles in, we should be good for quite a while. Sorry
    for the overhead."

    Fix conflicts as per Olof.

    * tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (51 commits)
    ARM: add v7 multi-platform defconfig
    ARM: msm: Move core.h contents into common.h
    ARM: highbank: call highbank_pm_init from .init_machine
    ARM: dtb: move all dtb targets to common Makefile
    ARM: spear: move platform_data definitions
    ARM: samsung: move platform_data definitions
    ARM: orion: move platform_data definitions
    ARM: vexpress: convert to multi-platform
    ARM: initial multiplatform support
    ARM: mvebu: move armada-370-xp.h in mach dir
    ARM: vexpress: remove dependency on mach/* headers
    ARM: picoxcell: remove dependency on mach/* headers
    ARM: move all dtb targets out of Makefile.boot
    ARM: picoxcell: move debug macros to include/debug
    ARM: socfpga: move debug macros to include/debug
    ARM: mvebu: move debug macros to include/debug
    ARM: vexpress: move debug macros to include/debug
    ARM: highbank: move debug macros to include/debug
    ARM: move debug macros to common location
    ARM: make mach/gpio.h headers optional
    ...

    Linus Torvalds
     

22 Sep, 2012

1 commit

  • * multiplatform/smp_ops:
    ARM: consolidate pen_release instead of having per platform definitions
    ARM: smp: Make SMP operations mandatory
    ARM: SoC: convert spear13xx to SMP operations
    ARM: SoC: convert imx6q to SMP operations
    ARM: SoC: convert highbank to SMP operations
    ARM: SoC: convert shmobile SMP to SMP operations
    ARM: SoC: convert ux500 to SMP operations
    ARM: SoC: convert MSM to SMP operations
    ARM: SoC: convert Exynos4 to SMP operations
    ARM: SoC: convert Tegra to SMP operations
    ARM: SoC: convert OMAP4 to SMP operations
    ARM: SoC: convert VExpress/RealView to SMP operations
    ARM: SoC: add per-platform SMP operations

    Conflicts due to file moves or removals in:
    arch/arm/mach-msm/board-msm8960.c
    arch/arm/mach-msm/board-msm8x60.c
    arch/arm/mach-tegra/board-harmony.c
    arch/arm/mach-tegra/board-trimslice.c

    Conflicts due to board file cleanup:
    arch/arm/mach-tegra/board-paz00.c

    Conflicts due to cpu hotplug addition:
    arch/arm/mach-tegra/hotplug.c

    Signed-off-by: Olof Johansson

    Olof Johansson
     

18 Sep, 2012

1 commit


15 Sep, 2012

1 commit


14 Sep, 2012

1 commit

  • Almost each SMP platform defines pen_release to manage booting secondary
    CPUs. This of course clashes with the single zImage effort.

    Add the pen_release definition to the ARM SMP code, and remove all others.
    This should only be used by platforms which lack any kind of CPU power
    management...

    Reported-by: Arnd Bergmann
    Signed-off-by: Marc Zyngier
    Acked-by: Nicolas Pitre
    Signed-off-by: Arnd Bergmann

    Marc Zyngier
     

13 Sep, 2012

1 commit


13 Aug, 2012

1 commit

  • …oney/linux-leds into next/drivers

    From Bryan Wu <bryan.wu@canonical.com>:

    Based on Linus Walleij's ARM LED consolidation work, this patchset introduce a
    new generic led trigger for CPU not only for ARM but also for others.

    For enabling CPU idle event, CPU arch code should call ledtrig_cpu() stub to
    trigger idle start or idle end event.

    These patches convert old style LED driver in arch/arm to gpio_led or new led
    driver interface. Against 3.5 release and build successfully for all the machines.

    Test ledtrig-cpu driver on OMAP4 Panda board.

    v9 --> v10
    * fix compiling issue on versatile_defconfig reported by Russell King
    * rebase to 3.5 kernel and move patches to new git tree

    v8 --> v9:
    * use mutex to replace rw_sema pointed out by Tim Gardner
    * add a new struct led_trigger_cpu
    * add lock_is_inited to record mutex lock initialization

    v6 --> v7:
    * add a patch to unify the led-trigger name
    * fix some typo pointed
    * use BUG_ON to detect CPU numbers during building stage

    v5 --> v6:
    * replace __get_cpu_var() to per_cpu()
    * remove smp_processor_id() which is wrong with for_each_possible_cpu()
    * test on real OMAP4 Panda board
    * add comments about CPU hotplug in the CPU LED trigger driver

    v4 --> v5:
    * rebase all the patches on top of latest linux-next
    * replace on_each_cpu() with for_each_possible_cpu()
    * add some description of ledtrig_cpu() API
    * remove old leds code from driver nwflash.c, which should use a new led trigger then
    * this trigger driver can be built as module now

    v3 --> v4:
    * fix a typo pointed by Jochen Friedrich
    * fix some building errors
    * add Reviewed-by and Tested-by into patch log

    v2 --> v3:
    * almost rewrote the whole ledtrig-cpu driver, which is more simple
    * every CPU will have a per-CPU trigger
    * cpu trigger can be assigned to any leds
    * fix a lockdep issue in led-trigger common code
    * other fix according to review

    v1 --> v2:
    * remove select operations in Kconfig of every machines
    * add back supporting of led in core module of mach-integrator
    * solidate name scheme in ledtrig-cpu.c
    * add comments of CPU_LED_* cpu led events
    * fold patches of RealView and Versatile together
    * add machine_is_ check during assabet led driver init
    * add some Acked-by in patch logs
    * remove code for simpad machine in machine-sa11000, since Jochen Friedrich
    introduced gpiolib and gpio-led driver for simpad
    * on Assabet and Netwinder machine, LED operations is reversed like:
    setting bit means turn off leds
    clearing bit means turn on leds
    * add a new function to read CM_CTRL register for led driver

    * 'for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
    ARM: use new LEDS CPU trigger stub to replace old one
    ARM: mach-sa1100: retire custom LED code
    ARM: mach-omap1: retire custom LED code
    ARM: mach-pnx4008: remove including old leds event API header file
    ARM: plat-samsung: remove including old leds event API header file
    ARM: mach-pxa: retire custom LED code
    char: nwflash: remove old led event code
    ARM: mach-footbridge: retire custom LED code
    ARM: mach-ebsa110: retire custom LED code
    ARM: mach-clps711x: retire custom LED code of P720T machine
    ARM: mach-integrator: retire custom LED code
    ARM: mach-integrator: move CM_CTRL to header file for accessing by other functions
    ARM: mach-orion5x: convert custom LED code to gpio_led and LED CPU trigger
    ARM: mach-shark: retire custom LED code
    ARM: mach-ks8695: remove leds driver, since nobody use it
    ARM: mach-realview and mach-versatile: retire custom LED code
    ARM: at91: convert old leds drivers to gpio_led and led_trigger drivers
    led-triggers: create a trigger for CPU activity

    Conflicts:
    arch/arm/mach-clps711x/p720t.c
    arch/arm/mach-sa1100/leds-cerf.c
    arch/arm/mach-sa1100/leds-lart.c

    Let's hope this is the last time we pull this and it doesn't cause
    more trouble. I have verified that version 10 causes no build
    warnings or errors any more, and the patches still look good.

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

    Arnd Bergmann
     

01 Aug, 2012

1 commit

  • This replaces the custom LED trigger code in mach-realview with
    some overarching platform code for the plat-versatile family that
    will lock down LEDs 2 thru 5 for CPU activity indication. The
    day we have 8 core ARM systems the plat-versatile code will have
    to become more elaborate.

    Tested on RealView PB11MPCore by invoking four different CPU
    hogs (yes > /dev/null&) and see the LEDs go on one at a time.
    They all go off as the hogs are killed. Tested on the PB1176
    as well - just one activity led (led 2) goes on and off with
    CPU activity.

    (bryan.wu@canonical.com: use ledtrig-cpu instead of ledtrig-arm-cpu)

    Cc: Richard Purdie
    Signed-off-by: Linus Walleij
    Signed-off-by: Bryan Wu
    Acked-by: Pawel Moll

    Bryan Wu