diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/igb/e1000_82575.c | 7 | ||||
-rw-r--r-- | drivers/net/igb/e1000_82575.h | 5 | ||||
-rw-r--r-- | drivers/net/igb/e1000_mac.c | 14 |
3 files changed, 17 insertions, 9 deletions
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c index bd3efdb95c64..fa4a76299e00 100644 --- a/drivers/net/igb/e1000_82575.c +++ b/drivers/net/igb/e1000_82575.c | |||
@@ -866,8 +866,7 @@ void igb_shutdown_fiber_serdes_link_82575(struct e1000_hw *hw) | |||
866 | { | 866 | { |
867 | u32 reg; | 867 | u32 reg; |
868 | 868 | ||
869 | if (hw->mac.type != e1000_82576 || | 869 | if (hw->phy.media_type != e1000_media_type_internal_serdes) |
870 | hw->phy.media_type != e1000_media_type_internal_serdes) | ||
871 | return; | 870 | return; |
872 | 871 | ||
873 | /* if the management interface is not enabled, then power down */ | 872 | /* if the management interface is not enabled, then power down */ |
@@ -1228,10 +1227,6 @@ out: | |||
1228 | static bool igb_sgmii_active_82575(struct e1000_hw *hw) | 1227 | static bool igb_sgmii_active_82575(struct e1000_hw *hw) |
1229 | { | 1228 | { |
1230 | struct e1000_dev_spec_82575 *dev_spec = &hw->dev_spec._82575; | 1229 | struct e1000_dev_spec_82575 *dev_spec = &hw->dev_spec._82575; |
1231 | |||
1232 | if (hw->mac.type != e1000_82575 && hw->mac.type != e1000_82576) | ||
1233 | return false; | ||
1234 | |||
1235 | return dev_spec->sgmii_active; | 1230 | return dev_spec->sgmii_active; |
1236 | } | 1231 | } |
1237 | 1232 | ||
diff --git a/drivers/net/igb/e1000_82575.h b/drivers/net/igb/e1000_82575.h index 0f16abab2565..b674417ae06d 100644 --- a/drivers/net/igb/e1000_82575.h +++ b/drivers/net/igb/e1000_82575.h | |||
@@ -32,6 +32,11 @@ void igb_update_mc_addr_list(struct e1000_hw*, u8*, u32, u32, u32); | |||
32 | extern void igb_shutdown_fiber_serdes_link_82575(struct e1000_hw *hw); | 32 | extern void igb_shutdown_fiber_serdes_link_82575(struct e1000_hw *hw); |
33 | extern void igb_rx_fifo_flush_82575(struct e1000_hw *hw); | 33 | extern void igb_rx_fifo_flush_82575(struct e1000_hw *hw); |
34 | 34 | ||
35 | #define ID_LED_DEFAULT_82575_SERDES ((ID_LED_DEF1_DEF2 << 12) | \ | ||
36 | (ID_LED_DEF1_DEF2 << 8) | \ | ||
37 | (ID_LED_DEF1_DEF2 << 4) | \ | ||
38 | (ID_LED_OFF1_ON2)) | ||
39 | |||
35 | #define E1000_RAR_ENTRIES_82575 16 | 40 | #define E1000_RAR_ENTRIES_82575 16 |
36 | #define E1000_RAR_ENTRIES_82576 24 | 41 | #define E1000_RAR_ENTRIES_82576 24 |
37 | 42 | ||
diff --git a/drivers/net/igb/e1000_mac.c b/drivers/net/igb/e1000_mac.c index 37706d9981e8..34f1a370b068 100644 --- a/drivers/net/igb/e1000_mac.c +++ b/drivers/net/igb/e1000_mac.c | |||
@@ -1064,9 +1064,17 @@ static s32 igb_valid_led_default(struct e1000_hw *hw, u16 *data) | |||
1064 | goto out; | 1064 | goto out; |
1065 | } | 1065 | } |
1066 | 1066 | ||
1067 | if (*data == ID_LED_RESERVED_0000 || *data == ID_LED_RESERVED_FFFF) | 1067 | if (*data == ID_LED_RESERVED_0000 || *data == ID_LED_RESERVED_FFFF) { |
1068 | *data = ID_LED_DEFAULT; | 1068 | switch(hw->phy.media_type) { |
1069 | 1069 | case e1000_media_type_internal_serdes: | |
1070 | *data = ID_LED_DEFAULT_82575_SERDES; | ||
1071 | break; | ||
1072 | case e1000_media_type_copper: | ||
1073 | default: | ||
1074 | *data = ID_LED_DEFAULT; | ||
1075 | break; | ||
1076 | } | ||
1077 | } | ||
1070 | out: | 1078 | out: |
1071 | return ret_val; | 1079 | return ret_val; |
1072 | } | 1080 | } |