]> git.hungrycats.org Git - linux/commitdiff
[PATCH] sn: Added call to pcireg_intr_status_get
authorAndrew Morton <akpm@osdl.org>
Mon, 19 Jan 2004 02:52:16 +0000 (18:52 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Mon, 19 Jan 2004 02:52:16 +0000 (18:52 -0800)
From: Pat Gefre <pfg@sgi.com>

Added call to pcireg_intr_status_get

arch/ia64/sn/io/sn2/pcibr/pcibr_reg.c
arch/ia64/sn/kernel/irq.c

index 545290f653273e0d6c875ee504c46bd02ba190ef..4eafac458710e4b92e373c556ee5bb5e5f256d6b 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 2003 Silicon Graphics, Inc. All rights reserved.
  */
 
-
 #include <linux/types.h>
 #include <asm/sn/sgi.h>
 #include <asm/sn/iograph.h>
 uint64_t
 pcireg_control_get(void *ptr)
 {
-       uint64_t    ret = 0;
-       pic_t       *bridge;
+       uint64_t ret = 0;
+       pic_t *bridge;
+
+       if (IS_IOADDR(ptr))
+               bridge = (pic_t *) ptr;
+       else
+               bridge = (pic_t *) ((pcibr_soft_t) (ptr))->bs_base;
+
+       ret = ((pic_t *) bridge)->p_wid_control;
+       return ret;
+}
+
+/*
+ * Interrupt Status Register Access -- Read Only                    0000_0100
+ */
+uint64_t
+pcireg_intr_status_get(void *ptr)
+{
+       short bridge_type;
+       pic_t *bridge;
+       uint64_t ret = 0;
 
-       if ( IS_IOADDR(ptr) )
-               bridge = (pic_t *)ptr;
+       if (IS_IOADDR(ptr))
+               bridge = (pic_t *) ptr;
        else
-               bridge = (pic_t *)((pcibr_soft_t)(ptr))->bs_base;
+               bridge = (pic_t *) ((pcibr_soft_t) (ptr))->bs_base;
 
-       ret = ((pic_t *)bridge)->p_wid_control;
+       ret = ((pic_t *) bridge)->p_int_status;
        return ret;
 }
 
 void
 pcireg_intr_enable_bit_clr(void *ptr, uint64_t bits)
 {
-       pic_t       *bridge;
+       pic_t *bridge;
 
-       if ( IS_IOADDR(ptr) )
-               bridge = (pic_t *)ptr;
+       if (IS_IOADDR(ptr))
+               bridge = (pic_t *) ptr;
        else
-               bridge = (pic_t *)((pcibr_soft_t)(ptr))->bs_base;
+               bridge = (pic_t *) ((pcibr_soft_t) (ptr))->bs_base;
        bridge->p_int_enable &= ~bits;
 }
 
 void
 pcireg_intr_enable_bit_set(void *ptr, uint64_t bits)
 {
-       pic_t       *bridge;
+       pic_t *bridge;
 
-       if ( IS_IOADDR(ptr) )
-               bridge = (pic_t *)ptr;
+       if (IS_IOADDR(ptr))
+               bridge = (pic_t *) ptr;
        else
-               bridge = (pic_t *)((pcibr_soft_t)(ptr))->bs_base;
+               bridge = (pic_t *) ((pcibr_soft_t) (ptr))->bs_base;
        bridge->p_int_enable |= bits;
 }
 
 void
 pcireg_intr_addr_addr_set(void *ptr, int int_n, uint64_t addr)
 {
-       pic_t       *bridge;
+       pic_t *bridge;
 
-       if ( IS_IOADDR(ptr) )
-               bridge = (pic_t *)ptr;
+       if (IS_IOADDR(ptr))
+               bridge = (pic_t *) ptr;
        else
-               bridge = (pic_t *)((pcibr_soft_t)(ptr))->bs_base;
+               bridge = (pic_t *) ((pcibr_soft_t) (ptr))->bs_base;
        bridge->p_int_addr[int_n] &= ~(0x0000FFFFFFFFFFFF);
        bridge->p_int_addr[int_n] |= (addr & 0x0000FFFFFFFFFFFF);
 }
@@ -79,11 +97,11 @@ pcireg_intr_addr_addr_set(void *ptr, int int_n, uint64_t addr)
 void
 pcireg_force_intr_set(void *ptr, int int_n)
 {
-       pic_t       *bridge;
+       pic_t *bridge;
 
-       if ( IS_IOADDR(ptr) )
-               bridge = (pic_t *)ptr;
+       if (IS_IOADDR(ptr))
+               bridge = (pic_t *) ptr;
        else
-               bridge = (pic_t *)((pcibr_soft_t)(ptr))->bs_base;
-        bridge->p_force_pin[int_n] = 1;
+               bridge = (pic_t *) ((pcibr_soft_t) (ptr))->bs_base;
+       bridge->p_force_pin[int_n] = 1;
 }
index 5cdc94b6d5ac718d1e167896a9609b5f419fb01b..85ae658a60a346fb22fb63a9cb2a9b1aa324140e 100644 (file)
@@ -262,7 +262,7 @@ sn_check_intr(int irq, pcibr_intr_t intr) {
        unsigned long irr_reg;
 
 
-       regval = intr->bi_soft->bs_base->p_int_status_64;
+       regval = pcireg_intr_status_get(intr->bi_soft->bs_base);
        irr_reg_num = irq_to_vector(irq) / 64;
        irr_bit = irq_to_vector(irq) % 64;
        switch (irr_reg_num) {