|
|
@@ -0,0 +1,73 @@
|
|
|
+From 7c496de538eebd8212dc2a3c9a468386b264d0d4 Mon Sep 17 00:00:00 2001
|
|
|
+From: Sasha Neftin <[email protected]>
|
|
|
+Date: Wed, 7 Jul 2021 08:14:40 +0300
|
|
|
+Subject: igc: Remove _I_PHY_ID checking
|
|
|
+
|
|
|
+i225 devices have only one PHY vendor. There is no point checking
|
|
|
+_I_PHY_ID during the link establishment and auto-negotiation process.
|
|
|
+This patch comes to clean up these pointless checkings.
|
|
|
+
|
|
|
+Signed-off-by: Sasha Neftin <[email protected]>
|
|
|
+Tested-by: Dvora Fuxbrumer <[email protected]>
|
|
|
+Signed-off-by: Tony Nguyen <[email protected]>
|
|
|
+---
|
|
|
+ drivers/net/ethernet/intel/igc/igc_base.c | 10 +---------
|
|
|
+ drivers/net/ethernet/intel/igc/igc_main.c | 3 +--
|
|
|
+ drivers/net/ethernet/intel/igc/igc_phy.c | 6 ++----
|
|
|
+ 3 files changed, 4 insertions(+), 15 deletions(-)
|
|
|
+
|
|
|
+(limited to 'drivers/net/ethernet/intel/igc')
|
|
|
+
|
|
|
+--- a/drivers/net/ethernet/intel/igc/igc_base.c
|
|
|
++++ b/drivers/net/ethernet/intel/igc/igc_base.c
|
|
|
+@@ -187,15 +187,7 @@ static s32 igc_init_phy_params_base(stru
|
|
|
+
|
|
|
+ igc_check_for_copper_link(hw);
|
|
|
+
|
|
|
+- /* Verify phy id and set remaining function pointers */
|
|
|
+- switch (phy->id) {
|
|
|
+- case I225_I_PHY_ID:
|
|
|
+- phy->type = igc_phy_i225;
|
|
|
+- break;
|
|
|
+- default:
|
|
|
+- ret_val = -IGC_ERR_PHY;
|
|
|
+- goto out;
|
|
|
+- }
|
|
|
++ phy->type = igc_phy_i225;
|
|
|
+
|
|
|
+ out:
|
|
|
+ return ret_val;
|
|
|
+--- a/drivers/net/ethernet/intel/igc/igc_main.c
|
|
|
++++ b/drivers/net/ethernet/intel/igc/igc_main.c
|
|
|
+@@ -4189,8 +4189,7 @@ bool igc_has_link(struct igc_adapter *ad
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+- if (hw->mac.type == igc_i225 &&
|
|
|
+- hw->phy.id == I225_I_PHY_ID) {
|
|
|
++ if (hw->mac.type == igc_i225) {
|
|
|
+ if (!netif_carrier_ok(adapter->netdev)) {
|
|
|
+ adapter->flags &= ~IGC_FLAG_NEED_LINK_UPDATE;
|
|
|
+ } else if (!(adapter->flags & IGC_FLAG_NEED_LINK_UPDATE)) {
|
|
|
+--- a/drivers/net/ethernet/intel/igc/igc_phy.c
|
|
|
++++ b/drivers/net/ethernet/intel/igc/igc_phy.c
|
|
|
+@@ -249,8 +249,7 @@ static s32 igc_phy_setup_autoneg(struct
|
|
|
+ return ret_val;
|
|
|
+ }
|
|
|
+
|
|
|
+- if ((phy->autoneg_mask & ADVERTISE_2500_FULL) &&
|
|
|
+- hw->phy.id == I225_I_PHY_ID) {
|
|
|
++ if (phy->autoneg_mask & ADVERTISE_2500_FULL) {
|
|
|
+ /* Read the MULTI GBT AN Control Register - reg 7.32 */
|
|
|
+ ret_val = phy->ops.read_reg(hw, (STANDARD_AN_REG_MASK <<
|
|
|
+ MMD_DEVADDR_SHIFT) |
|
|
|
+@@ -390,8 +389,7 @@ static s32 igc_phy_setup_autoneg(struct
|
|
|
+ ret_val = phy->ops.write_reg(hw, PHY_1000T_CTRL,
|
|
|
+ mii_1000t_ctrl_reg);
|
|
|
+
|
|
|
+- if ((phy->autoneg_mask & ADVERTISE_2500_FULL) &&
|
|
|
+- hw->phy.id == I225_I_PHY_ID)
|
|
|
++ if (phy->autoneg_mask & ADVERTISE_2500_FULL)
|
|
|
+ ret_val = phy->ops.write_reg(hw,
|
|
|
+ (STANDARD_AN_REG_MASK <<
|
|
|
+ MMD_DEVADDR_SHIFT) |
|