Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=327a338d4fd018d33e7cacde46c0d82622b4bda8
Commit:     327a338d4fd018d33e7cacde46c0d82622b4bda8
Parent:     76dea3bc2644e99cce1d98d0bbd3124314e5b50a
Author:     Arthur Jones <[EMAIL PROTECTED]>
AuthorDate: Thu Aug 2 14:46:29 2007 -0700
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Tue Oct 9 20:02:46 2007 -0700

    IB/ipath: iba6110 rev4 GPIO counters support
    
    On iba6110 rev4, support for three more IB counters were added.  The
    LocalLinkIntegrityError counter, the ExcessiveBufferOverrunErrors
    counter and support for error counting of flow control packets on an
    invalid VL.  These counters trigger GPIO interrupts and the sw keeps
    track of the counts.  Since we also use GPIO interrupts to signal packet
    reception, we need to turn off the fast interrupts, or we risk losing a
    GPIO interrupt.
    
    Signed-off-by: Arthur Jones <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/ipath/ipath_iba6110.c |    8 ++++++++
 drivers/infiniband/hw/ipath/ipath_intr.c    |    4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/ipath/ipath_iba6110.c 
b/drivers/infiniband/hw/ipath/ipath_iba6110.c
index 650745d..e1c5998 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba6110.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6110.c
@@ -1559,6 +1559,14 @@ static int ipath_ht_early_init(struct ipath_devdata *dd)
                ipath_dev_err(dd, "Unsupported InfiniPath serial "
                              "number %.16s!\n", dd->ipath_serial);
 
+       if (dd->ipath_minrev >= 4) {
+               /* Rev4+ reports extra errors via internal GPIO pins */
+               dd->ipath_flags |= IPATH_GPIO_ERRINTRS;
+               dd->ipath_gpio_mask |= IPATH_GPIO_ERRINTR_MASK;
+               ipath_write_kreg(dd, dd->ipath_kregs->kr_gpio_mask,
+                                dd->ipath_gpio_mask);
+       }
+
        return 0;
 }
 
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c 
b/drivers/infiniband/hw/ipath/ipath_intr.c
index b29fe7e..11b3614 100644
--- a/drivers/infiniband/hw/ipath/ipath_intr.c
+++ b/drivers/infiniband/hw/ipath/ipath_intr.c
@@ -1085,8 +1085,8 @@ irqreturn_t ipath_intr(int irq, void *data)
                 * GPIO_2 indicates (on some HT4xx boards) that a packet
                 *        has arrived for Port 0. Checking for this
                 *        is controlled by flag IPATH_GPIO_INTR.
-                * GPIO_3..5 on IBA6120 Rev2 chips indicate errors
-                *        that we need to count. Checking for this
+                * GPIO_3..5 on IBA6120 Rev2 and IBA6110 Rev4 chips indicate
+                *        errors that we need to count. Checking for this
                 *        is controlled by flag IPATH_GPIO_ERRINTRS.
                 */
                u32 gpiostatus;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to