aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-iop13xx
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2007-02-13 11:12:04 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-02-14 10:21:24 -0500
commit588ef7693574cfbcb228f48d5478c2b39a9b0c9f (patch)
tree6cc5ac8e7d2544514ab405357f01a91da8471780 /arch/arm/mach-iop13xx
parentdfc544c7216b276c1e9c0c753299692df4068c44 (diff)
[ARM] 4184/1: iop: cp6 access handler (undef_hook)
Enable svc access to cp6 via an undefined instruction hook. Do not enable access for usr code. This patch also makes iop13xx select PLAT_IOP, this requires a small change to drivers/i2c/busses/i2c-iop3xx.c. Per Lennert Buytenhek's note, the cp6 trap routine is moved to arch/arm/plat-iop Per Nicolas Pitre's note, the cp_wait is skipped since the latency to return to the faulting function is longer than cp_wait. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-iop13xx')
-rw-r--r--arch/arm/mach-iop13xx/irq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-iop13xx/irq.c b/arch/arm/mach-iop13xx/irq.c
index dbbc07c38b14..162b93214965 100644
--- a/arch/arm/mach-iop13xx/irq.c
+++ b/arch/arm/mach-iop13xx/irq.c
@@ -250,11 +250,14 @@ static struct irq_chip iop13xx_irqchip4 = {
250 .unmask = iop13xx_irq_unmask3, 250 .unmask = iop13xx_irq_unmask3,
251}; 251};
252 252
253extern void iop_init_cp6_handler(void);
254
253void __init iop13xx_init_irq(void) 255void __init iop13xx_init_irq(void)
254{ 256{
255 unsigned int i; 257 unsigned int i;
256 258
257 u32 cp_flags = iop13xx_cp6_save(); 259 u32 cp_flags = iop13xx_cp6_save();
260 iop_init_cp6_handler();
258 261
259 /* disable all interrupts */ 262 /* disable all interrupts */
260 write_intctl_0(0); 263 write_intctl_0(0);