summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64/irq.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-05 06:47:02 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-05 06:47:02 +0000
commit99a7e12f34b3661a0d1354eef83a0eef4df5e34c (patch)
tree3560aca9ca86792f9ab7bd87861ea143a1b3c7a3 /include/asm-sparc64/irq.h
parente73a04659c0b8cdee4dd40e58630e2cf63afb316 (diff)
Merge with Linux 2.3.38.
Diffstat (limited to 'include/asm-sparc64/irq.h')
-rw-r--r--include/asm-sparc64/irq.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h
index 045ae8bc9..53124b0ea 100644
--- a/include/asm-sparc64/irq.h
+++ b/include/asm-sparc64/irq.h
@@ -1,4 +1,4 @@
-/* $Id: irq.h,v 1.16 1999/09/06 01:17:52 davem Exp $
+/* $Id: irq.h,v 1.17 1999/09/21 14:39:41 davem Exp $
* irq.h: IRQ registers on the 64-bit Sparc.
*
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
@@ -61,13 +61,24 @@ struct ino_bucket {
/*0x08*/void *irq_info;
/* Sun5 Interrupt Clear Register. */
-/*0x10*/volatile unsigned int *iclr;
+/*0x10*/unsigned long iclr;
/* Sun5 Interrupt Mapping Register. */
-/*0x18*/volatile unsigned int *imap;
+/*0x18*/unsigned long imap;
};
+/* IMAP/ICLR register defines */
+#define IMAP_VALID 0x80000000 /* IRQ Enabled */
+#define IMAP_TID 0x7c000000 /* UPA TargetID */
+#define IMAP_IGN 0x000007c0 /* IRQ Group Number */
+#define IMAP_INO 0x0000003f /* IRQ Number */
+#define IMAP_INR 0x000007ff /* Full interrupt number*/
+
+#define ICLR_IDLE 0x00000000 /* Idle state */
+#define ICLR_TRANSMIT 0x00000001 /* Transmit state */
+#define ICLR_PENDING 0x00000003 /* Pending state */
+
/* Only 8-bits are available, be careful. -DaveM */
#define IBF_DMA_SYNC 0x01 /* DMA synchronization behind PCI bridge needed. */
#define IBF_PCI 0x02 /* Indicates PSYCHO/SABRE/SCHIZO PCI interrupt. */
@@ -98,7 +109,7 @@ extern void disable_irq(unsigned int);
extern void enable_irq(unsigned int);
extern void init_timers(void (*lvl10_irq)(int, void *, struct pt_regs *),
unsigned long *);
-extern unsigned int build_irq(int pil, int inofixup, volatile unsigned int *iclr, volatile unsigned int *imap);
+extern unsigned int build_irq(int pil, int inofixup, unsigned long iclr, unsigned long imap);
extern unsigned int sbus_build_irq(void *sbus, unsigned int ino);
extern unsigned int psycho_build_irq(void *psycho, int imap_off, int ino, int need_dma_sync);