| From cbd4db989af0a1d4b85c047efd5bdb4b133da291 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Christian=20Gr=C3=B6nke?= <c.groenke@infodas.de> |
| Date: Tue, 26 Jun 2018 10:12:18 +0000 |
| Subject: igb: Remove superfluous reset to PHY and page 0 selection |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| [ Upstream commit 2a83fba6cae89dd9c0625e68ff8ffff791c67ac0 ] |
| |
| This patch reverts two previous applied patches to fix an issue |
| that appeared when using SGMII based SFP modules. In the current |
| state the driver will try to reset the PHY before obtaining the |
| phy_addr of the SGMII attached PHY. That leads to an error in |
| e1000_write_phy_reg_sgmii_82575. Causing the initialization to |
| fail: |
| |
| igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k |
| igb: Copyright (c) 2007-2014 Intel Corporation. |
| igb: probe of ????:??:??.? failed with error -3 |
| |
| The patches being reverted are: |
| |
| commit 182785335447957409282ca745aa5bc3968facee |
| Author: Aaron Sierra <asierra@xes-inc.com> |
| Date: Tue Nov 29 10:03:56 2016 -0600 |
| |
| igb: reset the PHY before reading the PHY ID |
| |
| commit 440aeca4b9858248d8f16d724d9fa87a4f65fa33 |
| Author: Matwey V Kornilov <matwey@sai.msu.ru> |
| Date: Thu Nov 24 13:32:48 2016 +0300 |
| |
| igb: Explicitly select page 0 at initialization |
| |
| The first reverted patch directly causes the problem mentioned above. |
| In case of SGMII the phy_addr is not known at this point and will |
| only be obtained by 'igb_get_phy_id_82575' further down in the code. |
| The second removed patch selects forces selection of page 0 in the |
| PHY. Something that the reset tries to address as well. |
| |
| As pointed out by Alexander Duzck, the patch below fixes the same |
| issue but in the proper location: |
| |
| commit 4e684f59d760a2c7c716bb60190783546e2d08a1 |
| Author: Chris J Arges <christopherarges@gmail.com> |
| Date: Wed Nov 2 09:13:42 2016 -0500 |
| |
| igb: Workaround for igb i210 firmware issue |
| |
| Reverts: 440aeca4b9858248d8f16d724d9fa87a4f65fa33. |
| Reverts: 182785335447957409282ca745aa5bc3968facee. |
| |
| Signed-off-by: Christian Grรถnke <c.groenke@infodas.de> |
| Reviewed-by: Alexander Duyck <alexander.h.duyck@intel.com> |
| Tested-by: Aaron Brown <aaron.f.brown@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/intel/igb/e1000_82575.c | 12 ------------ |
| 1 file changed, 12 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c |
| index 4a50870e0fa7..a61447fd778e 100644 |
| --- a/drivers/net/ethernet/intel/igb/e1000_82575.c |
| +++ b/drivers/net/ethernet/intel/igb/e1000_82575.c |
| @@ -245,19 +245,7 @@ static s32 igb_init_phy_params_82575(struct e1000_hw *hw) |
| hw->bus.func = (rd32(E1000_STATUS) & E1000_STATUS_FUNC_MASK) >> |
| E1000_STATUS_FUNC_SHIFT; |
| |
| - /* Make sure the PHY is in a good state. Several people have reported |
| - * firmware leaving the PHY's page select register set to something |
| - * other than the default of zero, which causes the PHY ID read to |
| - * access something other than the intended register. |
| - */ |
| - ret_val = hw->phy.ops.reset(hw); |
| - if (ret_val) { |
| - hw_dbg("Error resetting the PHY.\n"); |
| - goto out; |
| - } |
| - |
| /* Set phy->phy_addr and phy->id. */ |
| - igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0); |
| ret_val = igb_get_phy_id_82575(hw); |
| if (ret_val) |
| return ret_val; |
| -- |
| 2.17.1 |
| |