[SPARC64]: Fix type and constant sizes wrt. sun4u IMAP/ICLR handling.
authorDavid S. Miller <davem@sunset.davemloft.net>
Tue, 28 Aug 2007 21:25:32 +0000 (14:25 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 31 Aug 2007 06:06:50 +0000 (23:06 -0700)
Sometimes we were using 32-bit values and the top bits were
getting inadvertantly chopped off.  This will matter for the
forthcoming Fire controller MSI support.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/irq.c
include/asm-sparc64/irq.h

index 384abf410cf03c0e5f57f823dffd27c7859dc9fa..51b8875a13a8e9c76bca90e81086f2ad96439e99 100644 (file)
@@ -308,7 +308,7 @@ static void sun4u_irq_disable(unsigned int virt_irq)
 
        if (likely(data)) {
                unsigned long imap = data->imap;
-               u32 tmp = upa_readq(imap);
+               unsigned long tmp = upa_readq(imap);
 
                tmp &= ~IMAP_VALID;
                upa_writeq(tmp, imap);
index e6c436ef9356c3b0c3a7e7e1dec455e4d06c798d..c041e10ae7df9a75367923380c43c19ed93f4c2e 100644 (file)
 #include <asm/ptrace.h>
 
 /* IMAP/ICLR register defines */
-#define IMAP_VALID             0x80000000      /* IRQ Enabled          */
-#define IMAP_TID_UPA           0x7c000000      /* UPA TargetID         */
-#define IMAP_TID_JBUS          0x7c000000      /* JBUS TargetID        */
+#define IMAP_VALID             0x80000000UL    /* IRQ Enabled          */
+#define IMAP_TID_UPA           0x7c000000UL    /* UPA TargetID         */
+#define IMAP_TID_JBUS          0x7c000000UL    /* JBUS TargetID        */
 #define IMAP_TID_SHIFT         26
-#define IMAP_AID_SAFARI                0x7c000000      /* Safari AgentID       */
+#define IMAP_AID_SAFARI                0x7c000000UL    /* Safari AgentID       */
 #define IMAP_AID_SHIFT         26
-#define IMAP_NID_SAFARI                0x03e00000      /* Safari NodeID        */
+#define IMAP_NID_SAFARI                0x03e00000UL    /* 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*/
+#define IMAP_IGN               0x000007c0UL    /* IRQ Group Number     */
+#define IMAP_INO               0x0000003fUL    /* IRQ Number           */
+#define IMAP_INR               0x000007ffUL    /* Full interrupt number*/
 
-#define ICLR_IDLE              0x00000000      /* Idle state           */
-#define ICLR_TRANSMIT          0x00000001      /* Transmit state       */
-#define ICLR_PENDING           0x00000003      /* Pending state        */
+#define ICLR_IDLE              0x00000000UL    /* Idle state           */
+#define ICLR_TRANSMIT          0x00000001UL    /* Transmit state       */
+#define ICLR_PENDING           0x00000003UL    /* Pending state        */
 
 /* The largest number of unique interrupt sources we support.
  * If this needs to ever be larger than 255, you need to change