diff options
Diffstat (limited to 'drivers/net/e1000e/ich8lan.c')
-rw-r--r-- | drivers/net/e1000e/ich8lan.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c index d7fc930d1aa5..5080372b0fd7 100644 --- a/drivers/net/e1000e/ich8lan.c +++ b/drivers/net/e1000e/ich8lan.c | |||
@@ -338,12 +338,17 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) | |||
338 | } | 338 | } |
339 | 339 | ||
340 | phy->id = e1000_phy_unknown; | 340 | phy->id = e1000_phy_unknown; |
341 | ret_val = e1000e_get_phy_id(hw); | 341 | switch (hw->mac.type) { |
342 | if (ret_val) | 342 | default: |
343 | goto out; | 343 | ret_val = e1000e_get_phy_id(hw); |
344 | if ((phy->id == 0) || (phy->id == PHY_REVISION_MASK)) { | 344 | if (ret_val) |
345 | goto out; | ||
346 | if ((phy->id != 0) && (phy->id != PHY_REVISION_MASK)) | ||
347 | break; | ||
348 | /* fall-through */ | ||
349 | case e1000_pch2lan: | ||
345 | /* | 350 | /* |
346 | * In case the PHY needs to be in mdio slow mode (eg. 82577), | 351 | * In case the PHY needs to be in mdio slow mode, |
347 | * set slow mode and try to get the PHY id again. | 352 | * set slow mode and try to get the PHY id again. |
348 | */ | 353 | */ |
349 | ret_val = e1000_set_mdio_slow_mode_hv(hw); | 354 | ret_val = e1000_set_mdio_slow_mode_hv(hw); |
@@ -352,6 +357,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) | |||
352 | ret_val = e1000e_get_phy_id(hw); | 357 | ret_val = e1000e_get_phy_id(hw); |
353 | if (ret_val) | 358 | if (ret_val) |
354 | goto out; | 359 | goto out; |
360 | break; | ||
355 | } | 361 | } |
356 | phy->type = e1000e_get_phy_type_from_id(phy->id); | 362 | phy->type = e1000e_get_phy_type_from_id(phy->id); |
357 | 363 | ||