aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-sa1100/neponset.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-01-16 04:31:47 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-02-09 10:34:14 -0500
commit6ad1b614007c556129989b9f6b020d0d2e058121 (patch)
treed146b694cad7d3134b3166f56f401b203e073811 /arch/arm/mach-sa1100/neponset.c
parent710455201f6690841e9a40bedba09ddd0a7e0620 (diff)
ARM: sa11x0: neponset: provide function to manipulate NCR_0
Rather than having direct register accesses to NCR_0 scattered amongst the code, provide a function instead. This contains the necessary race protection for this platform, ensuring that updates to this register are safe. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-sa1100/neponset.c')
-rw-r--r--arch/arm/mach-sa1100/neponset.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 6a14d3760ccd..10be07e2bd56 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -20,6 +20,15 @@
20#include <asm/hardware/sa1111.h> 20#include <asm/hardware/sa1111.h>
21#include <asm/sizes.h> 21#include <asm/sizes.h>
22 22
23void neponset_ncr_frob(unsigned int mask, unsigned int val)
24{
25 unsigned long flags;
26
27 local_irq_save(flags);
28 NCR_0 = (NCR_0 & ~mask) | val;
29 local_irq_restore(flags);
30}
31
23/* 32/*
24 * Install handler for Neponset IRQ. Note that we have to loop here 33 * Install handler for Neponset IRQ. Note that we have to loop here
25 * since the ETHERNET and USAR IRQs are level based, and we need to 34 * since the ETHERNET and USAR IRQs are level based, and we need to