aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
Commit message (Collapse)AuthorAge
* [ARM] pxa: integrate low IRQ chip (ICIP) and high IRQ chip (ICIP2) into oneeric miao2008-04-19
| | | | | | | | | | | | | | | | | | | | | This makes the code better organized and simplified a bit. The change will lose a bit of performance when performing IRQ ack/mask/unmask,but that's not too much after checking the result binary. This patch also removes the ugly #ifdef CONFIG_PXA27x .. #endif by carefully not to access those pxa{27x,3xx} specific registers, this is done by keeping an internal IRQ number variable. The pxa-regs.h is also modified so registers for IRQ > PXA_IRQ(31) are made public even if CONFIG_PXA{27x,3xx} isn't defined (for pxa25x's sake) The incorrect assumption in the original code that internal irq starts from 0 is also corrected by comparing with PXA_IRQ(0). "struct sys_device" for the IRQ are reduced into one single device on pxa{27x,3xx}. Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move GPIO IRQ specific code out of irq.c into gpio.ceric miao2008-04-19
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: introduce GPIO_CHIP() macro to clean up the definitionseric miao2008-04-19
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: cleanup the coding style of pxa_gpio_set_type()eric miao2008-04-19
| | | | | | | | | | | | | | by 1. wrapping long lines and making comments tidy 2. using IRQ_TYPE_* instead of migration macros __IRQT_* 3. introduce a pr_debug() for the commented printk(KERN_DEBUG ...) stuff Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: make GPIO IRQ code less dependent on the internal IRQseric miao2008-04-19
| | | | | | | | | | | | | | by: 1. introduce dedicated pxa_{mask,unmask}_low_gpio() 2. remove set_irq_chip(IRQ_GPIO_2_x, ...) which has already been initialized in pxa_init_irq() 3. introduce dedicated pxa_init_gpio_set_wake() Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: generalize the muxed gpio IRQ handling code with loop and ffs()eric miao2008-04-19
| | | | | | | | | | | | 1. As David Brownell suggests, using ffs() is going to make the loop a bit faster (by avoiding unnecessary shift and iteration) 2. Russell suggested find_{first,next}_bit() being used with the gedr[] array Signed-off-by: eric miao <eric.miao@marvell.com> Cc: David Brownell <david-b@pacbell.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4832/2: Support AC97CLK on PXA3xx via the clock APIMark Brown2008-04-19
| | | | | | | | | The AC97 clock rate on PXA3xx is generated with a configurable divider from sys_pll. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4831/2: Add PXA2xx AC97 clocks to clock APIMark Brown2008-04-19
| | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4830/1: Add support for the CLK_POUT pin on PXA3xx CPUsMark Brown2008-04-19
| | | | | | | Expose control of the PXA3xx 13MHz CLK_POUT pin via the clock API Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Update mach-typesRussell King2008-04-19
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branch 'omap-fixes' of ↵Russell King2008-03-20
|\ | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into m * 'omap-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: ARM: OMAP1: Fix typo in OMAP1 MPU clock source initialization ARM: OMAP: Fix DMA CLINK mask, clear spurious interrupt ARM: OMAP: Fix chain_a_transfer return value ARM: OMAP: Fix missing makefile options ARM: OMAP: Fix GPIO IRQ unmask ARM: OMAP: Fix clockevent support for hrtimers
| * ARM: OMAP1: Fix typo in OMAP1 MPU clock source initializationWill Newton2008-03-20
| | | | | | | | | | | | | | Fix typo in OMAP1 MPU clock source initialization. Signed-off-by: Will Newton <will.newton@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Fix DMA CLINK mask, clear spurious interruptGadiyar, Anand2008-03-20
| | | | | | | | | | | | | | | | Fix CLINK mask, clear spurious interrupt. Signed-off-by: Gadiyar, Anand <gadiyar@ti.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Fix chain_a_transfer return valueAnand Gadiyar2008-03-20
| | | | | | | | | | | | | | | | | | | | | | This patch changes the return value of omap_dma_chain_a_transfer to 0 on success instead of the flag 'start_dma', which wasn't really useful for anything. Signed-off-by: Anand Gadiyar <gadiyar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Fix missing makefile optionsTony Lindgren2008-03-20
| | | | | | | | | | | | | | | | Although audio and dsp drivers are not integrated yet, allow compiling in mailbox and mcbsp to see any build warnings. Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Fix GPIO IRQ unmaskKevin Hilman2008-03-20
| | | | | | | | | | | | | | | | | | | | GPIO IRQ unmask doesn't actually do anything useful. The problem is hidden by a separate explicit mass unmask at the end of the chained bank handler. Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Fix clockevent support for hrtimersKevin Hilman2008-03-20
| | | | | | | | | | | | | | | | | | | | | | | | One-shot mode was broken in MPU-timer support for OMAP1 due to a typo. Also, ensure timer is stopped before changing the auto-reload flag. The TRM says changing the AR flag when timer is running is undefined. Also set GENERIC_CLOCKEVENTS for all omaps. Signed-off-by: Tim Bird <tim.bird@am.sony.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | [ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPATjanboe2008-03-20
| | | | | | | | | | | | | | fix signal return code when enable CONFIG_OABI_COMPAT Signed-off-by: Janboe Ye <janboe.ye@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] 4865/1: Register the F75375 device in the GLAN Tank platform codeGordon Farquharson2008-03-20
| | | | | | | | | | | | | | | | | | This patch adds the code required to register the F75375 device on the GLAN Tank. Signed-off-by: Gordon Farquharson <gordonfarquharson@gmail.com> Acked-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] 4864/1: Enable write buffer coalescing on IOPArnaud Patard2008-03-20
|/ | | | | | | | Some bootloaders are disabling write buffer coalescing. Enable it back under linux. Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4856/1: Orion: initialise the sixth PCIe MBUS mapping window as wellLennert Buytenhek2008-03-08
| | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4855/1: Orion: use correct ethernet unit address rangeLennert Buytenhek2008-03-08
| | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4853/1: include uImage target in make helpUwe Kleine-König2008-03-08
| | | | | Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4851/1: ns9xxx: fix size of gpioresUwe Kleine-König2008-03-08
| | | | | | | | GPIO_MAX is the number of the last gpio, not the number of gpios. So the bitmap must provide GPIO_MAX + 1 bits. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branch 'omap-fixes'Russell King2008-03-06
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * omap-fixes: ARM: OMAP2: Register the L4 io bus to boot OMAP2 ARM: OMAP1: Compile in other 16xx boards to OSK defconfig ARM: OMAP1: Refresh H2 defconfig ARM: OMAP1: Refresh OSK defconfig ARM: OMAP: gpio lockdep updates ARM: OMAP1: omap1/pm.c build fix ARM: OMAP1: omap h2 regression fix ARM: OMAP1: Fix compile for boards depending on old gpio expander ARM: OMAP1: omap h3 regression and build fix ARM: OMAP: Remove compiler warning when i2c is not set ARM: OMAP: fix omap i2c init (regression) ARM: OMAP: fix false lockdep warnings ARM: OMAP: Fix sleep under spinlock for cpufreq ARM: OMAP: Pass logical DMA channel number always to callback handlers
| * ARM: OMAP2: Register the L4 io bus to boot OMAP2Kyungmin Park2008-03-06
| | | | | | | | | | | | | | This patch enables OMAP2 to boot. Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP1: Compile in other 16xx boards to OSK defconfigTony Lindgren2008-03-06
| | | | | | | | | | | | | | | | | | | | | | | | This allows monitoring compile issues with Kautobuild for other omap1 boards until we have more board specific defconfig files. After 2.6.25, we can add a generic config_omap_generic16xx to compile in support for all 16xx boards and then remove other boards from OSK defconfig. Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP1: Refresh H2 defconfigTony Lindgren2008-03-06
| | | | | | | | | | | | Refresh H2 defconfig Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP1: Refresh OSK defconfigTony Lindgren2008-03-06
| | | | | | | | | | | | Refresh OSK defconfig Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: gpio lockdep updatesDavid Brownell2008-03-05
| | | | | | | | | | | | | | | | | | Fix some spinlock issues reported by lockdep: since the gpio bank locks can be aquired in both irq and non-irq contexts, they need to be consistent about always using the irq-safe variants. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP1: omap1/pm.c build fixDavid Brownell2008-03-05
| | | | | | | | | | | | | | | | | | | | Build fix: arch/arm/mach-omap1/pm.c: In function 'omap_pm_init': arch/arm/mach-omap1/pm.c:720: warning: passing argument 2 of 'sysfs_create_file' from incompatible pointer type Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP1: omap h2 regression fixDavid Brownell2008-03-05
| | | | | | | | | | | | | | | | | | | | H2 and H3 were broken on by e27a93a944a5ba6a0112750c8243abba86d56e94, which removed declarations for their tps6501x chips. This resolves that issue for the H2. (Note that this patch *also* broke the isp1301 support on H2; it presumed a not-yet-merged new-style I2c driver.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP1: omap h3 regression and build fixDavid Brownell2008-03-05
| | | | | | | | | | | | | | | | | | | | | | | | Get rid of build warnings and errors in mainline for H3 boards; not all the H3 updates were correct, it seems like the OMAP1 boards are not getting proper build testing. Also, commit e27a93a944a5ba6a0112750c8243abba86d56e94 introduced a regression related to the tps65013 chip. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: fix omap i2c init (regression)David Brownell2008-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In mainline, the "old style" I2C registration was only removed for OMAP2, leading to init-time bugs (regressions) like: sysfs: duplicate filename 'i2c_omap.1' can not be created ------------[ cut here ]------------ WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x40/0xd4() Modules linked in: ... deletia ... [<c0036a38>] (omap_init_i2c+0x0/0x50) from [<c000cea8>] (omap_init_devices+0x10/0x24) r4:c001e000 [<c000ce98>] (omap_init_devices+0x0/0x24) from [<c0008684>] (do_initcalls+0x78/0x200) ... deletia ... ---[ end trace ca143223eefdc828 ]--- kobject_add_internal failed for i2c_omap.1 with -EEXIST, don't try to register things with the same name in the same directory. The fix is obvious: remove the old init code, it's no longer needed. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: fix false lockdep warningsDavid Brownell2008-03-05
| | | | | | | | | | | | | | | | | | | | | | | | Remove false lockdep warnings about lock recursion when declaring IRQs as being wake-capable, by marking putting GPIO irq_desc locks into their own class. (Thanks to Peter Zijlstra for helping track down such a small fix to this problem.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Fix sleep under spinlock for cpufreqHiroshi DOYU2008-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ 10.523437] BUG: sleeping function called from invalid context at kernel/mut6 [ 10.523437] in_atomic():0, irqs_disabled():128 [ 10.523437] [<c002c168>] (dump_stack+0x0/0x14) from [<c005374c>] (__might_sl) [ 10.523437] [<c0053698>] (__might_sleep+0x0/0xd4) from [<c024fdf4>] (mutex_l) [ 10.523437] r5 = C02F0DE8 r4 = C02F0DF0 [ 10.523437] [<c024fdd4>] (mutex_lock+0x0/0x44) from [<c0041df4>] (clk_get+0x) [ 10.523437] r4 = 00000000 [ 10.523437] [<c0041da4>] (clk_get+0x0/0x128) from [<c0046520>] (omap_getspee) [ 10.523437] r8 = 00000002 r7 = 00000000 r6 = C031DAF8 r5 = C0473980 [ 10.523437] r4 = 00000000 [ 10.523437] [<c00464fc>] (omap_getspeed+0x0/0x5c) from [<c01b8518>] (cpufreq) [ 10.523437] r5 = C0473980 r4 = 00000002 Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * ARM: OMAP: Pass logical DMA channel number always to callback handlersJarkko Nikula2008-03-05
| | | | | | | | | | | | | | | | | | This makes parameter passing to DMA handlers uniform between non-chained and chained transfers and makes debugging easier. Additional data like chain_id can be always passed to handlers via callback data if needed. Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | [ARM] AT91: correct at91sam9263ek LCD power gpio pinNicolas Ferre2008-03-06
| | | | | | | | | | | | | | | | | | | | Correct GPIO pin assignment for the LCD power control (PCI) Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: David Brownell <david-b@pacbell.net> Cc: Andrew Victor <linux@maxim.org.za> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] replace remaining __FUNCTION__ occurrencesHarvey Harrison2008-03-06
| | | | | | | | | | | | | | | | __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] 4849/1: move ATAGS asm definitionsGreg Ungerer2008-03-06
| | | | | | | | | | | | | | | | | | | | | | Move the definitions of ATAG_CORE and ATAG_CORE_SIZE in head.S to head-common.S. There is no use of these in head.S itself, but they are used in head-common.S. When building for the !CONFIG_MMU case these were not defined when compiling head-nommu.S (which includes head-common.S). Signed-off-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] 4848/1: at91: remove false lockdep warningsDavid Brownell2008-03-06
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove false lockdep warnings about lock recursion when declaring IRQs as being wake-capable, by marking putting GPIO irq_desc locks into their own class. (Thanks to Peter Zijlstra for helping track down such a small fix to this problem.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] 4847/1: kprobes: fix compilation with CONFIG_DEBUG_FS=yNicolas Pitre2008-03-06
| | | | | | | | | | Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] 4845/1: Orion: Ignore memory tags with invalid dataGuennadi Liakhovetski2008-03-06
|/ | | | | | | | | | The DNS-323, Kurobox-Pro / Linkstation-Pro, QNAP TS-109/TS-209 and some other orion-based systems have several bogus memory entries in the tag table, which causes the system to crash at startup. Ignore them by resetting the tag ID to 0 in a machine fixup function. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Kprobes: indicate kretprobe support in KconfigAnanth N Mavinakayanahalli2008-03-04
| | | | | | | | | | | | | | | | | Add CONFIG_HAVE_KRETPROBES to the arch/<arch>/Kconfig file for relevant architectures with kprobes support. This facilitates easy handling of in-kernel modules (like samples/kprobes/kretprobe_example.c) that depend on kretprobes being present in the kernel. Thanks to Sam Ravnborg for helping make the patch more lean. Per Mathieu's suggestion, added CONFIG_KRETPROBES and fixed up dependencies. Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2008-03-03
|\ | | | | | | | | * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] Fix freeing of page tables for ARM in free_pgd_slow
| * [ARM] Fix freeing of page tables for ARM in free_pgd_slowUwe Kleine-König2008-03-01
| | | | | | | | | | | | | | | | | | | | | | | | Since 2f569af (CONFIG_HIGHPTE vs. sub-page page tables.) pte_free() calls pte_lock_deinit() and dec_zone_page_state(). So free_pgd_slow must not call the latter two when calling the first. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2008-02-29
|\| | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 4843/1: Add GCR_CLKBPB for PXA3xx [ARM] 4842/1: pxa: remove redundant IRQ saving/restoring in clk_pxa3xx_cken_* [ARM] 4841/1: pxa: fix typo in LCD platform data definition code for zylonite [ARM] 4840/1: pxa: fix the typo in get_irqnr_and_base [ARM] 4839/1: fixes kernel Oops in /dev/mem device driver for memory map with PHYS_OFF [ARM] eliminate MODULE_PARM() usage [ARM] 4838/1: Fix kexec for SA1100 machines [ARM] 4837/1: make __get_unaligned_*() return unsigned types [ARM] 4836/1: Make ATAGS_PROC depend on KEXEC
| * [ARM] 4842/1: pxa: remove redundant IRQ saving/restoring in clk_pxa3xx_cken_*eric miao2008-02-29
| | | | | | | | | | | | | | | | This is unnecessary since it is already protected by spin_lock_irq{save, restore} in clock.c. Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * [ARM] 4841/1: pxa: fix typo in LCD platform data definition code for zyloniteeric miao2008-02-29
| | | | | | | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * [ARM] 4839/1: fixes kernel Oops in /dev/mem device driver for memory map ↵Alexandre Rusev2008-02-29
| | | | | | | | | | | | | | | | | | | | | | | | with PHYS_OFF "cat /dev/mem" may cause kernel Oops for boards with PHYS_OFFSET != 0 because character device is mapped to addresses starting from zero and there is no protection against such situation. Patch just add this. Signed-off-by: Alexandre Rusev <arusev@ru.mvista.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>