]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.14
authorSasha Levin <sashal@kernel.org>
Mon, 25 Oct 2021 16:04:54 +0000 (12:04 -0400)
committerSasha Levin <sashal@kernel.org>
Mon, 25 Oct 2021 16:04:54 +0000 (12:04 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.14/e1000e-separate-tgp-board-type-from-spt.patch [new file with mode: 0644]
queue-5.14/series

diff --git a/queue-5.14/e1000e-separate-tgp-board-type-from-spt.patch b/queue-5.14/e1000e-separate-tgp-board-type-from-spt.patch
new file mode 100644 (file)
index 0000000..02ee14a
--- /dev/null
@@ -0,0 +1,126 @@
+From 3f295b0041f29c663811121c5fb0d1414512a675 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 22 Sep 2021 09:54:49 +0300
+Subject: e1000e: Separate TGP board type from SPT
+
+From: Sasha Neftin <sasha.neftin@intel.com>
+
+[ Upstream commit 280db5d420090a24e4e41f9ddcbf37920a598572 ]
+
+We have the same LAN controller on different PCHs. Separate TGP board
+type from SPT which will allow for specific fixes to be applied for
+TGP platforms.
+
+Suggested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
+Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
+Tested-by: Mark Pearson <markpearson@lenovo.com>
+Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/intel/e1000e/e1000.h   |  4 ++-
+ drivers/net/ethernet/intel/e1000e/ich8lan.c | 20 ++++++++++++++
+ drivers/net/ethernet/intel/e1000e/netdev.c  | 29 +++++++++++----------
+ 3 files changed, 38 insertions(+), 15 deletions(-)
+
+diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
+index 5b2143f4b1f8..3178efd98006 100644
+--- a/drivers/net/ethernet/intel/e1000e/e1000.h
++++ b/drivers/net/ethernet/intel/e1000e/e1000.h
+@@ -113,7 +113,8 @@ enum e1000_boards {
+       board_pch2lan,
+       board_pch_lpt,
+       board_pch_spt,
+-      board_pch_cnp
++      board_pch_cnp,
++      board_pch_tgp
+ };
+ struct e1000_ps_page {
+@@ -499,6 +500,7 @@ extern const struct e1000_info e1000_pch2_info;
+ extern const struct e1000_info e1000_pch_lpt_info;
+ extern const struct e1000_info e1000_pch_spt_info;
+ extern const struct e1000_info e1000_pch_cnp_info;
++extern const struct e1000_info e1000_pch_tgp_info;
+ extern const struct e1000_info e1000_es2_info;
+ void e1000e_ptp_init(struct e1000_adapter *adapter);
+diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
+index 58a96a0cf4aa..f8b3e758a8d2 100644
+--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
++++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
+@@ -5992,3 +5992,23 @@ const struct e1000_info e1000_pch_cnp_info = {
+       .phy_ops                = &ich8_phy_ops,
+       .nvm_ops                = &spt_nvm_ops,
+ };
++
++const struct e1000_info e1000_pch_tgp_info = {
++      .mac                    = e1000_pch_tgp,
++      .flags                  = FLAG_IS_ICH
++                                | FLAG_HAS_WOL
++                                | FLAG_HAS_HW_TIMESTAMP
++                                | FLAG_HAS_CTRLEXT_ON_LOAD
++                                | FLAG_HAS_AMT
++                                | FLAG_HAS_FLASH
++                                | FLAG_HAS_JUMBO_FRAMES
++                                | FLAG_APME_IN_WUC,
++      .flags2                 = FLAG2_HAS_PHY_STATS
++                                | FLAG2_HAS_EEE,
++      .pba                    = 26,
++      .max_hw_frame_size      = 9022,
++      .get_variants           = e1000_get_variants_ich8lan,
++      .mac_ops                = &ich8_mac_ops,
++      .phy_ops                = &ich8_phy_ops,
++      .nvm_ops                = &spt_nvm_ops,
++};
+diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
+index 757a54c39eef..774f849027f0 100644
+--- a/drivers/net/ethernet/intel/e1000e/netdev.c
++++ b/drivers/net/ethernet/intel/e1000e/netdev.c
+@@ -51,6 +51,7 @@ static const struct e1000_info *e1000_info_tbl[] = {
+       [board_pch_lpt]         = &e1000_pch_lpt_info,
+       [board_pch_spt]         = &e1000_pch_spt_info,
+       [board_pch_cnp]         = &e1000_pch_cnp_info,
++      [board_pch_tgp]         = &e1000_pch_tgp_info,
+ };
+ struct e1000_reg_info {
+@@ -7844,20 +7845,20 @@ static const struct pci_device_id e1000_pci_tbl[] = {
+       { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V11), board_pch_cnp },
+       { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM12), board_pch_spt },
+       { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V12), board_pch_spt },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM13), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V13), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V15), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM16), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V16), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM17), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V17), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM18), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V18), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM19), board_pch_cnp },
+-      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V19), board_pch_cnp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM13), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V13), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V15), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM16), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V16), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM17), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V17), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM18), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V18), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM19), board_pch_tgp },
++      { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V19), board_pch_tgp },
+       { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
+ };
+-- 
+2.33.0
+
index d608e5a133a713e6c19c736f1fd476d885fe71fb..97b18aac4864621eddc7edcc1b9238ed6f48a5ec 100644 (file)
@@ -164,3 +164,4 @@ s390-pci-fix-zpci_zdev_put-on-reserve.patch
 bpf-test-cgroup-use-sk_-alloc-free-for-test-cases.patch
 usbnet-sanity-check-for-maxpacket.patch
 net-mdiobus-fix-memory-leak-in-__mdiobus_register.patch
+e1000e-separate-tgp-board-type-from-spt.patch