Merge tag 'r8169-20060920-00' of git://electric-eye.fr.zoreil.com/home/romieu/linux...
[pandora-kernel.git] / drivers / infiniband / hw / ipath / ipath_iba6120.c
index f4233ba..d86516d 100644 (file)
@@ -363,8 +363,9 @@ static void ipath_pe_handle_hwerrors(struct ipath_devdata *dd, char *msg,
                         * and we get here multiple times
                         */
                        if (dd->ipath_flags & IPATH_INITTED) {
-                               ipath_dev_err(dd, "Fatal Error (freeze "
-                                             "mode), no longer usable\n");
+                               ipath_dev_err(dd, "Fatal Hardware Error (freeze "
+                                             "mode), no longer usable, SN %.16s\n",
+                                                 dd->ipath_serial);
                                isfatal = 1;
                        }
                        /*
@@ -653,6 +654,15 @@ static int ipath_pe_bringup_serdes(struct ipath_devdata *dd)
                val &= ~INFINIPATH_XGXS_RESET;
                change = 1;
        }
+       if (((val >> INFINIPATH_XGXS_RX_POL_SHIFT) &
+            INFINIPATH_XGXS_RX_POL_MASK) != dd->ipath_rx_pol_inv ) {
+               /* need to compensate for Tx inversion in partner */
+               val &= ~(INFINIPATH_XGXS_RX_POL_MASK <<
+                        INFINIPATH_XGXS_RX_POL_SHIFT);
+               val |= dd->ipath_rx_pol_inv <<
+                       INFINIPATH_XGXS_RX_POL_SHIFT;
+               change = 1;
+       }
        if (change)
                ipath_write_kreg(dd, dd->ipath_kregs->kr_xgxsconfig, val);