]> err.no Git - linux-2.6/commitdiff
IB/ipath: iba6110 rev4 GPIO counters support
authorArthur Jones <arthur.jones@qlogic.com>
Thu, 2 Aug 2007 21:46:29 +0000 (14:46 -0700)
committerRoland Dreier <rolandd@cisco.com>
Wed, 10 Oct 2007 03:02:46 +0000 (20:02 -0700)
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 <arthur.jones@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_iba6110.c
drivers/infiniband/hw/ipath/ipath_intr.c

index 650745d83faccbe0f3da87ffbc6feb11087b1137..e1c5998887ea4526ce94d5df0d0f5bf0b5be8435 100644 (file)
@@ -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;
 }
 
index b29fe7e9b11a598686052f3797b8f0b2c1c6f3d1..11b361408ae6a6b5497d87263adf9dc0e7e55525 100644 (file)
@@ -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;