diff options
author | Yaniv Rosner <yaniv.rosner@broadcom.com> | 2012-09-11 00:34:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-13 16:37:52 -0400 |
commit | 430d172a635c3dd791a56c59573418e02735b006 (patch) | |
tree | dd1d0f0532e10c7a560542bcfe498d1f4671ca0e | |
parent | 375944cb7c96bf66914a73b1858e5865c439b335 (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.c | 10 |
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 | ||