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
     

12 Apr, 2013

1 commit


22 Feb, 2013

2 commits

  • Pull ARM SoC cleanups from Arnd Bergmann:
    "A large number of cleanups, all over the platforms. This is dominated
    largely by the Samsung platforms (s3c, s5p, exynos) and a few of the
    others moving code out of arch/arm into more appropriate subsystems.

    The clocksource and irqchip drivers are now abstracted to the point
    where platforms that are already cleaned up do not need to even
    specify the driver they use, it can all get configured from the device
    tree as we do for normal device drivers. The clocksource changes
    basically touch every single platform in the process.

    We further clean up the use of platform specific header files here,
    with the goal of turning more of the platforms over to being
    "multiplatform" enabled, which implies that they cannot expose their
    headers to architecture independent code any more.

    It is expected that no functional changes are part of the cleanup.
    The overall reduction in total code lines is mostly the result of
    removing broken and obsolete code."

    * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (133 commits)
    ARM: mvebu: correct gated clock documentation
    ARM: kirkwood: add missing include for nsa310
    ARM: exynos: move exynos4210-combiner to drivers/irqchip
    mfd: db8500-prcmu: update resource passing
    drivers/db8500-cpufreq: delete dangling include
    ARM: at91: remove NEOCORE 926 board
    sunxi: Cleanup the reset code and add meaningful registers defines
    ARM: S3C24XX: header mach/regs-mem.h local
    ARM: S3C24XX: header mach/regs-power.h local
    ARM: S3C24XX: header mach/regs-s3c2412-mem.h local
    ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/
    ARM: S3C24XX: transform s3c2443 subirqs into new structure
    ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs
    ARM: S3C24XX: move s3c2443 irq code to irq.c
    ARM: S3C24XX: transform s3c2416 irqs into new structure
    ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs
    ARM: S3C24XX: move s3c2416 irq init to common irq code
    ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property
    ARM: S3C24XX: Move irq syscore-ops to irq-pm
    clocksource: always define CLOCKSOURCE_OF_DECLARE
    ...

    Linus Torvalds
     
  • Pull non-critical ARM SoC bug fixes from Arnd Bergmann:
    "Bug fixes that did not make it into v3.8, mostly because they were not
    considered important enough, and in some cases because bugs only show
    up in combination with other patches destined for 3.9. This includes
    a few larger patches for GPIO on the Marvell PXA platform and a lot of
    Samsung specific bug fixes, as well as a series from Arnd to fix older
    build warnings."

    * tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
    ARM: SPEAr13xx: Enable CONFIG_ARCH_HAS_CPUFREQ
    ARM: imx: MACH_MX31ADS_WM1133_EV1 needs REGULATOR_WM8350
    scripts/sortextable: silence script output
    ARM: s3c: i2c: add platform_device forward declaration
    ARM: mvebu: allow selecting mvebu without Armada XP
    ARM: pick Versatile by default for !MMU
    ARM: integrator: fix build with INTEGRATOR_AP off
    ARM: integrator/versatile: fix NOMMU warnings
    ARM: sa1100: don't warn about mach/ide.h
    ARM: shmobile: fix defconfig warning on CONFIG_USB
    ARM: w90x900: fix legacy assembly syntax
    ARM: samsung: fix assembly syntax for new gas
    ARM: disable virt_to_bus/virt_to_bus almost everywhere
    ARM: dts: Correct pin configuration of SD 4 for exynos4x12-pinctrl
    ARM: SAMSUNG: Silence empty switch warning in fimc-core.h
    ARM: SAMSUNG: Silence empty switch warning in sdhci.h
    ARM: msm: proc_comm_boot_wait should not be __init
    arm: vt8500: Update MAINTAINERS entry for arch-vt8500
    ARM: integrator: ensure ap_syscon_base is initialised when !CONFIG_MMU
    ARM: S5PV210: Fix early uart output in fifo mode
    ...

    Linus Torvalds
     

14 Feb, 2013

2 commits

  • The introduction of ARCH_MULTIPLATFORM changed
    the default for nommu kernels from Versatile to
    Integrator, which is less common, and does not
    currently build for allnoconfig because that does
    not select any of the CPUs.

    This also ensures that at least one of the three
    board files in versatile are enabled, which lets
    us successfully build an allnoconfig kernel.

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

    Arnd Bergmann
     
  • On NOMMU kernels, the io_desc variables are unused
    because we don't use the MMU to remap the MMIO
    areas.

    Marking these variables as __maybe_unused easily
    avoids the otherwise harmless warnings like

    warning: 'versatile_io_desc' defined but not used

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

    Arnd Bergmann
     

06 Feb, 2013

2 commits

  • The PCI IRQs were regressing due to two things:

    - The PCI glue layer was using an hard-coded IRQ 27 offset.
    This caused the immediate regression.

    - The SIC IRQ mask was inverted (i.e. a bit was indeed set to
    one for each valid IRQ on the SIC, but accidentally inverted
    in the init call). This has been around forever, but we have
    been saved by some other forgiving code that would reserve
    IRQ descriptors in this range, as the versatile is
    non-sparse.

    When the IRQs were bumped up 32 steps so as to avoid using IRQ
    zero and avoid touching the 16 legacy IRQs, things broke.

    Introduce an explicit valid mask for the IRQs that are active
    on the PIC/SIC, and pass that. Use the BIT() macro from
    to make sure we hit the right bits, readily
    defined in .

    Reported-by: Tetsuo Handa
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     
  • …-2.6 into next/cleanup

    From Shawn Guo:
    The series cleans up ARCH_HAS_DECOMP_WDOG and arch_decomp_wdog which
    are unused on ARM architecure. Samsung has some code setting up wdog
    in arch_decomp_wdog(). But since CONFIG_S3C_BOOT_WATCHDOG is defined
    nowhere, it will not run. Otherwise, system can not boot at all when
    wdog is set up but no one pats it.

    * tag 'cleanup-decompwdog-3.9' of git://git.linaro.org/people/shawnguo/linux-2.6:
    ARM: samsung: remove unused arch_decomp_wdog() code
    ARM: remove unused arch_decomp_wdog()
    ARM: decompress: remove unused ARCH_HAS_DECOMP_WDOG

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

    Olof Johansson
     

15 Jan, 2013

2 commits

  • From Rob Herring:

    Initial irqchip init infrastructure and GIC and VIC clean-ups

    This creates irqchip initialization infrastructure from Thomas
    Petazzoni. The VIC and GIC irqchip code is moved to drivers/irqchips
    and adapted to use the new infrastructure. All DT enabled platforms
    using GIC and VIC are converted over to use the new irqchip_init.

    * tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux:
    irqchip: Move ARM vic.h to include/linux/irqchip/arm-vic.h
    ARM: picoxcell: use common irqchip_init function
    ARM: spear: use common irqchip_init function
    irqchip: Move ARM VIC to drivers/irqchip
    ARM: samsung: remove unused tick.h
    ARM: remove unneeded vic.h includes
    ARM: remove mach .handle_irq for VIC users
    ARM: VIC: set handle_arch_irq in VIC initialization
    ARM: VIC: shrink down vic.h
    irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h
    ARM: use common irqchip_init for GIC init
    irqchip: Move ARM GIC to drivers/irqchip
    ARM: remove mach .handle_irq for GIC users
    ARM: GIC: set handle_arch_irq in GIC initialization
    ARM: GIC: remove direct use of gic_raise_softirq
    ARM: GIC: remove assembly ifdefs from gic.h
    ARM: mach-ux500: use SGI0 to wake up the other core
    arm: add set_handle_irq() to register the parent IRQ controller handler function
    irqchip: add basic infrastructure
    irqchip: add to the directories part of the IRQ subsystem in MAINTAINERS

    Fixed up massive merge conflicts with the timer cleanup due to adjacent changes:

    Signed-off-by: Olof Johansson

    Conflicts:
    arch/arm/mach-bcm/board_bcm.c
    arch/arm/mach-cns3xxx/cns3420vb.c
    arch/arm/mach-ep93xx/adssphere.c
    arch/arm/mach-ep93xx/edb93xx.c
    arch/arm/mach-ep93xx/gesbc9312.c
    arch/arm/mach-ep93xx/micro9.c
    arch/arm/mach-ep93xx/simone.c
    arch/arm/mach-ep93xx/snappercl15.c
    arch/arm/mach-ep93xx/ts72xx.c
    arch/arm/mach-ep93xx/vision_ep9307.c
    arch/arm/mach-highbank/highbank.c
    arch/arm/mach-imx/mach-imx6q.c
    arch/arm/mach-msm/board-dt-8960.c
    arch/arm/mach-netx/nxdb500.c
    arch/arm/mach-netx/nxdkn.c
    arch/arm/mach-netx/nxeb500hmi.c
    arch/arm/mach-nomadik/board-nhk8815.c
    arch/arm/mach-picoxcell/common.c
    arch/arm/mach-realview/realview_eb.c
    arch/arm/mach-realview/realview_pb1176.c
    arch/arm/mach-realview/realview_pb11mp.c
    arch/arm/mach-realview/realview_pba8.c
    arch/arm/mach-realview/realview_pbx.c
    arch/arm/mach-socfpga/socfpga.c
    arch/arm/mach-spear13xx/spear1310.c
    arch/arm/mach-spear13xx/spear1340.c
    arch/arm/mach-spear13xx/spear13xx.c
    arch/arm/mach-spear3xx/spear300.c
    arch/arm/mach-spear3xx/spear310.c
    arch/arm/mach-spear3xx/spear320.c
    arch/arm/mach-spear3xx/spear3xx.c
    arch/arm/mach-spear6xx/spear6xx.c
    arch/arm/mach-tegra/board-dt-tegra20.c
    arch/arm/mach-tegra/board-dt-tegra30.c
    arch/arm/mach-u300/core.c
    arch/arm/mach-ux500/board-mop500.c
    arch/arm/mach-ux500/cpu-db8500.c
    arch/arm/mach-versatile/versatile_ab.c
    arch/arm/mach-versatile/versatile_dt.c
    arch/arm/mach-versatile/versatile_pb.c
    arch/arm/mach-vexpress/v2m.c
    include/asm-generic/vmlinux.lds.h

    Olof Johansson
     
  • Clockevent cleanup series from Shawn Guo.

    Resolved move/change conflict in mach-pxa/time.c due to the sys_timer
    cleanup.

    * clocksource/cleanup:
    clocksource: use clockevents_config_and_register() where possible
    ARM: use clockevents_config_and_register() where possible
    clockevents: export clockevents_config_and_register for module use
    + sync to Linux 3.8-rc3

    Signed-off-by: Olof Johansson

    Conflicts:
    arch/arm/mach-pxa/time.c

    Olof Johansson
     

13 Jan, 2013

3 commits

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

    Signed-off-by: Rob Herring
    Cc: Thomas Gleixner
    Cc: Hartley Sweeten
    Cc: Ryan Mallon
    Cc: Russell King
    Cc: Alessandro Rubini
    Acked-by: Linus Walleij
    Cc: STEricsson
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Cc: linux-samsung-soc@vger.kernel.org

    Rob Herring
     
  • Numerous includes of asm/hardware/vic.h aren't needed, so remove them.

    Signed-off-by: Rob Herring
    Acked-by: H Hartley Sweeten
    Cc: Ryan Mallon
    Cc: Russell King
    Cc: Hubert Feurstein
    Cc: Alessandro Rubini
    Acked-by: Linus Walleij
    Cc: STEricsson
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Acked-by: Mark Brown
    Cc: Kyungmin Park
    Acked-By: Maxime Ripard
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: patches@opensource.wolfsonmicro.com
    Acked-by: Arnd Bergmann

    Rob Herring
     
  • Now that the VIC initialization sets up the handle_arch_irq pointer, we
    can remove it for all machines and make it static. Move vic_handle_irq
    to avoid a forward declaration.

    Signed-off-by: Rob Herring
    Cc: Ryan Mallon
    Cc: Russell King
    Cc: Hubert Feurstein
    Cc: Alessandro Rubini
    Cc: STEricsson
    Cc: Ben Dooks
    Cc: Kyungmin Park
    Cc: Shiraz Hashim
    Cc: Rajeev Kumar
    Acked-by: H Hartley Sweeten
    Acked-by: Jamie Iles
    Acked-by: Linus Walleij
    Acked-by: Mark Brown
    Acked-by: Viresh Kumar
    Acked-by: Kukjin Kim
    Acked-by: Olof Johansson
    Acked-by: Arnd Bergmann

    Rob Herring
     

11 Jan, 2013

1 commit

  • With ARCH_HAS_DECOMP_WDOG removed from arch/arm/boot/compressed/decompress.c,
    all the arch_decomp_wdog() definition at platform level is unneeded.
    Remmove it.

    Signed-off-by: Shawn Guo
    Acked-by: Nicolas Pitre
    Acked-by: Jason Cooper

    Shawn Guo
     

02 Jan, 2013

1 commit


25 Dec, 2012

1 commit

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

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

    Includes mach-omap2 fixes from Igor Grinberg.

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

    Stephen Warren
     

05 Nov, 2012

1 commit


14 Oct, 2012

1 commit

  • As suggested by Andrew Morton:

    This is a pet peeve of mine. Any time there's a long list of items
    (header file inclusions, kconfig entries, array initalisers, etc) and
    someone wants to add a new item, they *always* go and stick it at the
    end of the list.

    Guys, don't do this. Either put the new item into a randomly-chosen
    position or, probably better, alphanumerically sort the list.

    lets sort all our select statements alphanumerically. This commit was
    created by the following perl:

    while (<>) {
    while (/\\\s*$/) {
    $_ .= <>;
    }
    undef %selects if /^\s*config\s+/;
    if (/^\s+select\s+(\w+).*/) {
    if (defined($selects{$1})) {
    if ($selects{$1} eq $_) {
    print STDERR "Warning: removing duplicated $1 entry\n";
    } else {
    print STDERR "Error: $1 differently selected\n".
    "\tOld: $selects{$1}\n".
    "\tNew: $_\n";
    exit 1;
    }
    }
    $selects{$1} = $_;
    next;
    }
    if (%selects and (/^\s*$/ or /^\s+help/ or /^\s+---help---/ or
    /^endif/ or /^endchoice/)) {
    foreach $k (sort (keys %selects)) {
    print "$selects{$k}";
    }
    undef %selects;
    }
    print;
    }
    if (%selects) {
    foreach $k (sort (keys %selects)) {
    print "$selects{$k}";
    }
    }

    It found two duplicates:

    Warning: removing duplicated S5P_SETUP_MIPIPHY entry
    Warning: removing duplicated HARDIRQS_SW_RESEND entry

    and they are identical duplicates, hence the shrinkage in the diffstat
    of two lines.

    We have four testers reporting success of this change (Tony, Stephen,
    Linus and Sekhar.)

    Acked-by: Jason Cooper
    Acked-by: Tony Lindgren
    Acked-by: Stephen Warren
    Acked-by: Linus Walleij
    Acked-by: Sekhar Nori
    Signed-off-by: Russell King

    Russell King
     

02 Oct, 2012

2 commits

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

21 Sep, 2012

1 commit

  • Enable initial ARM multi-platform support for highbank, mvebu,
    socfpga, picoxcell, and vexpress.

    Multi-platform support is dependent on mach/gpio.h removal and
    restructuring of DEBUG_LL and dtb build rules included in this branch.

    This has been built for all defconfigs, and booted on highbank with
    all 5 platforms enabled.

    By Rob Herring (18) and Arnd Bergmann (1)
    via Rob Herring
    * tag 'multi-platform-for-3.7' of git://sources.calxeda.com/kernel/linux:
    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
    ARM: orion: move custom gpio functions to orion-gpio.h
    ARM: shmobile: move custom gpio functions to sh-gpio.h
    ARM: pxa: use gpio_to_irq for sharppm_sl
    net: pxaficp_ir: add irq resources
    usb: pxa27x_udc: remove IRQ_USB define
    staging: ste_rmi4: remove gpio.h include

    Conflicts due to addition of bcm2835 and removal of pnx4008 in:
    arch/arm/Kconfig
    arch/arm/Makefile

    Conflicts due to new dtb targets, moved to arch/arm/boot/dts/Makefile in:
    arch/arm/mach-imx/Makefile.boot
    arch/arm/mach-mxs/Makefile.boot
    arch/arm/mach-tegra/Makefile.boot

    Signed-off-by: Olof Johansson

    Olof Johansson
     

14 Sep, 2012

1 commit

  • Most platforms don't need mach/gpio.h and it prevents multi-platform
    kernel images. Add CONFIG_NEED_MACH_GPIO_H and make platforns select it
    if they need gpio.h. This is platforms that define __GPIOLIB_COMPLEX
    or have lots of implicit includes pulled in by mach/gpio.h.

    at91 and omap have gpio clean-up pending and can drop
    CONFIG_NEED_MACH_GPIO_H once that is in.

    Signed-off-by: Rob Herring
    Cc: Russell King
    Acked-by: Jason Cooper
    Acked-by: Linus Walleij

    Rob Herring
     

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
     

26 Jul, 2012

1 commit


05 Jul, 2012

1 commit


17 Jun, 2012

1 commit

  • With commit 4d5fc58dbe34b (ARM: remove bunch of now unused
    mach/io.h files), the I/O space setup was completely broken on
    versatile. This patch fixes that and prepares for further
    I/O space clean-up.

    I/O space handling on the versatile platform is currently
    broken in multiple ways. Most importantly, the ports do
    not get mapped into the virtual address space at all.

    Also, there is some amount of confusion between PCI I/O
    space and other statically mapped MMIO registers in the
    platform code:

    * The __io_address() macro that is used to access the
    platform register maps to the same __io macro that gets
    used for I/O space.

    * The IO_SPACE_LIMIT is set to a value that is much larger
    than the total available space.

    * The I/O resource of the PCI bus is set to the physical
    address of the mapping, which is way outside of the
    actual I/O space limit as well as the address range that
    gets decoded by traditional PCI cards.

    * No attempt is made to stay outside of the ISA port range
    that some device drivers try access.

    * No resource gets requested as a child of ioport_resource,
    but an IORESOURCE_IO type mapping gets requested
    as a child of iomem_resource.

    This patch attempts to correct all of the above. This makes
    it possible to use virtio-pci based virtual devices as well
    as actual PCI cards including those with legacy ISA port
    ranges like VGA.

    Some of the issues seem to be duplicated on other platforms.

    Signed-off-by: Arnd Bergmann
    [rob: update to 3.5-rc2 and io.h cleanup related changes]
    Signed-off-by: Rob Herring
    Tested-by: Robert Schwebel
    Signed-off-by: Olof Johansson

    Arnd Bergmann
     

21 May, 2012

1 commit


14 May, 2012

3 commits

  • Most PCI implementations perform simple root bus scanning. Rather than
    having each group of platforms provide a duplicated bus scan function,
    provide the PCI configuration ops structure via the hw_pci structure,
    and call the root bus scanning function from core ARM PCI code.

    Acked-by: Krzysztof Hałasa
    Signed-off-by: Russell King

    Russell King
     
  • Most PCI implementations use the standard PCI swizzle function, which
    handles the well defined behaviour of PCI-to-PCI bridges which can be
    found on cards (eg, four port ethernet cards.)

    Rather than having almost every platform specify the standard swizzle
    function, make this the default when no swizzle function is supplied.
    Therefore, a swizzle function only needs to be provided when there is
    something exceptional which needs to be handled.

    This gets rid of the swizzle initializer from 47 files, and leaves us
    with just two platforms specifying a swizzle function: ARM Integrator
    and Chalice CATS.

    Acked-by: Krzysztof Hałasa
    Signed-off-by: Russell King

    Russell King
     
  • This is at odds with the documentation in the file; it says pin 1 on
    slots 24,25,26,27 map to IRQs 27,28,29,30, but the function will always
    be entered with slot=0 due to the lack of swizzle function. Fix this
    function to behave as the comments say, and use the standard PCI
    swizzle.

    Signed-off-by: Russell King

    Russell King
     

04 May, 2012

2 commits

  • The MMCI and PL022 SPI drivers sure need their platform data to
    work on the Versatile as well. (This does not fix the auxdata for
    MMCI instance mmc1 on the Versatile PB though.)

    Cc: Niklas Hernaeus
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     
  • This does two things to the FPGA IRQ controller in the versatile
    family:

    - Convert to MULTI_IRQ_HANDLER so we can drop the entry macro
    from the Integrator. The C IRQ handler was inspired from
    arch/arm/common/vic.c, recent bug discovered in this handler was
    accounted for.
    - Convert to using IRQ domains so we can get rid of the NO_IRQ
    mess and proceed with device tree and such stuff.

    As part of the exercise, bump all the low IRQ numbers on the
    Integrator PIC to start from 1 rather than 0, since IRQ 0 is
    now NO_IRQ. The Linux IRQ numbers are thus entirely decoupled
    from the hardware IRQ numbers in this controller.

    I was unable to split this patch. The main reason is the half-done
    conversion to device tree in Versatile.

    Tested on Integrator/AP and Integrator/CP.

    Cc: Grant Likely
    Acked-by: Rob Herring
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     

03 Apr, 2012

1 commit

  • commit 9f786d033d025ab7d2c4d1b959aa81d935eb9e19

    "arm/PCI: get rid of device resource fixups"

    causes this failure on the versatile:

    arch/arm/mach-versatile/pci.c: In function 'pci_versatile_setup_resources':
    arch/arm/mach-versatile/pci.c:221: error: 'sys' undeclared (first use in this function)

    because the versatile wasn't passing in the full struct pci_sys_data
    but only the resource sub-field. Change it to pass in the full
    struct so that sys will be in scope.

    Reported-by: Bruce Ashfield
    Signed-off-by: Paul Gortmaker
    Signed-off-by: Olof Johansson

    Paul Gortmaker
     

30 Mar, 2012

1 commit

  • Pull "ARM: cleanups of io includes" from Olof Johansson:
    "Rob Herring has done a sweeping change cleaning up all of the
    mach/io.h includes, moving some of the oft-repeated macros to a common
    location and removing a bunch of boiler plate. This is another step
    closer to a common zImage for multiple platforms."

    Fix up various fairly trivial conflicts ( removal vs changes
    around it, tegra localtimer.o is *still* gone, yadda-yadda).

    * tag 'cleanup2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (29 commits)
    ARM: tegra: Include assembler.h in sleep.S to fix build break
    ARM: pxa: use common IOMEM definition
    ARM: dma-mapping: convert ARCH_HAS_DMA_SET_COHERENT_MASK to kconfig symbol
    ARM: __io abuse cleanup
    ARM: create a common IOMEM definition
    ARM: iop13xx: fix missing declaration of iop13xx_init_early
    ARM: fix ioremap/iounmap for !CONFIG_MMU
    ARM: kill off __mem_pci
    ARM: remove bunch of now unused mach/io.h files
    ARM: make mach/io.h include optional
    ARM: clps711x: remove unneeded include of mach/io.h
    ARM: dove: add explicit include of dove.h to addr-map.c
    ARM: at91: add explicit include of hardware.h to uncompressor
    ARM: ep93xx: clean-up mach/io.h
    ARM: tegra: clean-up mach/io.h
    ARM: orion5x: clean-up mach/io.h
    ARM: davinci: remove unneeded mach/io.h include
    [media] davinci: remove includes of mach/io.h
    ARM: OMAP: Remove remaining includes for mach/io.h
    ARM: msm: clean-up mach/io.h
    ...

    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
     

24 Mar, 2012

2 commits

  • Pull #1 ARM updates from Russell King:
    "This one covers stuff which Arnd is waiting for me to push, as this is
    shared between both our trees and probably other trees elsewhere.

    Essentially, this contains:
    - AMBA primecell device initializer updates - mostly shrinking the
    size of the device declarations in platform code to something more
    reasonable.
    - Getting rid of the NO_IRQ crap from AMBA primecell stuff.
    - Nicolas' idle cleanups. This in combination with the restart
    cleanups from the last merge window results in a great many
    mach/system.h files being deleted."

    Yay: ~80 files, ~2000 lines deleted.

    * 'for-armsoc' of git://git.linaro.org/people/rmk/linux-arm: (60 commits)
    ARM: remove disable_fiq and arch_ret_to_user macros
    ARM: make entry-macro.S depend on !MULTI_IRQ_HANDLER
    ARM: rpc: make default fiq handler run-time installed
    ARM: make arch_ret_to_user macro optional
    ARM: amba: samsung: use common amba device initializers
    ARM: amba: spear: use common amba device initializers
    ARM: amba: nomadik: use common amba device initializers
    ARM: amba: u300: use common amba device initializers
    ARM: amba: lpc32xx: use common amba device initializers
    ARM: amba: netx: use common amba device initializers
    ARM: amba: bcmring: use common amba device initializers
    ARM: amba: ep93xx: use common amba device initializers
    ARM: amba: omap2: use common amba device initializers
    ARM: amba: integrator: use common amba device initializers
    ARM: amba: realview: get rid of private platform amba_device initializer
    ARM: amba: versatile: get rid of private platform amba_device initializer
    ARM: amba: vexpress: get rid of private platform amba_device initializer
    ARM: amba: provide common initializers for static amba devices
    ARM: amba: make use of -1 IRQs warn
    ARM: amba: u300: get rid of NO_IRQ initializers
    ...

    Linus Torvalds
     
  • Pull PCI changes (including maintainer change) from Jesse Barnes:
    "This pull has some good cleanups from Bjorn and Yinghai, as well as
    some more code from Yinghai to better handle resource re-allocation
    when enabled.

    There's also a new initcall_debug feature from Arjan which will print
    out quirk timing information to help identify slow quirks for fixing
    or refinement (Yinghai sent in a few patches to do just that once the
    new debug code landed).

    Beyond that, I'm handing off PCI maintainership to Bjorn Helgaas.
    He's been a core PCI and Linux contributor for some time now, and has
    kindly volunteered to take over. I just don't feel I have the time
    for PCI review and work that it deserves lately (I've taken on some
    other projects), and haven't been as responsive lately as I'd like, so
    I approached Bjorn asking if he'd like to manage things. He's going
    to give it a try, and I'm confident he'll do at least as well as I
    have in keeping the tree managed, patches flowing, and keeping things
    stable."

    Fix up some fairly trivial conflicts due to other cleanups (mips device
    resource fixup cleanups clashing with list handling cleanup, ppc iseries
    removal clashing with pci_probe_only cleanup etc)

    * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (112 commits)
    PCI: Bjorn gets PCI hotplug too
    PCI: hand PCI maintenance over to Bjorn Helgaas
    unicore32/PCI: move include to asm/pci.h
    sparc/PCI: convert devtree and arch-probed bus addresses to resource
    powerpc/PCI: allow reallocation on PA Semi
    powerpc/PCI: convert devtree bus addresses to resource
    powerpc/PCI: compute I/O space bus-to-resource offset consistently
    arm/PCI: don't export pci_flags
    PCI: fix bridge I/O window bus-to-resource conversion
    x86/PCI: add spinlock held check to 'pcibios_fwaddrmap_lookup()'
    PCI / PCIe: Introduce command line option to disable ARI
    PCI: make acpihp use __pci_remove_bus_device instead
    PCI: export __pci_remove_bus_device
    PCI: Rename pci_remove_behind_bridge to pci_stop_and_remove_behind_bridge
    PCI: Rename pci_remove_bus_device to pci_stop_and_remove_bus_device
    PCI: print out PCI device info along with duration
    PCI: Move "pci reassigndev resource alignment" out of quirks.c
    PCI: Use class for quirk for usb host controller fixup
    PCI: Use class for quirk for ti816x class fixup
    PCI: Use class for quirk for intel e100 interrupt fixup
    ...

    Linus Torvalds
     

07 Mar, 2012

1 commit

  • Now that many platforms don't need mach/io.h, remove the unused ones.

    Signed-off-by: Rob Herring
    Acked-by: Shawn Guo
    Acked-by: Linus Walleij
    Acked-by: H Hartley Sweeten
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: Jamie Iles
    Acked-by: Pawel Moll
    Acked-by: Nicolas Pitre

    Rob Herring
     

24 Feb, 2012

1 commit