[SPARC64]: Kill ino_bucket->pil
[pandora-kernel.git] / include / asm-sparc64 / irq.h
index 8b70edc..d66c7cd 100644 (file)
@@ -37,14 +37,14 @@ struct irq_desc {
  * line.  Keep this in mind please.
  */
 struct ino_bucket {
-       /* Next handler in per-CPU PIL worklist.  We know that
+       /* Next handler in per-CPU IRQ worklist.  We know that
         * bucket pointers have the high 32-bits clear, so to
         * save space we only store the bits we need.
         */
 /*0x00*/unsigned int irq_chain;
 
-       /* PIL to schedule this IVEC at. */
-/*0x04*/unsigned char pil;
+       /* Virtual interrupt number assigned to this INO.  */
+/*0x04*/unsigned char virt_irq;
 
        /* If an IVEC arrives while irq_info is NULL, we
         * set this to notify request_irq() about the event.
@@ -72,8 +72,11 @@ struct ino_bucket {
 #define IMAP_VALID             0x80000000      /* IRQ Enabled          */
 #define IMAP_TID_UPA           0x7c000000      /* UPA TargetID         */
 #define IMAP_TID_JBUS          0x7c000000      /* JBUS TargetID        */
+#define IMAP_TID_SHIFT         26
 #define IMAP_AID_SAFARI                0x7c000000      /* Safari AgentID       */
+#define IMAP_AID_SHIFT         26
 #define IMAP_NID_SAFARI                0x03e00000      /* Safari NodeID        */
+#define IMAP_NID_SHIFT         21
 #define IMAP_IGN               0x000007c0      /* IRQ Group Number     */
 #define IMAP_INO               0x0000003f      /* IRQ Number           */
 #define IMAP_INR               0x000007ff      /* Full interrupt number*/
@@ -92,25 +95,17 @@ extern struct ino_bucket ivector_table[NUM_IVECS];
 
 #define __irq_ino(irq) \
         (((struct ino_bucket *)(unsigned long)(irq)) - &ivector_table[0])
-#define __irq_pil(irq) ((struct ino_bucket *)(unsigned long)(irq))->pil
 #define __bucket(irq) ((struct ino_bucket *)(unsigned long)(irq))
 #define __irq(bucket) ((unsigned int)(unsigned long)(bucket))
 
-static __inline__ char *__irq_itoa(unsigned int irq)
-{
-       static char buff[16];
-
-       sprintf(buff, "%d,%x", __irq_pil(irq), (unsigned int)__irq_ino(irq));
-       return buff;
-}
-
 #define NR_IRQS    16
 
 #define irq_canonicalize(irq)  (irq)
 extern void disable_irq(unsigned int);
 #define disable_irq_nosync disable_irq
 extern void enable_irq(unsigned int);
-extern unsigned int build_irq(int pil, int inofixup, unsigned long iclr, unsigned long imap);
+extern unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap);
+extern unsigned int sun4v_build_irq(u32 devhandle, unsigned int devino, unsigned char flags);
 extern unsigned int sbus_build_irq(void *sbus, unsigned int ino);
 
 static __inline__ void set_softint(unsigned long bits)