diff options
author | Yaniv Rosner <yanivr@broadcom.com> | 2009-11-05 12:18:07 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-05 23:00:29 -0500 |
commit | 7846e471b5b5cac5e09c8e6ebeb67e18279db8e3 (patch) | |
tree | cf80dc2865c0d00997643ad35771820d8759d9b3 /drivers/net/bnx2x_main.c | |
parent | 18afb0a6fa69efb76b7a67a151c0530d63789141 (diff) |
bnx2x: Fix CL73 autoneg issues
- Advertise 1G KX4 in CL73 when 1G speed capability is enabled
- Add flow-control negotiation over CL73
- External loopback test on Serdes should be done in FORCE mode, since in
CL73 it is unable to link up with the same core using AUTONEG
- Fix bnx2x_set_led function to support CL73 link leds
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>
Diffstat (limited to 'drivers/net/bnx2x_main.c')
-rw-r--r-- | drivers/net/bnx2x_main.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c index 59b58d8f0fa8..6f16547a1b8a 100644 --- a/drivers/net/bnx2x_main.c +++ b/drivers/net/bnx2x_main.c | |||
@@ -10855,7 +10855,6 @@ static void bnx2x_get_ethtool_stats(struct net_device *dev, | |||
10855 | static int bnx2x_phys_id(struct net_device *dev, u32 data) | 10855 | static int bnx2x_phys_id(struct net_device *dev, u32 data) |
10856 | { | 10856 | { |
10857 | struct bnx2x *bp = netdev_priv(dev); | 10857 | struct bnx2x *bp = netdev_priv(dev); |
10858 | int port = BP_PORT(bp); | ||
10859 | int i; | 10858 | int i; |
10860 | 10859 | ||
10861 | if (!netif_running(dev)) | 10860 | if (!netif_running(dev)) |
@@ -10869,13 +10868,10 @@ static int bnx2x_phys_id(struct net_device *dev, u32 data) | |||
10869 | 10868 | ||
10870 | for (i = 0; i < (data * 2); i++) { | 10869 | for (i = 0; i < (data * 2); i++) { |
10871 | if ((i % 2) == 0) | 10870 | if ((i % 2) == 0) |
10872 | bnx2x_set_led(bp, port, LED_MODE_OPER, SPEED_1000, | 10871 | bnx2x_set_led(&bp->link_params, LED_MODE_OPER, |
10873 | bp->link_params.hw_led_mode, | 10872 | SPEED_1000); |
10874 | bp->link_params.chip_id); | ||
10875 | else | 10873 | else |
10876 | bnx2x_set_led(bp, port, LED_MODE_OFF, 0, | 10874 | bnx2x_set_led(&bp->link_params, LED_MODE_OFF, 0); |
10877 | bp->link_params.hw_led_mode, | ||
10878 | bp->link_params.chip_id); | ||
10879 | 10875 | ||
10880 | msleep_interruptible(500); | 10876 | msleep_interruptible(500); |
10881 | if (signal_pending(current)) | 10877 | if (signal_pending(current)) |
@@ -10883,10 +10879,8 @@ static int bnx2x_phys_id(struct net_device *dev, u32 data) | |||
10883 | } | 10879 | } |
10884 | 10880 | ||
10885 | if (bp->link_vars.link_up) | 10881 | if (bp->link_vars.link_up) |
10886 | bnx2x_set_led(bp, port, LED_MODE_OPER, | 10882 | bnx2x_set_led(&bp->link_params, LED_MODE_OPER, |
10887 | bp->link_vars.line_speed, | 10883 | bp->link_vars.line_speed); |
10888 | bp->link_params.hw_led_mode, | ||
10889 | bp->link_params.chip_id); | ||
10890 | 10884 | ||
10891 | return 0; | 10885 | return 0; |
10892 | } | 10886 | } |