diff options
Diffstat (limited to 'drivers/net/e1000e/es2lan.c')
-rw-r--r-- | drivers/net/e1000e/es2lan.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/e1000e/es2lan.c b/drivers/net/e1000e/es2lan.c index 3f435c16608d..c7bc657b5da2 100644 --- a/drivers/net/e1000e/es2lan.c +++ b/drivers/net/e1000e/es2lan.c | |||
@@ -114,6 +114,7 @@ static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, | |||
114 | u16 *data); | 114 | u16 *data); |
115 | static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, | 115 | static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, |
116 | u16 data); | 116 | u16 data); |
117 | static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw); | ||
117 | 118 | ||
118 | /** | 119 | /** |
119 | * e1000_init_phy_params_80003es2lan - Init ESB2 PHY func ptrs. | 120 | * e1000_init_phy_params_80003es2lan - Init ESB2 PHY func ptrs. |
@@ -127,6 +128,9 @@ static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw) | |||
127 | if (hw->phy.media_type != e1000_media_type_copper) { | 128 | if (hw->phy.media_type != e1000_media_type_copper) { |
128 | phy->type = e1000_phy_none; | 129 | phy->type = e1000_phy_none; |
129 | return 0; | 130 | return 0; |
131 | } else { | ||
132 | phy->ops.power_up = e1000_power_up_phy_copper; | ||
133 | phy->ops.power_down = e1000_power_down_phy_copper_80003es2lan; | ||
130 | } | 134 | } |
131 | 135 | ||
132 | phy->addr = 1; | 136 | phy->addr = 1; |
@@ -1303,6 +1307,23 @@ static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, | |||
1303 | } | 1307 | } |
1304 | 1308 | ||
1305 | /** | 1309 | /** |
1310 | * e1000_power_down_phy_copper_80003es2lan - Remove link during PHY power down | ||
1311 | * @hw: pointer to the HW structure | ||
1312 | * | ||
1313 | * In the case of a PHY power down to save power, or to turn off link during a | ||
1314 | * driver unload, or wake on lan is not enabled, remove the link. | ||
1315 | **/ | ||
1316 | static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw) | ||
1317 | { | ||
1318 | /* If the management interface is not enabled, then power down */ | ||
1319 | if (!(hw->mac.ops.check_mng_mode(hw) || | ||
1320 | hw->phy.ops.check_reset_block(hw))) | ||
1321 | e1000_power_down_phy_copper(hw); | ||
1322 | |||
1323 | return; | ||
1324 | } | ||
1325 | |||
1326 | /** | ||
1306 | * e1000_clear_hw_cntrs_80003es2lan - Clear device specific hardware counters | 1327 | * e1000_clear_hw_cntrs_80003es2lan - Clear device specific hardware counters |
1307 | * @hw: pointer to the HW structure | 1328 | * @hw: pointer to the HW structure |
1308 | * | 1329 | * |