patch-2.4.0-test7 linux/include/asm-arm/arch-arc/irq.h

Next file: linux/include/asm-arm/arch-arc/system.h
Previous file: linux/include/asm-arm/arch-arc/ide.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test6/linux/include/asm-arm/arch-arc/irq.h linux/include/asm-arm/arch-arc/irq.h
@@ -10,14 +10,24 @@
  *   11-01-1998	RMK	Added mask_and_ack_irq
  *   22-08-1998	RMK	Restructured IRQ routines
  */
+#include <linux/config.h>
 #include <asm/ioc.h>
 
+#ifdef CONFIG_ARCH_ARC
+#define a_clf()	clf()
+#define a_stf()	stf()
+#else
+#define a_clf()	do { } while (0)
+#define a_stf()	do { } while (0)
+#endif
+
 #define fixup_irq(x) (x)
 
 static void arc_mask_irq_ack_a(unsigned int irq)
 {
 	unsigned int temp;
 
+	a_clf();
 	__asm__ __volatile__(
 	"ldrb	%0, [%2]\n"
 "	bic	%0, %0, %1\n"
@@ -26,30 +36,35 @@
 	: "=&r" (temp)
 	: "r" (1 << (irq & 7)), "r" (ioaddr(IOC_IRQMASKA)),
 	  "r" (ioaddr(IOC_IRQCLRA)));
+	a_stf();
 }
 
 static void arc_mask_irq_a(unsigned int irq)
 {
 	unsigned int temp;
 
+	a_clf();
 	__asm__ __volatile__(
 	"ldrb	%0, [%2]\n"
 "	bic	%0, %0, %1\n"
 "	strb	%0, [%2]"
 	: "=&r" (temp)
 	: "r" (1 << (irq & 7)), "r" (ioaddr(IOC_IRQMASKA)));
+	a_stf();
 }
 
 static void arc_unmask_irq_a(unsigned int irq)
 {
 	unsigned int temp;
 
+	a_clf();
 	__asm__ __volatile__(
 	"ldrb	%0, [%2]\n"
 "	orr	%0, %0, %1\n"
 "	strb	%0, [%2]"
 	: "=&r" (temp)
 	: "r" (1 << (irq & 7)), "r" (ioaddr(IOC_IRQMASKA)));
+	a_stf();
 }
 
 static void arc_mask_irq_b(unsigned int irq)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)