| From 08771bce330036d473be6ce851cd00bcd351ebf6 Mon Sep 17 00:00:00 2001 |
| From: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> |
| Date: Fri, 26 Feb 2021 13:19:22 -0800 |
| Subject: ice: Continue probe on link/PHY errors |
| |
| From: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> |
| |
| commit 08771bce330036d473be6ce851cd00bcd351ebf6 upstream. |
| |
| An incorrect NVM update procedure can result in the driver failing probe. |
| In this case, the recommended resolution method is to update the NVM |
| using the right procedure. However, if the driver fails probe, the user |
| will not be able to update the NVM. So do not fail probe on link/PHY |
| errors. |
| |
| Fixes: 1a3571b5938c ("ice: restore PHY settings on media insertion") |
| Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> |
| Tested-by: Tony Brelinski <tonyx.brelinski@intel.com> |
| Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/ice/ice_main.c | 15 ++++++--------- |
| 1 file changed, 6 insertions(+), 9 deletions(-) |
| |
| --- a/drivers/net/ethernet/intel/ice/ice_main.c |
| +++ b/drivers/net/ethernet/intel/ice/ice_main.c |
| @@ -4170,28 +4170,25 @@ ice_probe(struct pci_dev *pdev, const st |
| goto err_send_version_unroll; |
| } |
| |
| + /* not a fatal error if this fails */ |
| err = ice_init_nvm_phy_type(pf->hw.port_info); |
| - if (err) { |
| + if (err) |
| dev_err(dev, "ice_init_nvm_phy_type failed: %d\n", err); |
| - goto err_send_version_unroll; |
| - } |
| |
| + /* not a fatal error if this fails */ |
| err = ice_update_link_info(pf->hw.port_info); |
| - if (err) { |
| + if (err) |
| dev_err(dev, "ice_update_link_info failed: %d\n", err); |
| - goto err_send_version_unroll; |
| - } |
| |
| ice_init_link_dflt_override(pf->hw.port_info); |
| |
| /* if media available, initialize PHY settings */ |
| if (pf->hw.port_info->phy.link_info.link_info & |
| ICE_AQ_MEDIA_AVAILABLE) { |
| + /* not a fatal error if this fails */ |
| err = ice_init_phy_user_cfg(pf->hw.port_info); |
| - if (err) { |
| + if (err) |
| dev_err(dev, "ice_init_phy_user_cfg failed: %d\n", err); |
| - goto err_send_version_unroll; |
| - } |
| |
| if (!test_bit(ICE_FLAG_LINK_DOWN_ON_CLOSE_ENA, pf->flags)) { |
| struct ice_vsi *vsi = ice_get_main_vsi(pf); |