aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaniv Rosner <yaniv.rosner@broadcom.com>2012-09-11 00:34:11 -0400
committerDavid S. Miller <davem@davemloft.net>2012-09-13 16:37:52 -0400
commit430d172a635c3dd791a56c59573418e02735b006 (patch)
treedd1d0f0532e10c7a560542bcfe498d1f4671ca0e
parent375944cb7c96bf66914a73b1858e5865c439b335 (diff)
bnx2x: display the correct duplex value
Prior to this fix, the driver reported the chip's active duplex state is always 'full', even if using half-duplex mode. Signed-off-by: Yaniv Rosner <yaniv.rosner@broadcom.com> Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
index 40a7b8d877cf..b046beb435b2 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
@@ -5434,7 +5434,7 @@ static int bnx2x_get_link_speed_duplex(struct bnx2x_phy *phy,
5434 switch (speed_mask) { 5434 switch (speed_mask) {
5435 case GP_STATUS_10M: 5435 case GP_STATUS_10M:
5436 vars->line_speed = SPEED_10; 5436 vars->line_speed = SPEED_10;
5437 if (vars->duplex == DUPLEX_FULL) 5437 if (is_duplex == DUPLEX_FULL)
5438 vars->link_status |= LINK_10TFD; 5438 vars->link_status |= LINK_10TFD;
5439 else 5439 else
5440 vars->link_status |= LINK_10THD; 5440 vars->link_status |= LINK_10THD;
@@ -5442,7 +5442,7 @@ static int bnx2x_get_link_speed_duplex(struct bnx2x_phy *phy,
5442 5442
5443 case GP_STATUS_100M: 5443 case GP_STATUS_100M:
5444 vars->line_speed = SPEED_100; 5444 vars->line_speed = SPEED_100;
5445 if (vars->duplex == DUPLEX_FULL) 5445 if (is_duplex == DUPLEX_FULL)
5446 vars->link_status |= LINK_100TXFD; 5446 vars->link_status |= LINK_100TXFD;
5447 else 5447 else
5448 vars->link_status |= LINK_100TXHD; 5448 vars->link_status |= LINK_100TXHD;
@@ -5451,7 +5451,7 @@ static int bnx2x_get_link_speed_duplex(struct bnx2x_phy *phy,
5451 case GP_STATUS_1G: 5451 case GP_STATUS_1G:
5452 case GP_STATUS_1G_KX: 5452 case GP_STATUS_1G_KX:
5453 vars->line_speed = SPEED_1000; 5453 vars->line_speed = SPEED_1000;
5454 if (vars->duplex == DUPLEX_FULL) 5454 if (is_duplex == DUPLEX_FULL)
5455 vars->link_status |= LINK_1000TFD; 5455 vars->link_status |= LINK_1000TFD;
5456 else 5456 else
5457 vars->link_status |= LINK_1000THD; 5457 vars->link_status |= LINK_1000THD;
@@ -5459,7 +5459,7 @@ static int bnx2x_get_link_speed_duplex(struct bnx2x_phy *phy,
5459 5459
5460 case GP_STATUS_2_5G: 5460 case GP_STATUS_2_5G:
5461 vars->line_speed = SPEED_2500; 5461 vars->line_speed = SPEED_2500;
5462 if (vars->duplex == DUPLEX_FULL) 5462 if (is_duplex == DUPLEX_FULL)
5463 vars->link_status |= LINK_2500TFD; 5463 vars->link_status |= LINK_2500TFD;
5464 else 5464 else
5465 vars->link_status |= LINK_2500THD; 5465 vars->link_status |= LINK_2500THD;
@@ -5533,6 +5533,7 @@ static int bnx2x_link_settings_status(struct bnx2x_phy *phy,
5533 5533
5534 if (gp_status & MDIO_GP_STATUS_TOP_AN_STATUS1_LINK_STATUS) { 5534 if (gp_status & MDIO_GP_STATUS_TOP_AN_STATUS1_LINK_STATUS) {
5535 if (SINGLE_MEDIA_DIRECT(params)) { 5535 if (SINGLE_MEDIA_DIRECT(params)) {
5536 vars->duplex = duplex;
5536 bnx2x_flow_ctrl_resolve(phy, params, vars, gp_status); 5537 bnx2x_flow_ctrl_resolve(phy, params, vars, gp_status);
5537 if (phy->req_line_speed == SPEED_AUTO_NEG) 5538 if (phy->req_line_speed == SPEED_AUTO_NEG)
5538 bnx2x_xgxs_an_resolve(phy, params, vars, 5539 bnx2x_xgxs_an_resolve(phy, params, vars,
@@ -5627,6 +5628,7 @@ static int bnx2x_warpcore_read_status(struct bnx2x_phy *phy,
5627 LINK_STATUS_PARALLEL_DETECTION_USED; 5628 LINK_STATUS_PARALLEL_DETECTION_USED;
5628 } 5629 }
5629 bnx2x_ext_phy_resolve_fc(phy, params, vars); 5630 bnx2x_ext_phy_resolve_fc(phy, params, vars);
5631 vars->duplex = duplex;
5630 } 5632 }
5631 } 5633 }
5632 5634