bnx2x: Keep only one HW path active
authorEilon Greenstein <eilong@broadcom.com>
Wed, 12 Aug 2009 08:23:51 +0000 (08:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Aug 2009 06:02:54 +0000 (23:02 -0700)
Disable bmac access while working with emac and keep the single lane SerDes in
reset while working with 4 lanes XGXS

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x_link.c

index dc3b69e1fd1df9920df19a95b41b5bfab82a952a..b81a05737d48317e2581c83491a17a9476484910 100644 (file)
@@ -397,7 +397,8 @@ static u8 bnx2x_emac_enable(struct link_params *params,
 
                /* enable access for bmac registers */
                REG_WR(bp, NIG_REG_BMAC0_REGS_OUT_EN + port*4, 0x1);
-       }
+       } else
+               REG_WR(bp, NIG_REG_BMAC0_REGS_OUT_EN + port*4, 0x0);
 
        vars->mac_type = MAC_TYPE_EMAC;
        return 0;
@@ -1021,8 +1022,8 @@ static u8 bnx2x_reset_unicore(struct link_params *params)
                              MDIO_COMBO_IEEE0_MII_CONTROL,
                              (mii_control |
                               MDIO_COMBO_IEEO_MII_CONTROL_RESET));
-
-       bnx2x_set_serdes_access(params);
+       if (params->switch_cfg == SWITCH_CFG_1G)
+               bnx2x_set_serdes_access(params);
 
        /* wait for the reset to self clear */
        for (i = 0; i < MDIO_ACCESS_TIMEOUT; i++) {