summaryrefslogtreecommitdiffstats
path: root/arch/arm
Commit message (Collapse)AuthorAgeFilesLines
* ARM: zImage: no need to get the decompressed size from the filesystemNicolas Pitre2011-05-072-4/+16
| | | | | | | | | | | | | | In commit d239b1dc093d the hardcoded 4x estimate for the decompressed kernel size was replaced by the exact Image file size and passed to the linker as a symbol value. Turns out that this is unneeded as the size is already included at the end of the compressed piggy data. For those compressed formats that don't include this data, the build system already takes care of appending it using size_append in scripts/Makefile.lib. So let's use that instead. Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Tested-by: Tony Lindgren <tony@atomide.com>
* ARM: zImage: the page table memory must be considered before relocationNicolas Pitre2011-05-071-1/+2
| | | | | | | | | | For correctness, the initial page table located right before the decompressed kernel should be considered when determining if relocation is required. Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Tony Lindgren <tony@atomide.com>
* ARM: zImage: make sure not to relocate on top of the relocation codeNicolas Pitre2011-05-071-10/+17
| | | | | | | | | | | | | | | | | | | If the zImage load address is slightly below the relocation address, there is a risk for the copied data to overwrite the copy loop or cache flush code that the relocation process requires. Always bump the relocation address by the size of that code to avoid this issue. Noticed by Tony Lindgren <tony@atomide.com>. While at it, let's start the copy from the restart symbol which makes the above code size computation possible by the assembler directly (same sections), given that we don't need to preserve the code before that point anyway. And therefore we don't need to carry the _start pointer in r5 anymore. Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org> Tested-by: Tony Lindgren <tony@atomide.com>
* ARM: zImage: Fix bad SP address after relocating kernelTony Lindgren2011-05-061-0/+5
| | | | | | | | | | | | | | | Otherwise cache_clean_flush can overwrite some of the relocated area depending on where the kernel image gets loaded. This fixes booting on n900 after commit 6d7d0ae51574943bf571d269da3243257a2d15db (ARM: 6750/1: improvements to compressed/head.S). Thanks to Aaro Koskinen <aaro.koskinen@nokia.com> for debugging the address of the relocated area that gets corrupted, and to Nicolas Pitre <nicolas.pitre@linaro.org> for the other uncompress related fixes. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
* ARM: zImage: make sure the stack is 64-bit alignedNicolas Pitre2011-05-062-1/+2
| | | | | | | | | | | | | With ARMv5+ and EABI, the compiler expects a 64-bit aligned stack so instructions like STRD and LDRD can be used. Without this, mysterious boot failures were seen semi randomly with the LZMA decompressor. While at it, let's align .bss as well. Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Tony Lindgren <tony@atomide.com> CC: stable@kernel.org
* Merge branch 'for-linus' of ↵Linus Torvalds2011-03-293-10/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (26 commits) mmc: SDHI should depend on SUPERH || ARCH_SHMOBILE mmc: tmio_mmc: Move some defines into a shared header mmc: tmio: support aggressive clock gating mmc: tmio: fix power-mode interpretation mmc: tmio: remove work-around for unmasked SDIO interrupts sh: fix SDHI IO address-range ARM: mach-shmobile: fix SDHI IO address-range mmc: tmio: only access registers above 0xff, if available mfd: remove now redundant sh_mobile_sdhi.h header sh: convert boards to use linux/mmc/sh_mobile_sdhi.h ARM: mach-shmobile: convert boards to use linux/mmc/sh_mobile_sdhi.h mmc: tmio: convert the SDHI MMC driver from MFD to a platform driver sh: ecovec: use the CONFIG_MMC_TMIO symbols instead of MFD mmc: tmio: split core functionality, DMA and MFD glue mmc: tmio: use PIO for short transfers mmc: tmio-mmc: Improve DMA stability on sh-mobile mmc: fix mmc_app_send_scr() for dma transfer mmc: sdhci-esdhc: enable esdhc on imx53 mmc: sdhci-esdhc: use writel/readl as general APIs mmc: sdhci: add the abort CMDTYPE bits definition ...
| * ARM: mach-shmobile: fix SDHI IO address-rangeGuennadi Liakhovetski2011-03-253-7/+7
| | | | | | | | | | | | | | | | SDHI registers occupy only a 0x100 byte large window, not 0x200 byte. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * ARM: mach-shmobile: convert boards to use linux/mmc/sh_mobile_sdhi.hGuennadi Liakhovetski2011-03-253-3/+3
| | | | | | | | | | | | Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
* | arm: Fold irq_set_chip/irq_set_handlerThomas Gleixner2011-03-2984-235/+209
| | | | | | | | | | | | Use irq_set_chip_and_handler() instead. Converted with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: Reorder irq_set_ function callsThomas Gleixner2011-03-299-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reorder irq_set_chip() irq_set_chip_data() irq_set_handler() to irq_set_chip() irq_set_handler() irq_set_chip_data() so the next patch can combine irq_set_chip() and irq_set_handler() to irq_set_chip_and_handler(). Automated conversion with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: Cleanup the irq namespaceThomas Gleixner2011-03-29140-610/+626
| | | | | | | | | | | | Convert to the new function names. Automated with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: Use generic show_interrupts()Thomas Gleixner2011-03-292-50/+6
| | | | | | | | | | | | Use the generic version and just keep the arch specific output. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: dove: Use proper irq accessor functionsThomas Gleixner2011-03-292-11/+2
| | | | | | | | | | | | Remove the obsolete desc_handle_irq() helper. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: gic: Use proper accessor functionsThomas Gleixner2011-03-291-1/+1
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: at91: Cleanup irq chipThomas Gleixner2011-03-291-22/+9
| | | | | | | | | | | | | | | | | | Avoid the whole lazy disable dance in the demux handler by providing a irq_disable() callback. Use the proper accessor functions and tidy up gpio_irq_handler() Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: davinci: Cleanup irq chip codeThomas Gleixner2011-03-291-13/+4
| | | | | | | | | | | | | | | | | | | | Make use of the new functionality which ensures that irq_set_type is called with the chip masked. Unmask is only done when the interrupt is not disabled. Retrieve the trigger type from irq_data in unmask Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: ep93xx: Use proper irq accessor functionsThomas Gleixner2011-03-291-11/+10
| | | | | | | | | | | | No need to write the flow type. Core code does already. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: gemini: Use proper irq accessor functionsThomas Gleixner2011-03-291-4/+2
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: mxc: Use generic_handle_irq()Thomas Gleixner2011-03-291-6/+1
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: vt8500: Use proper irq accessorsThomas Gleixner2011-03-291-3/+3
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: msm: Use proper irq accessor functionsThomas Gleixner2011-03-295-10/+10
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: plat-omap: Cleanup irq_desc accessThomas Gleixner2011-03-291-8/+1
| | | | | | | | | | | | | | 1) Core code stores the flow type already 2) Flow type is accessible in irq_data Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: nomadik: Use local irq stateThomas Gleixner2011-03-291-6/+10
| | | | | | | | | | | | | | Store the enabled mask in the local state, so there is no need to fiddle in the irq descriptor. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: stmp3xxx: Use generic_handle_irq()Thomas Gleixner2011-03-291-2/+1
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: plat-samsung: Use proper irq accessor functionsThomas Gleixner2011-03-293-14/+10
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: Cleanup irq_desc accessThomas Gleixner2011-03-292-16/+11
| | | | | | | | | | | | Use the proper wrappers and use the flow type in irq_data. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: msm: Convert to new irq chip functionsThomas Gleixner2011-03-291-16/+17
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: Use irq flag setter functionThomas Gleixner2011-03-291-9/+6
| | | | | | | | | | | | | | | | Use the proper accessor function instead of fiddling in the status bits directly. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: linux-arm-kernel@lists.infradead.org
* | arm: Use genirq lockdep helper to set lock classThomas Gleixner2011-03-293-5/+3
| | | | | | | | | | | | | | Remove the open coded access to irq_desc which will fail on sparse irq and use the proper wrappers. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: tegra: Remove unused bogus irq enable/disable magicThomas Gleixner2011-03-291-19/+0
| | | | | | | | | | | | | | | | | | The core code handles thees already. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Colin Cross <ccross@android.com> Cc: linux-tegra@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org
* | arm: h720x: Fix irq conversion falloutThomas Gleixner2011-03-291-3/+8
| | | | | | | | | | | | | | The conversion missed, that one of the irq functions is called from the init code. Split it out, so the irq number based call works. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: nomadik: Remove non existing cpu id checkThomas Gleixner2011-03-291-7/+0
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: ns9xxx: Remove non exisiting machine checksThomas Gleixner2011-03-292-7/+0
| | | | | | | | | | | | | | The machine id cleanup missed to remove the checks for now removed ids. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: dove: Use correct GPIO_BASE and remove orion_gpio_init() leftoverThomas Gleixner2011-03-292-4/+1
| | | | | | | | | | | | | | | | | | | | commit 9eac6d0 (ARM: Remove dependency of plat-orion GPIO code on mach directory includes) missed to convert one instance of DOVE_GPIO_VIRT_BASE and left the orion_gpio_init() in mpp.c Fix it up. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: at91: at572d940hf: Fix SDRAMC defineThomas Gleixner2011-03-291-1/+1
| | | | | | | | | | | | That wants to be AT91_SDRAMC0 Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: footbridge: Make cksrc_dc21285_disable() voidThomas Gleixner2011-03-291-1/+1
| | | | | | | | | | | | This clocksource function needs to be void. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | arm: bios32: Remove non exisiting machine codeThomas Gleixner2011-03-291-25/+0
| | | | | | | | | | | | | | The id removal left this machine check in which breaks the build on some platforms. Remove it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | ARM: mx51_efika: fix build error due to new mfd changesAndres Salomon2011-03-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | MFD changes in 4ec1b54c ('mfd: mfd_cell is now implicitly available to mc13xxx drivers') changed the mc13xxx_platform_data struct layout. At the time all users were changed, but this driver was introduced in another tree at the same time. This updates the mc13xxx_platform_data user, fixing a build error. Signed-off-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| |
| \
*-. \ Merge branches 'irq-cleanup-for-linus' and 'irq-fixes-for-linus' of ↵Linus Torvalds2011-03-281-54/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: vlynq: Convert irq functions * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: genirq; Fix cleanup fallout genirq: Fix typo and remove unused variable genirq: Fix new kernel-doc warnings genirq: Add setter for AFFINITY_SET in irq_data state genirq: Provide setter inline for IRQD_IRQ_INPROGRESS genirq: Remove handle_IRQ_event arm: Ns9xxx: Remove private irq flow handler powerpc: cell: Use the core flow handler genirq: Provide edge_eoi flow handler genirq: Move INPROGRESS, MASKED and DISABLED state flags to irq_data genirq: Split irq_set_affinity() so it can be called with lock held. genirq: Add chip flag for restricting cpu_on/offline calls genirq: Add chip hooks for taking CPUs on/off line. genirq: Add irq disabled flag to irq_data state genirq: Reserve the irq when calling irq_set_chip()
| | * | arm: Ns9xxx: Remove private irq flow handlerThomas Gleixner2011-03-281-54/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handle_prio_irq is almost identical with handle_fasteoi_irq. The subtle differences are 1) The handler checks for IRQ_DISABLED after the device handler has been called. In case it's set it masks the interrupt. 2) When the handler sees IRQ_DISABLED on entry it masks the interupt in the same way as handle_fastoei_irq, but does not set the IRQ_PENDING flag. 3) Instead of gracefully handling a recursive interrupt it crashes the kernel. #1 is just relevant when a device handler calls disable_irq_nosync() and it does not matter whether we mask the interrupt right away or not. We handle lazy masking for disable_irq anyway, so there is no real reason to have this extra mask in place. #2 will prevent the resend of a pending interrupt, which can result in lost interrupts for edge type interrupts. For level type interrupts the resend is a noop in the generic code. According to the datasheet all interrupts are level type, so marking them as such will result in the exact same behaviour as the private handle_prio_irq implementation. #3 is just stupid. Crashing the kernel instead of handling a problem gracefully is just wrong. With the current semantics- all handlers run with interrupts disabled - this is even more wrong. Rename ack to eoi, remove the unused mask_ack, switch to handle_fasteoi_irq and remove the private function. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Acked-by: Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> Cc: linux-arm-kernel@lists.infradead.org LKML-Reference: <20110202212552.299898447@linutronix.de>
* | | | Merge branch 'for-torvalds' of ↵Linus Torvalds2011-03-286-3/+268
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson * 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: mach-ux500: configure board for the TPS61052 regulator v2 mach-ux500: provide ab8500 init vector mach-ux500: board support for AB8500 GPIO driver gpio: driver for 42 AB8500 GPIO pins
| * | | | mach-ux500: configure board for the TPS61052 regulator v2Linus Walleij2011-03-284-1/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This registers the TPS61052 regulator to the ux500 MOP/HREF boards. Cc: Samuel Ortiz <samuel.ortiz@intel.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Ola Lilja <ola.o.lilja@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | | mach-ux500: provide ab8500 init vectorBengt Jonsson2011-03-282-0/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds an ab8500 regulator initialization vector for the HREF/MOP500 series of boards. This also sets the display regulator to be on at boot so we don't loose our splash screen when the board comes up. Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | | mach-ux500: board support for AB8500 GPIO driverBibek Basu2011-03-283-2/+41
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the board support patch for ab8500 gpio driver on mach-ux500.Patch implements 16 virtual IRQ mapped to 16 interrupt capable AB8500 GPIOs. Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> [Modify for header file placement] Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* | | | ARM: Suspend: Fix dependency of ARCH_SUSPEND_POSSIBLEKukjin Kim2011-03-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current mainline codes of ARCH_S5P64X0 and ARCH_S5P6442 can not support suspend to ram. So needs this for preventing build error on them. Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Len Brown <len.brown@intel.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* | | | ARM: SAMSUNG: Fix CPU idmaskKukjin Kim2011-03-282-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes CPU idmask of S5P64X0 and EXYNOS4210 and its comparison method because just want to use CPU id for it. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* | | | ARM: EXYNOS4: Fix addruart macroThomas Abraham2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix incorrect conditional execution of ldr instructions in addruart macro. Signed-off-by: Thomas Abraham <thomas.abraham@samsung.com> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* | | | ARM: EXYNOS4: Fix smsc9215 irq polarity on SMDKC210Jeongtae Park2011-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes smsc9215 irq ploarity configuration of SMDKC210. We can change type of EINT(5) as HIGH, but it's better to change IRQ output of smsc9215 as an active low because smsc's IRQ line has been pull-up. Signed-off-by: Jeongtae Park <jtp.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* | | | ARM: EXYNOS4: Fix smsc9215 irq polarity on SMDKV310Jeongtae Park2011-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes smsc9215 irq ploarity configuration of SMDKV310. We can change type of EINT(5) as HIGH, but it's better to change IRQ output of smsc9215 as an active low because smsc's IRQ line has been pull-up. Signed-off-by: Jeongtae Park <jtp.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* | | | ARM: EXYNOS4: Fix build warning on regarding SATA_AHCI_PLATFORMKukjin Kim2011-03-282-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes following build warnings. warning: (MACH_ARMLEX4210) selects SATA_AHCI_PLATFORM which has unmet direct dependencies (ATA) And adds EXYNOX4_DEV_AHCI for building machines which are not suppoort for AHCI feature on board. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
OpenPOWER on IntegriCloud