10 Jul, 2013

1 commit

  • Preparing to move the parsing of reboot= to generic kernel code forces
    the change in reboot_mode handling to use the enum.

    [akpm@linux-foundation.org: fix arch/arm/mach-socfpga/socfpga.c]
    Signed-off-by: Robin Holt
    Cc: Russell King
    Cc: Russ Anderson
    Cc: Robin Holt
    Cc: H. Peter Anvin
    Cc: Guan Xuetao
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     

14 Feb, 2013

1 commit

  • The conditional declaration of ap_uart_data is broken
    and causes this build error:

    In file included from arch/arm/mach-integrator/core.c:35:0:
    arch/arm/mach-integrator/common.h:6:37: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

    Turning the check into an constant-expression if(IS_ENABLED()) statement
    creates more readable code and solves this problem as well.

    Cc: Linus Walleij
    Cc: Russell King

    Arnd Bergmann
     

18 Nov, 2012

1 commit

  • This pushes the dependencies on the Integrator/AP system
    controller (SC) down into the PCI V3 driver and the
    AP-specific board file.

    First, the platform data for the PL010 UART is moved into
    the integrator_ap.c board file, and the Integrator/CP is
    assigned with NULL pdata. This way the callback functions
    can reference the dynamically remapped AP syscon address
    in both the ATAG and DT boot path, and this remapping
    is localized to the board file.

    Second the PCIv3 driver is making its own dynamic remapping
    of the SC for the few registers it is using. When we
    convert the PCIv3 driver over to using device tree having a
    dynamically assigned base address will be useful, but we
    will have to use the definition from for
    now, the only improvement is that it's done dynamically.

    Signed-off-by: Linus Walleij

    Linus Walleij
     

17 Nov, 2012

1 commit

  • This hooks the Integrator/AP into the SoC bus when booting from
    device tree, by mapping the AP controller registers first,
    then registering the SoC device, and then populating the device
    tree with the SoC device as parent.

    Introduce some helpers in the core to provide sysfs files
    detailing the use of the SoC ID which will later be reused by
    the Integrator/CP patch for the same bus grouping.

    Cc: Lee Jones
    Acked-by: Arnd Bergmann
    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 driver specific changes from Olof Johansson:
    - A long-coming conversion of various platforms to a common LED
    infrastructure
    - AT91 is moved over to use the newer MCI driver for MMC
    - Pincontrol conversions for samsung platforms
    - DT bindings for gscaler on samsung
    - i2c driver fixes for tegra, acked by i2c maintainer

    Fix up conflicts as per Olof.

    * tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
    drivers: bus: omap_l3: use resources instead of hardcoded irqs
    pinctrl: exynos: Fix wakeup IRQ domain registration check
    pinctrl: samsung: Uninline samsung_pinctrl_get_soc_data
    pinctrl: exynos: Correct the detection of wakeup-eint node
    pinctrl: exynos: Mark exynos_irq_demux_eint as inline
    pinctrl: exynos: Handle only unmasked wakeup interrupts
    pinctrl: exynos: Fix typos in gpio/wkup _irq_mask
    pinctrl: exynos: Set pin function to EINT in irq_set_type of GPIO EINTa
    drivers: bus: Move the OMAP interconnect driver to drivers/bus/
    i2c: tegra: dynamically control fast clk
    i2c: tegra: I2_M_NOSTART functionality not supported in Tegra20
    ARM: tegra: clock: remove unused clock entry for i2c
    ARM: tegra: clock: add connection name in i2c clock entry
    i2c: tegra: pass proper name for getting clock
    ARM: tegra: clock: add i2c fast clock entry in clock table
    ARM: EXYNOS: Adds G-Scaler device from Device Tree
    ARM: EXYNOS: Add clock support for G-Scaler
    ARM: EXYNOS: Enable pinctrl driver support for EXYNOS4 device tree enabled platform
    ARM: dts: Add pinctrl node entries for SAMSUNG EXYNOS4210 SoC
    ARM: EXYNOS: skip wakeup interrupt setup if pinctrl driver is used
    ...

    Linus Torvalds
     

19 Sep, 2012

1 commit

  • ARM is moving to stricter checks on readl/write functions,
    so we need to use the correct types everywhere.

    This patch has a few small conflicts with stuff in linux-next, which
    we have to sort out in arm-soc.

    Cc: Linus Walleij
    Cc: Russell King
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

18 Sep, 2012

1 commit

  • This converts the AMBA (PrimeCell) devices on the Integrator/AP
    and Integrator/CP over to probing from the Device Tree if the
    kernel is compiled for Device Tree support.

    We continue to #ifdef out all non-DT code and vice versa on
    respective boot type to get a clean cut.

    We need to add a bunch of auxdata (compare to the Versatile)
    to handle bus names and callbacks alike.

    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     

17 Sep, 2012

3 commits

  • …el/git/swarren/linux-tegra into next/drivers

    From Stephen Warren:

    ARM: tegra: i2c driver enhancements mostly related to clocking

    This branch contains a number of fixes and cleanups to the Tegra I2C
    driver related to clocks. These are based on the common clock conversion
    in order to avoid duplicating the clock driver changes before and after
    the conversion. Finally, a bug-fix related to I2C_M_NOSTART is included.

    This branch is based on previous pull request tegra-for-3.7-common-clk.

    * tag 'tegra-for-3.7-drivers-i2c' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
    i2c: tegra: dynamically control fast clk
    i2c: tegra: I2_M_NOSTART functionality not supported in Tegra20
    ARM: tegra: clock: remove unused clock entry for i2c
    ARM: tegra: clock: add connection name in i2c clock entry
    i2c: tegra: pass proper name for getting clock
    ARM: tegra: clock: add i2c fast clock entry in clock table
    ARM: Tegra: Add smp_twd clock for Tegra20
    ARM: tegra: cpu-tegra: explicitly manage re-parenting
    ARM: tegra: fix overflow in tegra20_pll_clk_round_rate()
    ARM: tegra: Fix data type for io address
    ARM: tegra: remove tegra_timer from tegra_list_clks
    ARM: tegra30: clocks: fix the wrong tegra_audio_sync_clk_ops name
    ARM: tegra: clocks: separate tegra_clk_32k_ops from Tegra20 and Tegra30
    ARM: tegra: Remove duplicate code
    ARM: tegra: Port tegra to generic clock framework
    ARM: tegra: Add clk_tegra structure and helper functions
    ARM: tegra: Rename tegra20 clock file
    ARM: tegra20: Separate out clk ops and clk data
    ARM: tegra30: Separate out clk ops and clk data
    ARM: tegra: fix U16 divider range check
    ...
    + sync to v3.6-rc4

    Resolved remove/modify conflict in arch/arm/mach-sa1100/leds-hackkit.c
    caused by the sync with v3.6-rc4.

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • In the PL010 UART callback a comparison against the location of the
    statically allocated PL010 device is done to figure out which UART
    is doing the callback. This does not play well with dynamic devices
    such as in device tree, so let's check the base address of the
    memory resource inside the amba_device instead.

    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     
  • There is currently a common integrator_init() function set up
    to be called from an arch_initcall(). The problem is that it is
    using machine_is_integrator() which is not working with device
    tree, let's call this from respective machine initilization
    function and add a parameter to tell whether it's the
    Integrator/AP or Integrator/CP instead.

    There are still machine_is*() calls in the Integrator
    machines directory, but this one needs to be fixed lest we
    don't even get a UART console on the Integrator/AP after a
    Device Tree boot.

    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     

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
     

09 Aug, 2012

1 commit

  • Without this patch, building integrator_defconfig results in:

    arch/arm/mach-integrator/core.c:150:1: warning: data definition has no type or storage class [enabled by default]
    arch/arm/mach-integrator/core.c:150:1: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL' [-Wimplicit-int]
    arch/arm/mach-integrator/core.c:150:1: warning: parameter names (without types) in function declaration [enabled by default]

    Signed-off-by: Arnd Bergmann
    Acked-by: Linus Walleij
    Cc: Russell King

    Arnd Bergmann
     

01 Aug, 2012

2 commits


12 Jul, 2012

2 commits

  • This converts the Integrator platform to use common clock
    and the ICST driver. Since from this point not all ARM
    reference platforms use the clock, we define
    CONFIG_PLAT_VERSATILE_CLOCK and select it for all platforms
    except the Integrator.

    Open issue: I could not use the .init_early() field of the
    machine descriptor to initialize the clocks, but had to
    move them to .init_irq(), so presumably .init_early() is
    so early that common clock is not up, and .init_machine()
    is too late since it's needed for the clockevent/clocksource
    initialization. Any suggestions on how to solve this is
    very welcome.

    Cc: Russell King
    Signed-off-by: Linus Walleij
    [mturquette@linaro.org: use 'select' instead of versatile Kconfig]
    Signed-off-by: Mike Turquette

    Linus Walleij
     
  • All the Integrator devices have bus names like "mb:16" which
    I think means "memory base 0x16000000" which is where the
    UART0 is. So let's call it "uart0" because that's what most
    platforms do these days.

    Change this everywhere for the integrator as we prepare for
    some core clock code movement.

    Cc: Russell King
    Signed-off-by: Linus Walleij
    Signed-off-by: Mike Turquette

    Linus Walleij
     

30 Mar, 2012

1 commit

  • Pull more ARM updates from Russell King.

    This got a fair number of conflicts with the split, but
    also with some other sparse-irq and header file include cleanups. They
    all looked pretty trivial, though.

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (59 commits)
    ARM: fix Kconfig warning for HAVE_BPF_JIT
    ARM: 7361/1: provide XIP_VIRT_ADDR for no-MMU builds
    ARM: 7349/1: integrator: convert to sparse irqs
    ARM: 7259/3: net: JIT compiler for packet filters
    ARM: 7334/1: add jump label support
    ARM: 7333/2: jump label: detect %c support for ARM
    ARM: 7338/1: add support for early console output via semihosting
    ARM: use set_current_blocked() and block_sigmask()
    ARM: exec: remove redundant set_fs(USER_DS)
    ARM: 7332/1: extract out code patch function from kprobes
    ARM: 7331/1: extract out insn generation code from ftrace
    ARM: 7330/1: ftrace: use canonical Thumb-2 wide instruction format
    ARM: 7351/1: ftrace: remove useless memory checks
    ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path
    ARM: Versatile Express: add NO_IOPORT
    ARM: get rid of asm/irq.h in asm/prom.h
    ARM: 7319/1: Print debug info for SIGBUS in user faults
    ARM: 7318/1: gic: refactor irq_start assignment
    ARM: 7317/1: irq: avoid NULL check in for_each_irq_desc loop
    ARM: 7315/1: perf: add support for the Cortex-A7 PMU
    ...

    Linus Torvalds
     

29 Mar, 2012

2 commits

  • …m/linux/kernel/git/dhowells/linux-asm_system

    Pull "Disintegrate and delete asm/system.h" from David Howells:
    "Here are a bunch of patches to disintegrate asm/system.h into a set of
    separate bits to relieve the problem of circular inclusion
    dependencies.

    I've built all the working defconfigs from all the arches that I can
    and made sure that they don't break.

    The reason for these patches is that I recently encountered a circular
    dependency problem that came about when I produced some patches to
    optimise get_order() by rewriting it to use ilog2().

    This uses bitops - and on the SH arch asm/bitops.h drags in
    asm-generic/get_order.h by a circuituous route involving asm/system.h.

    The main difficulty seems to be asm/system.h. It holds a number of
    low level bits with no/few dependencies that are commonly used (eg.
    memory barriers) and a number of bits with more dependencies that
    aren't used in many places (eg. switch_to()).

    These patches break asm/system.h up into the following core pieces:

    (1) asm/barrier.h

    Move memory barriers here. This already done for MIPS and Alpha.

    (2) asm/switch_to.h

    Move switch_to() and related stuff here.

    (3) asm/exec.h

    Move arch_align_stack() here. Other process execution related bits
    could perhaps go here from asm/processor.h.

    (4) asm/cmpxchg.h

    Move xchg() and cmpxchg() here as they're full word atomic ops and
    frequently used by atomic_xchg() and atomic_cmpxchg().

    (5) asm/bug.h

    Move die() and related bits.

    (6) asm/auxvec.h

    Move AT_VECTOR_SIZE_ARCH here.

    Other arch headers are created as needed on a per-arch basis."

    Fixed up some conflicts from other header file cleanups and moving code
    around that has happened in the meantime, so David's testing is somewhat
    weakened by that. We'll find out anything that got broken and fix it..

    * tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)
    Delete all instances of asm/system.h
    Remove all #inclusions of asm/system.h
    Add #includes needed to permit the removal of asm/system.h
    Move all declarations of free_initmem() to linux/mm.h
    Disintegrate asm/system.h for OpenRISC
    Split arch_align_stack() out from asm-generic/system.h
    Split the switch_to() wrapper out of asm-generic/system.h
    Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h
    Create asm-generic/barrier.h
    Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h
    Disintegrate asm/system.h for Xtensa
    Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]
    Disintegrate asm/system.h for Tile
    Disintegrate asm/system.h for Sparc
    Disintegrate asm/system.h for SH
    Disintegrate asm/system.h for Score
    Disintegrate asm/system.h for S390
    Disintegrate asm/system.h for PowerPC
    Disintegrate asm/system.h for PA-RISC
    Disintegrate asm/system.h for MN10300
    ...

    Linus Torvalds
     
  • Disintegrate asm/system.h for ARM.

    Signed-off-by: David Howells
    cc: Russell King
    cc: linux-arm-kernel@lists.infradead.org

    David Howells
     

27 Mar, 2012

1 commit


24 Mar, 2012

1 commit


27 Jan, 2012

1 commit


25 Jan, 2012

1 commit


05 Jan, 2012

2 commits


24 Dec, 2011

1 commit


26 Oct, 2011

1 commit

  • * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
    rtmutex: Add missing rcu_read_unlock() in debug_rt_mutex_print_deadlock()
    lockdep: Comment all warnings
    lib: atomic64: Change the type of local lock to raw_spinlock_t
    locking, lib/atomic64: Annotate atomic64_lock::lock as raw
    locking, x86, iommu: Annotate qi->q_lock as raw
    locking, x86, iommu: Annotate irq_2_ir_lock as raw
    locking, x86, iommu: Annotate iommu->register_lock as raw
    locking, dma, ipu: Annotate bank_lock as raw
    locking, ARM: Annotate low level hw locks as raw
    locking, drivers/dca: Annotate dca_lock as raw
    locking, powerpc: Annotate uic->lock as raw
    locking, x86: mce: Annotate cmci_discover_lock as raw
    locking, ACPI: Annotate c3_lock as raw
    locking, oprofile: Annotate oprofilefs lock as raw
    locking, video: Annotate vga console lock as raw
    locking, latencytop: Annotate latency_lock as raw
    locking, timer_stats: Annotate table_lock as raw
    locking, rwsem: Annotate inner lock as raw
    locking, semaphores: Annotate inner lock as raw
    locking, sched: Annotate thread_group_cputimer as raw
    ...

    Fix up conflicts in kernel/posix-cpu-timers.c manually: making
    cputimer->cputime a raw lock conflicted with the ABBA fix in commit
    bcd5cff7216f ("cputimer: Cure lock inversion").

    Linus Torvalds
     

17 Oct, 2011

1 commit

  • We already have a clock definition for the 24MHz clock in
    the Integrator, use that instead of some unclear defines
    from the platform.h header. Also delete the senseless
    comment that the file shouldn't be edited, I just edited it
    and the world didn't come to an end, so it's obviously
    false. If anyone still has the mentioned ".s file" and the
    s2h awk script generating that header, raise your hand
    (and give me your files).

    Acked-by: Thomas Gleixner
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     

13 Sep, 2011

1 commit

  • Annotate the low level hardware locks which must not be preempted.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Thomas Gleixner
    Cc: Russell King
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

19 Feb, 2011

1 commit


26 Nov, 2010

1 commit


31 Jul, 2010

1 commit


27 Jul, 2010

1 commit


22 Jul, 2010

1 commit


16 Jul, 2010

1 commit


02 May, 2010

2 commits


30 Apr, 2010

2 commits