From f15aadb94738f56849b7f50d62767bdf0c88f840 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 19 May 2022 15:01:57 +0200 Subject: [PATCH] 5.10-stable patches added patches: igc-remove-_i_phy_id-checking.patch igc-remove-phy-type-checking.patch igc-update-i226_k-device-id.patch --- .../igc-remove-_i_phy_id-checking.patch | 77 +++++++++++++++++++ queue-5.10/igc-remove-phy-type-checking.patch | 47 +++++++++++ queue-5.10/igc-update-i226_k-device-id.patch | 32 ++++++++ queue-5.10/series | 3 + 4 files changed, 159 insertions(+) create mode 100644 queue-5.10/igc-remove-_i_phy_id-checking.patch create mode 100644 queue-5.10/igc-remove-phy-type-checking.patch create mode 100644 queue-5.10/igc-update-i226_k-device-id.patch diff --git a/queue-5.10/igc-remove-_i_phy_id-checking.patch b/queue-5.10/igc-remove-_i_phy_id-checking.patch new file mode 100644 index 00000000000..80b9a2f2b3b --- /dev/null +++ b/queue-5.10/igc-remove-_i_phy_id-checking.patch @@ -0,0 +1,77 @@ +From 7c496de538eebd8212dc2a3c9a468386b264d0d4 Mon Sep 17 00:00:00 2001 +From: Sasha Neftin +Date: Wed, 7 Jul 2021 08:14:40 +0300 +Subject: igc: Remove _I_PHY_ID checking + +From: Sasha Neftin + +commit 7c496de538eebd8212dc2a3c9a468386b264d0d4 upstream. + +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 +Tested-by: Dvora Fuxbrumer +Signed-off-by: Tony Nguyen +Signed-off-by: Nobuhiro Iwamatsu +Signed-off-by: Greg Kroah-Hartman +--- + 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(-) + +--- 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) | diff --git a/queue-5.10/igc-remove-phy-type-checking.patch b/queue-5.10/igc-remove-phy-type-checking.patch new file mode 100644 index 00000000000..70334cf90a6 --- /dev/null +++ b/queue-5.10/igc-remove-phy-type-checking.patch @@ -0,0 +1,47 @@ +From 47bca7de6a4fb8dcb564c7ca14d885c91ed19e03 Mon Sep 17 00:00:00 2001 +From: Sasha Neftin +Date: Sat, 10 Jul 2021 20:57:50 +0300 +Subject: igc: Remove phy->type checking + +From: Sasha Neftin + +commit 47bca7de6a4fb8dcb564c7ca14d885c91ed19e03 upstream. + +i225 devices have only one phy->type: copper. There is no point checking +phy->type during the igc_has_link method from the watchdog that +invoked every 2 seconds. +This patch comes to clean up these pointless checkings. + +Signed-off-by: Sasha Neftin +Tested-by: Dvora Fuxbrumer +Signed-off-by: Tony Nguyen +Signed-off-by: Nobuhiro Iwamatsu +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/ethernet/intel/igc/igc_main.c | 15 ++++----------- + 1 file changed, 4 insertions(+), 11 deletions(-) + +--- a/drivers/net/ethernet/intel/igc/igc_main.c ++++ b/drivers/net/ethernet/intel/igc/igc_main.c +@@ -4177,17 +4177,10 @@ bool igc_has_link(struct igc_adapter *ad + * false until the igc_check_for_link establishes link + * for copper adapters ONLY + */ +- switch (hw->phy.media_type) { +- case igc_media_type_copper: +- if (!hw->mac.get_link_status) +- return true; +- hw->mac.ops.check_for_link(hw); +- link_active = !hw->mac.get_link_status; +- break; +- default: +- case igc_media_type_unknown: +- break; +- } ++ if (!hw->mac.get_link_status) ++ return true; ++ hw->mac.ops.check_for_link(hw); ++ link_active = !hw->mac.get_link_status; + + if (hw->mac.type == igc_i225) { + if (!netif_carrier_ok(adapter->netdev)) { diff --git a/queue-5.10/igc-update-i226_k-device-id.patch b/queue-5.10/igc-update-i226_k-device-id.patch new file mode 100644 index 00000000000..b579b91f8fe --- /dev/null +++ b/queue-5.10/igc-update-i226_k-device-id.patch @@ -0,0 +1,32 @@ +From 79cc8322b6d82747cb63ea464146c0bf5b5a6bc1 Mon Sep 17 00:00:00 2001 +From: Sasha Neftin +Date: Thu, 9 Sep 2021 20:49:04 +0300 +Subject: igc: Update I226_K device ID + +From: Sasha Neftin + +commit 79cc8322b6d82747cb63ea464146c0bf5b5a6bc1 upstream. + +The device ID for I226_K was incorrectly assigned, update the device +ID to the correct one. + +Fixes: bfa5e98c9de4 ("igc: Add new device ID") +Signed-off-by: Sasha Neftin +Tested-by: Nechama Kraus +Signed-off-by: Tony Nguyen +Signed-off-by: Nobuhiro Iwamatsu +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/ethernet/intel/igc/igc_hw.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/ethernet/intel/igc/igc_hw.h ++++ b/drivers/net/ethernet/intel/igc/igc_hw.h +@@ -22,6 +22,7 @@ + #define IGC_DEV_ID_I220_V 0x15F7 + #define IGC_DEV_ID_I225_K 0x3100 + #define IGC_DEV_ID_I225_K2 0x3101 ++#define IGC_DEV_ID_I226_K 0x3102 + #define IGC_DEV_ID_I225_LMVP 0x5502 + #define IGC_DEV_ID_I225_IT 0x0D9F + #define IGC_DEV_ID_I226_LM 0x125B diff --git a/queue-5.10/series b/queue-5.10/series index bf6093d96f2..f11f7c6a3a1 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -2,3 +2,6 @@ usb-gadget-fix-race-when-gadget-driver-register-via-ioctl.patch io_uring-always-grab-file-table-for-deferred-statx.patch floppy-use-a-statically-allocated-error-counter.patch revert-drm-i915-opregion-check-port-number-bounds-for-swsci-display-power-state.patch +igc-remove-_i_phy_id-checking.patch +igc-remove-phy-type-checking.patch +igc-update-i226_k-device-id.patch -- 2.47.3