]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 13:01:57 +0000 (15:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 13:01:57 +0000 (15:01 +0200)
added patches:
igc-remove-_i_phy_id-checking.patch
igc-remove-phy-type-checking.patch
igc-update-i226_k-device-id.patch

queue-5.10/igc-remove-_i_phy_id-checking.patch [new file with mode: 0644]
queue-5.10/igc-remove-phy-type-checking.patch [new file with mode: 0644]
queue-5.10/igc-update-i226_k-device-id.patch [new file with mode: 0644]
queue-5.10/series

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 (file)
index 0000000..80b9a2f
--- /dev/null
@@ -0,0 +1,77 @@
+From 7c496de538eebd8212dc2a3c9a468386b264d0d4 Mon Sep 17 00:00:00 2001
+From: Sasha Neftin <sasha.neftin@intel.com>
+Date: Wed, 7 Jul 2021 08:14:40 +0300
+Subject: igc: Remove _I_PHY_ID checking
+
+From: Sasha Neftin <sasha.neftin@intel.com>
+
+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 <sasha.neftin@intel.com>
+Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..70334cf
--- /dev/null
@@ -0,0 +1,47 @@
+From 47bca7de6a4fb8dcb564c7ca14d885c91ed19e03 Mon Sep 17 00:00:00 2001
+From: Sasha Neftin <sasha.neftin@intel.com>
+Date: Sat, 10 Jul 2021 20:57:50 +0300
+Subject: igc: Remove phy->type checking
+
+From: Sasha Neftin <sasha.neftin@intel.com>
+
+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 <sasha.neftin@intel.com>
+Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..b579b91
--- /dev/null
@@ -0,0 +1,32 @@
+From 79cc8322b6d82747cb63ea464146c0bf5b5a6bc1 Mon Sep 17 00:00:00 2001
+From: Sasha Neftin <sasha.neftin@intel.com>
+Date: Thu, 9 Sep 2021 20:49:04 +0300
+Subject: igc: Update I226_K device ID
+
+From: Sasha Neftin <sasha.neftin@intel.com>
+
+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 <sasha.neftin@intel.com>
+Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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
index bf6093d96f241bb6c28c4c7f3dd516449302168a..f11f7c6a3a1d5bac114fddcc1a6263310ec8c3ab 100644 (file)
@@ -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