IB/ipath: Only do 1X workaround on rev1 chips
authorDave Olson <dave.olson@qlogic.com>
Fri, 5 Dec 2008 19:13:19 +0000 (11:13 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 5 Dec 2008 19:13:19 +0000 (11:13 -0800)
Signed-off-by: Dave Olson <dave.olson@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_iba7220.c

index 3b38bc9a331d8b91a7491e814b607c02fff4a1a2..b2a9d4c155d14fbe44006156ed76a8ea21d54592 100644 (file)
@@ -2452,13 +2452,14 @@ static int ipath_7220_ib_updown(struct ipath_devdata *dd, int ibup, u64 ibcs)
                        }
                }
                /*
-                * if we are in 1X, and are in autoneg width, it
-                * could be due to an xgxs problem, so if we haven't
+                * if we are in 1X on rev1 only, and are in autoneg width,
+                * it could be due to an xgxs problem, so if we haven't
                 * already tried, try twice to get to 4X; if we
                 * tried, and couldn't, report it, since it will
                 * probably not be what is desired.
                 */
-               if ((dd->ipath_link_width_enabled & (IB_WIDTH_1X |
+               if (dd->ipath_minrev == 1 &&
+                   (dd->ipath_link_width_enabled & (IB_WIDTH_1X |
                        IB_WIDTH_4X)) == (IB_WIDTH_1X | IB_WIDTH_4X)
                        && dd->ipath_link_width_active == IB_WIDTH_1X
                        && dd->ipath_x1_fix_tries < 3) {