summaryrefslogtreecommitdiffstats
path: root/arch/arm
AgeCommit message (Collapse)Author
2011-10-23ARM: gic, local timers: use the request_percpu_irq() interfaceMarc Zyngier
This patch remove the hardcoded link between local timers and PPIs, and convert the PPI users (TWD, MCT and MSM timers) to the new *_percpu_irq interface. Also some collateral cleanup (local_timer_ack() is gone, and the interrupt handler is strictly private to each driver). PPIs are now useable for more than just the local timers. Additional testing by David Brown (msm8250 and msm8660) and Shawn Guo (imx6q). Cc: David Brown <davidb@codeaurora.org> Cc: Thomas Gleixner <tglx@linutronix.de> Acked-by: David Brown <davidb@codeaurora.org> Tested-by: David Brown <davidb@codeaurora.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2011-10-23ARM: gic: consolidate PPI handlingMarc Zyngier
PPI handling is a bit of an odd beast. It uses its own low level handling code and is hardwired to the local timers (hence lacking a registration interface). Instead, switch the low handling to the normal SPI handling code. PPIs are handled by the handle_percpu_devid_irq flow. This also allows the removal of some duplicated code. Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: David Brown <davidb@codeaurora.org> Cc: Bryan Huntsman <bryanh@codeaurora.org> Cc: Tony Lindgren <tony@atomide.com> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Magnus Damm <magnus.damm@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Acked-by: David Brown <davidb@codeaurora.org> Tested-by: David Brown <davidb@codeaurora.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2011-10-22ARM: 7129/1: Add __arm_ioremap_exec for mapping external memory as MT_MEMORYTony Lindgren
This allows mapping external memory such as SRAM for use. This is needed for some small chunks of code, such as reprogramming SDRAM memory source clocks that can't be executed in SDRAM. Other use cases include some PM related code. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Acked-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-22ARM: 7136/1: pl330: Fix a race conditionJavi Merino
If two requests have been submitted and one of them is running, if you call pl330_chan_ctrl(ch_id, PL330_OP_START), there's a window of time between the spin_lock_irqsave() and the _state() check in which the running transaction may finish. In that case, we don't receive the interrupt (because they are disabled), but _start() sees that the DMA is stopped, so it starts it. The problem is that it sends the transaction that has just finished again, because pl330_update() hasn't mark it as done yet. This patch fixes this race condition by not calling _start() if the DMA is already executing transactions. When interrupts are reenabled, pl330_update() will call _start(). Reference: <1317892206-3600-1-git-send-email-javi.merino@arm.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Acked-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-22Merge branch 'pm-domains' into pm-for-linusRafael J. Wysocki
* pm-domains: ARM: mach-shmobile: sh7372 A4R support (v4) ARM: mach-shmobile: sh7372 A3SP support (v4) PM / Sleep: Mark devices involved in wakeup signaling during suspend
2011-10-22ARM: mach-shmobile: sh7372 A4R support (v4)Magnus Damm
This change adds support for the sh7372 A4R power domain. The sh7372 A4R hardware power domain contains the SH CPU Core and a set of I/O devices including multimedia accelerators and I2C controllers. One special case about A4R is the INTCS interrupt controller that needs to be saved and restored to keep working as expected. Also the LCDC hardware blocks are in a different hardware power domain but have their IRQs routed only through INTCS. So as long as LCDCs are active we cannot power down INTCS because that would risk losing interrupts. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-10-22ARM: mach-shmobile: sh7372 A3SP support (v4)Magnus Damm
This change adds support for the sh7372 A3SP power domain. The sh7372 A3SP hardware power domain contains a wide range of I/O devices. The list of I/O devices include SCIF serial ports, DMA Engine hardware, SD and MMC controller hardware, USB controllers and I2C master controllers. This patch adds the A3SP low level code which powers the hardware power domain on and off. It also ties in platform devices to the pm domain support code. It is worth noting that the serial console is hooked up to SCIFA0 on most sh7372 boards, and the SCIFA0 port is included in the A3SP hardware power domain. For this reason we cannot output debug messages from the low level power control code in the case of A3SP. QoS support is needed in drivers before we can enable the A3SP power control on the fly. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-10-22ARM: S3C24XX: Fix s3c24xx build errors if !CONFIG_PMDomenico Andreoli
v2: - register_syscore_ops(&s3c24xx_irq_syscore_ops) does not need to be conditionally compiled out, it is already optimized out on !CONFIG_PM - fix also s3c2412 and s3c2416 affected by the same build issue v1: s3c2440.c fails to build if !CONFIG_PM because in such case s3c2410_pm_syscore_ops is not defined. Same error should happen also in s3c2410.c and s3c2442.c Signed-off-by: Domenico Andreoli <cavokz@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2011-10-21Merge branch 'depends/rmk/gpio' into next/boardArnd Bergmann
Conflicts: arch/arm/mach-at91/board-usb-a9260.c arch/arm/mach-at91/board-usb-a9263.c arch/arm/mach-tegra/board-paz00.h arch/arm/mach-tegra/board-seaboard.h
2011-10-21Merge branches 'amd/fixes', 'debug/dma-api', 'arm/omap', 'arm/msm', 'core', ↵Joerg Roedel
'iommu/fault-reporting' and 'api/iommu-ops-per-bus' into next Conflicts: drivers/iommu/amd_iommu.c drivers/iommu/iommu.c
2011-10-21ARM: S5P: fix offset calculation on gpio-interruptMarek Szyprowski
Offsets of the irq controller registers were calculated correctly only for first GPIO bank. This patch fixes calculation of the register offsets for all GPIO banks. Reported-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2011-10-20ARM: smp: fix clipping of number of CPUsRussell King
Rather than clipping the number of CPUs using the compile-time NR_CPUS constant, use the runtime nr_cpu_ids value instead. This allows the nr_cpus command line option to work as expected. Cc: <stable@kernel.org> Reported-by: Mark Salter <msalter@redhat.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-20ARM: 7137/1: Fix error upon adding LL debugAfzal Mohammed
Upon adding new board LL debug support, if the resultant code addition would not cause PC relative offset of "hexbuf" from "adr r2, hexbuf" (+2) instruction to be representable in a shifted 8-bit value (hence indirectly putting higher aligment requirement on larger offsets), following error occurs, arch/arm/kernel/debug.S: Assembler messages: arch/arm/kernel/debug.S:138: Error: invalid constant (428) after fixup Fix it by bringing "hexbuf" closer so that "adr" can have the offset. Signed-off-by: Afzal Mohammed <afzal@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-20Merge branch 'imx/cleanup' into next/cleanupArnd Bergmann
2011-10-20Merge branch 'imx-cleanups-for-arnd' of ↵Arnd Bergmann
git://git.pengutronix.de/git/imx/linux-2.6 into imx/cleanup
2011-10-20Merge branch 'at91/trng' into next/driverArnd Bergmann
2011-10-20Merge branch 'samsung/devel' into next/devel2Arnd Bergmann
2011-10-20Merge branch 'tegra/devel' into next/develArnd Bergmann
2011-10-20Merge branch 'depends/rmk/smp' into tmpArnd Bergmann
2011-10-20Merge branch 'depends/rmk/debug' into tmpArnd Bergmann
2011-10-20Merge branches 'cross-platform/debug_ll' and 'cross-platform/cpu-mapping' ↵Arnd Bergmann
into next/cross-platform
2011-10-20Merge branch 'imx/devel' into next/develArnd Bergmann
2011-10-20Merge branch 'imx/board' into next/boardArnd Bergmann
2011-10-20Merge branches 'imx/pata' and 'imx/sata' into next/driverArnd Bergmann
Conflicts: arch/arm/mach-mx5/clock-mx51-mx53.c arch/arm/mach-mx5/devices-imx53.h
2011-10-20Merge branch 'imx-features-for-arnd' of ↵Arnd Bergmann
git://git.pengutronix.de/git/imx/linux-2.6 into imx/devel Conflicts: arch/arm/mach-mx5/clock-mx51-mx53.c arch/arm/mach-mx5/devices-imx53.h
2011-10-20Merge branch 'tegra/cleanup' into next/cleanupArnd Bergmann
2011-10-20Merge branch 'samsung/devel' of ↵Arnd Bergmann
git+ssh://git.linaro.org/home/arndbergmann/public_git/arm-soc into next/devel2
2011-10-19ARM: OMAP: Warn if omap_ioremap is called before SoC detectionTony Lindgren
We don't have cpu_is_omapxxxx SoC detection initialized until SoC detection is initialized from init_early. Note that with the common map_io we should no longer need cpu_is_omapxxxx for ioremap. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
2011-10-19ARM: OMAP: Move set_globals initialization to happen in init_earlyTony Lindgren
Otherwise we can't do generic map_io as we currently rely on static mappings that work only because of arch_ioremap. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2011-10-19ARM: OMAP: Map SRAM later on with ioremap_exec()Tony Lindgren
This allows us to remove omap hacks for map_io. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2011-10-19ARM: OMAP: Remove calls to SRAM allocations for framebufferTony Lindgren
This assumes fixed mappings which will not work once we move to use ioremap_exec(). It seems that these are currently not in use, or in use for some out of tree corner cases. If SRAM support for framebuffer is wanted, it should be done with ioremap in the driver. Note that further removal of the code can now be done, but that can be done seprately by the driver maintainers. Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2011-10-19ARM: OMAP: Avoid cpu_is_omapxxxx usage until map_io is doneTony Lindgren
This way we don't need to initialize SoC detection early and can start using generic map_io. Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2011-10-19ARM: OMAP1: Use generic map_io, init_early and init_irqTony Lindgren
This allows removing omap hacks for map_io allowing generic map_io. Note that in the future we can't do cpu_is_omapxxxx detection until in init_early. This means that board-innovator.c now assumes 15xx only, and board-generic.c assumes 16xx only. This is best fixed later on by passing the SoC type from device tree. Signed-off-by: Tony Lindgren <tony@atomide.com>
2011-10-19Merge branches 'cleanups/mxs', 'cleanups/mx3-defconfig' and ↵Sascha Hauer
'cleanups/includes' into imx-cleanups-for-arnd
2011-10-18Merge branch 'mach_memory_h' of git://git.linaro.org/people/nico/linux into ↵Russell King
devel-stable
2011-10-18arm/mx5: add device tree support for imx51 babbageShawn Guo
It adds device tree support for imx51 babbage board. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-18arm/mx5: add device tree support for imx53 boardsShawn Guo
It adds device tree support for imx53 boards. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-18ARM: mach-mxs: fix machines' initializers orderLauri Hintsala
Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-18ARM: S3C64XX: Fix SoC identification for S3C64xx devicesMark Brown
The IS_SAMSUNG_CPU() macro works by comparing the CPU ID mask exactly with the CPU ID. This was failing for S3C64xx SoCs as in order to support identification of the exact device the mask covers both variants of the chip, meaning that the test would always fail on S3C6410 devices. This in turn caused the core GPIO subsystem to fail to identify the CPU and not support any GPIOs, crippling the system. As a minimally invasive fix change the test for the class to be done by checking each implementation and oring them together. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2011-10-17ARM: 7135/1: ep93xx: bring back missing <mach/gpio.h>Mika Westerberg
Change bd5f12a2476 (ARM: 7042/3: mach-ep93xx: break out GPIO driver specifics) accidentally removed the ep93xx <mach/gpio.h> instead of making it an empty file. This causes compilation to fail: In file included from include/linux/gpio.h:18:0, from drivers/gpio/gpiolib.c:10: linux/arch/arm/include/asm/gpio.h:5:23: fatal error: mach/gpio.h: No such file or directory compilation terminated. make[2]: *** [drivers/gpio/gpiolib.o] Error 1 Fix this by adding the file back. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ryan Mallon <rmallon@gmail.com> Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-17arm/imx: explicitly includes mach/hardware.h in pm-imx27.cShawn Guo
The pm-imx27.c references a number of things requiring the explicit inclusion of mach/hardware.h. Otherwise, when indirect inclusion to mach/hardware.h gets cleaned up, we will see the following compile error. CC arch/arm/mach-imx/pm-imx27.o arch/arm/mach-imx/pm-imx27.c: In function ‘mx27_suspend_enter’: arch/arm/mach-imx/pm-imx27.c:22:3: error: implicit declaration of function ‘IOMEM’ arch/arm/mach-imx/pm-imx27.c:22:3: error: implicit declaration of function ‘IMX_IO_P2V’ arch/arm/mach-imx/pm-imx27.c: In function ‘mx27_pm_init’: arch/arm/mach-imx/pm-imx27.c:42:2: error: implicit declaration of function ‘cpu_is_mx27’ Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-17arm/imx: remove mx27_setup_weimcs() from mx27.hShawn Guo
The helper function mx27_setup_weimcs() references IOMEM() and IMX_IO_P2V() but without required header mach/hardware.h included in mx27.h. This will break the build of those mx27 file with no direct inclusion of mach/hardware.h, or when indirect inclusion to mach/hardware.h breaks. For example, when the inclusion of mach/hardware.h gets removed from mach/gpio.h, we will see the following compile error. CC arch/arm/mach-imx/pm-imx27.o In file included from arch/arm/mach-imx/pm-imx27.c:14:0: arch/arm/plat-mxc/include/mach/mx27.h: In function ‘mx27_setup_weimcs’: arch/arm/plat-mxc/include/mach/mx27.h:138:2: error: implicit declaration of function ‘IOMEM’ arch/arm/plat-mxc/include/mach/mx27.h:138:2: error: implicit declaration of function ‘IMX_IO_P2V’ This patch removes mx27_setup_weimcs() from mx27.h and makes it local to mach-pcm038.c, which is the only user for this helper. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-17arm/imx: explicitly includes mach/hardware.h in mach-kzm_arm11_01.cShawn Guo
The mach-kzm_arm11_01.c references a number of things requiring the explicit inclusion of mach/hardware.h. Otherwise, when indirect inclusion to mach/hardware.h gets cleaned up, we will see the following compile error. CC arch/arm/mach-imx/mach-kzm_arm11_01.o arch/arm/mach-imx/mach-kzm_arm11_01.c:71:3: error: implicit declaration of function ‘IOMEM’ arch/arm/mach-imx/mach-kzm_arm11_01.c:71:3: error: implicit declaration of function ‘IMX_IO_P2V_MODULE’ arch/arm/mach-imx/mach-kzm_arm11_01.c:71:14: error: ‘MX31_CS4’ undeclared here (not in a function) arch/arm/mach-imx/mach-kzm_arm11_01.c:71:14: error: ‘MX31_CS5’ undeclared here (not in a function) arch/arm/mach-imx/mach-kzm_arm11_01.c:71:3: error: implicit declaration of function ‘IMX_IO_P2V’ Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-17arm/imx: remove mx31_setup_weimcs() from mx31.hShawn Guo
The helper function mx31_setup_weimcs() references IOMEM() and IMX_IO_P2V() but without required header mach/hardware.h included in mx31.h. This will break the build of those mx31 based board file with no direct inclusion of mach/hardware.h, or when indirect inclusion to mach/hardware.h breaks. For example, when the inclusion of mach/hardware.h gets removed from mach/gpio.h, we will see the following compile error. CC arch/arm/mach-imx/mach-pcm037_eet.o In file included from arch/arm/mach-imx/devices-imx31.h:9:0, from arch/arm/mach-imx/mach-pcm037_eet.c:20: arch/arm/plat-mxc/include/mach/mx31.h: In function ‘mx31_setup_weimcs’: arch/arm/plat-mxc/include/mach/mx31.h:129:2: error: implicit declaration of function ‘IOMEM’ arch/arm/plat-mxc/include/mach/mx31.h:129:2: error: implicit declaration of function ‘IMX_IO_P2V’ This patch removes mx31_setup_weimcs() from mx31.h and makes it local to mach-qong.c, which is the only user for this helper. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-17ARM: Add a few machine types to mach-typesRussell King
Add vision_ep9307, rwi_ews, usb_a9g20, karo, apf9328, tx37, tx25, tx51, mx51_m2id, pca101, gplugd, smdk4212 and smdk4412. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-17Merge branch 'ep93xx/board' into next/boardArnd Bergmann
2011-10-17ep93xx: add support Vision EP9307 SoMHartley Sweeten
Add support for Vision Engraving Systems EP9307 based SoM. Signed-off-by: Hartley Sweeten <hartleys@visionengravers.com> Acked-by: Ryan Mallon <ryan@bluewatersys.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2011-10-17arm/imx: use Kconfig choice for low-level debug UART selectionShawn Guo
Now that the DEBUG_LL UART can be selected by a Kconfig choice, simplify the #ifdefery in debug-macro.S and add entries to the top-level Kconfig.debug instead. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Will Deacon <will.deacon@arm.com>
2011-10-17ARM: realview: use Kconfig choice for debug UART selectionWill Deacon
Now that the DEBUG_LL UART can be selected by a Kconfig choice, simplify the #ifdefery in debug-macro.S and add entries to the top-level Kconfig.debug instead. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
2011-10-17ARM: plat-samsung: use Kconfig choice for debug UART selectionWill Deacon
Now that the DEBUG_LL UART can be selected by a Kconfig choice, convert the Samsung UART selection to use a set of bools rather than an int. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>