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
- Lines: 61
- Date:
Mon Aug 14 13:09:07 2000
- Orig file:
v2.4.0-test6/linux/include/asm-arm/arch-arc/irq.h
- Orig date:
Fri Oct 22 13:21:53 1999
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)