All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
@ 2020-05-20  0:04 Jeff Kirsher
  2020-05-20  0:04 ` [net-next 01/14] igc: Remove PCIe Control register Jeff Kirsher
                   ` (15 more replies)
  0 siblings, 16 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann

This series contains updates to igc only.

Sasha cleans up the igc driver code that is not used or needed.

Vitaly cleans up driver code that was used to support Virtualization on
a device that is not supported by igc, so remove the dead code.

Andre renames a few macros to align with register and field names
described in the data sheet.  Also adds the VLAN Priority Queue Fliter
and EType Queue Filter registers to the list of registers dumped by
igc_get_regs().  Added additional debug messages and updated return codes
for unsupported features.  Refactored the VLAN priority filtering code to
move the core logic into igc_main.c.  Cleaned up duplicate code and
useless code.

The following are changes since commit 2de499258659823b3c7207c5bda089c822b67d69:
  Merge branch 's390-next'
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 1GbE

Andre Guedes (9):
  igc: Rename IGC_VLAPQF macro
  igc: Dump VLANPQF register
  igc: Return -EOPNOTSUPP when VLAN mask doesn't match
  igc: Refactor VLAN priority filtering code
  igc: Remove duplicated IGC_RXPBS macro
  igc: Remove ethertype filter in PTP code
  igc: Fix MAX_ETYPE_FILTER value
  igc: Refactor ethertype filtering code
  igc: Dump ETQF registers

Sasha Neftin (4):
  igc: Remove PCIe Control register
  igc: Clean up obsolete NVM defines
  igc: Remove unused IGC_ICS_DRSTA define
  igc: Remove unused registers

Vitaly Lifshits (1):
  igc: remove IGC_REMOVED function

 drivers/net/ethernet/intel/igc/igc.h         |   9 +-
 drivers/net/ethernet/intel/igc/igc_defines.h |  15 +-
 drivers/net/ethernet/intel/igc/igc_dump.c    |   4 -
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 140 ++++--------------
 drivers/net/ethernet/intel/igc/igc_mac.h     |   4 -
 drivers/net/ethernet/intel/igc/igc_main.c    | 148 ++++++++++++++++++-
 drivers/net/ethernet/intel/igc/igc_ptp.c     |  12 --
 drivers/net/ethernet/intel/igc/igc_regs.h    |  15 +-
 8 files changed, 184 insertions(+), 163 deletions(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [net-next 01/14] igc: Remove PCIe Control register
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 02/14] igc: remove IGC_REMOVED function Jeff Kirsher
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

GCR (PCIe Control) register not in use and should be removed
This patch clean up this register

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_regs.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_regs.h b/drivers/net/ethernet/intel/igc/igc_regs.h
index 5a6110e211fd..0f94285ddc11 100644
--- a/drivers/net/ethernet/intel/igc/igc_regs.h
+++ b/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -36,9 +36,6 @@
 #define IGC_FCRTH		0x02168  /* FC Receive Threshold High - RW */
 #define IGC_FCRTV		0x02460  /* FC Refresh Timer Value - RW */
 
-/* PCIe Register Description */
-#define IGC_GCR			0x05B00  /* PCIe control- RW */
-
 /* Semaphore registers */
 #define IGC_SW_FW_SYNC		0x05B5C  /* SW-FW Synchronization - RW */
 #define IGC_SWSM		0x05B50  /* SW Semaphore */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 02/14] igc: remove IGC_REMOVED function
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
  2020-05-20  0:04 ` [net-next 01/14] igc: Remove PCIe Control register Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 03/14] igc: Clean up obsolete NVM defines Jeff Kirsher
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem
  Cc: Vitaly Lifshits, netdev, nhorman, sassmann, Sasha Neftin,
	Aaron Brown, Jeff Kirsher

From: Vitaly Lifshits <vitaly.lifshits@intel.com>

igc driver has leftovers from the previous device that supported
Virtualization. This can be found in the function IGC_REMOVED which
became obsolete, and can be removed.

Signed-off-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Acked-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_mac.h  | 4 ----
 drivers/net/ethernet/intel/igc/igc_main.c | 3 ---
 drivers/net/ethernet/intel/igc/igc_regs.h | 3 +--
 3 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_mac.h b/drivers/net/ethernet/intel/igc/igc_mac.h
index 832cccec87cd..b5963f86defb 100644
--- a/drivers/net/ethernet/intel/igc/igc_mac.h
+++ b/drivers/net/ethernet/intel/igc/igc_mac.h
@@ -8,10 +8,6 @@
 #include "igc_phy.h"
 #include "igc_defines.h"
 
-#ifndef IGC_REMOVED
-#define IGC_REMOVED(a) (0)
-#endif /* IGC_REMOVED */
-
 /* forward declaration */
 s32 igc_disable_pcie_master(struct igc_hw *hw);
 s32 igc_check_for_copper_link(struct igc_hw *hw);
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 0ae3590a50eb..125026d053eb 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -4659,9 +4659,6 @@ u32 igc_rd32(struct igc_hw *hw, u32 reg)
 	u8 __iomem *hw_addr = READ_ONCE(hw->hw_addr);
 	u32 value = 0;
 
-	if (IGC_REMOVED(hw_addr))
-		return ~value;
-
 	value = readl(&hw_addr[reg]);
 
 	/* reads should not return all F's */
diff --git a/drivers/net/ethernet/intel/igc/igc_regs.h b/drivers/net/ethernet/intel/igc/igc_regs.h
index 0f94285ddc11..f101bfbf52e6 100644
--- a/drivers/net/ethernet/intel/igc/igc_regs.h
+++ b/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -275,8 +275,7 @@ u32 igc_rd32(struct igc_hw *hw, u32 reg);
 #define wr32(reg, val) \
 do { \
 	u8 __iomem *hw_addr = READ_ONCE((hw)->hw_addr); \
-	if (!IGC_REMOVED(hw_addr)) \
-		writel((val), &hw_addr[(reg)]); \
+	writel((val), &hw_addr[(reg)]); \
 } while (0)
 
 #define rd32(reg) (igc_rd32(hw, reg))
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 03/14] igc: Clean up obsolete NVM defines
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
  2020-05-20  0:04 ` [net-next 01/14] igc: Remove PCIe Control register Jeff Kirsher
  2020-05-20  0:04 ` [net-next 02/14] igc: remove IGC_REMOVED function Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 04/14] igc: Rename IGC_VLAPQF macro Jeff Kirsher
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

Packet buffer allocation, reserved word and pointer guard
not applicable for i225 parts.
This patch comes to clean up these obsolete defines

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_defines.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h b/drivers/net/ethernet/intel/igc/igc_defines.h
index 54a7941bdb48..0ecc63d423b8 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -163,11 +163,6 @@
 
 /* For checksumming, the sum of all words in the NVM should equal 0xBABA. */
 #define NVM_SUM				0xBABA
-
-#define NVM_PBA_OFFSET_0		8
-#define NVM_PBA_OFFSET_1		9
-#define NVM_RESERVED_WORD		0xFFFF
-#define NVM_PBA_PTR_GUARD		0xFAFA
 #define NVM_WORD_SIZE_BASE_SHIFT	6
 
 /* Collision related configuration parameters */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 04/14] igc: Rename IGC_VLAPQF macro
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (2 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 03/14] igc: Clean up obsolete NVM defines Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 05/14] igc: Dump VLANPQF register Jeff Kirsher
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

This patch renames the IGC_VLAPQF macro to IGC_VLANPQF as well as
related macros so they match the register name and fields described in
the data sheet.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_defines.h |  6 ++---
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 23 ++++++++++----------
 drivers/net/ethernet/intel/igc/igc_regs.h    |  2 +-
 3 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h b/drivers/net/ethernet/intel/igc/igc_defines.h
index 0ecc63d423b8..f1bb5414f99f 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -508,9 +508,9 @@
 #define IGC_MAX_MAC_HDR_LEN	127
 #define IGC_MAX_NETWORK_HDR_LEN	511
 
-#define IGC_VLAPQF_QUEUE_SEL(_n, q_idx) ((q_idx) << ((_n) * 4))
-#define IGC_VLAPQF_P_VALID(_n)	(0x1 << (3 + (_n) * 4))
-#define IGC_VLAPQF_QUEUE_MASK	0x03
+#define IGC_VLANPQF_QSEL(_n, q_idx) ((q_idx) << ((_n) * 4))
+#define IGC_VLANPQF_VALID(_n)	(0x1 << (3 + (_n) * 4))
+#define IGC_VLANPQF_QUEUE_MASK	0x03
 
 #define IGC_ADVTXD_MACLEN_SHIFT		9  /* Adv ctxt desc mac len shift */
 #define IGC_ADVTXD_TUCMD_IPV4		0x00000400  /* IP Packet Type:1=IPv4 */
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index a05d7abee524..c21971b40cb2 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1229,23 +1229,23 @@ static int igc_rxnfc_write_vlan_prio_filter(struct igc_adapter *adapter,
 	u16 queue_index;
 	u32 vlapqf;
 
-	vlapqf = rd32(IGC_VLAPQF);
+	vlapqf = rd32(IGC_VLANPQF);
 	vlan_priority = (ntohs(input->filter.vlan_tci) & VLAN_PRIO_MASK)
 				>> VLAN_PRIO_SHIFT;
-	queue_index = (vlapqf >> (vlan_priority * 4)) & IGC_VLAPQF_QUEUE_MASK;
+	queue_index = (vlapqf >> (vlan_priority * 4)) & IGC_VLANPQF_QUEUE_MASK;
 
-	/* check whether this vlan prio is already set */
-	if (vlapqf & IGC_VLAPQF_P_VALID(vlan_priority) &&
+	/* check whether this VLAN prio is already set */
+	if (vlapqf & IGC_VLANPQF_VALID(vlan_priority) &&
 	    queue_index != input->action) {
 		netdev_err(adapter->netdev,
 			   "ethtool rxnfc set VLAN prio filter failed\n");
 		return -EEXIST;
 	}
 
-	vlapqf |= IGC_VLAPQF_P_VALID(vlan_priority);
-	vlapqf |= IGC_VLAPQF_QUEUE_SEL(vlan_priority, input->action);
+	vlapqf |= IGC_VLANPQF_VALID(vlan_priority);
+	vlapqf |= IGC_VLANPQF_QSEL(vlan_priority, input->action);
 
-	wr32(IGC_VLAPQF, vlapqf);
+	wr32(IGC_VLANPQF, vlapqf);
 
 	return 0;
 }
@@ -1313,12 +1313,11 @@ static void igc_clear_vlan_prio_filter(struct igc_adapter *adapter,
 
 	vlan_priority = (vlan_tci & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT;
 
-	vlapqf = rd32(IGC_VLAPQF);
-	vlapqf &= ~IGC_VLAPQF_P_VALID(vlan_priority);
-	vlapqf &= ~IGC_VLAPQF_QUEUE_SEL(vlan_priority,
-						IGC_VLAPQF_QUEUE_MASK);
+	vlapqf = rd32(IGC_VLANPQF);
+	vlapqf &= ~IGC_VLANPQF_VALID(vlan_priority);
+	vlapqf &= ~IGC_VLANPQF_QSEL(vlan_priority, IGC_VLANPQF_QUEUE_MASK);
 
-	wr32(IGC_VLAPQF, vlapqf);
+	wr32(IGC_VLANPQF, vlapqf);
 }
 
 int igc_erase_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
diff --git a/drivers/net/ethernet/intel/igc/igc_regs.h b/drivers/net/ethernet/intel/igc/igc_regs.h
index f101bfbf52e6..851ff19af703 100644
--- a/drivers/net/ethernet/intel/igc/igc_regs.h
+++ b/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -120,7 +120,7 @@
 #define IGC_UTA			0x0A000  /* Unicast Table Array - RW */
 #define IGC_RAL(_n)		(0x05400 + ((_n) * 0x08))
 #define IGC_RAH(_n)		(0x05404 + ((_n) * 0x08))
-#define IGC_VLAPQF		0x055B0  /* VLAN Priority Queue Filter VLAPQF */
+#define IGC_VLANPQF		0x055B0  /* VLAN Priority Queue Filter - RW */
 
 /* Transmit Register Descriptions */
 #define IGC_TCTL		0x00400  /* Tx Control - RW */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 05/14] igc: Dump VLANPQF register
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (3 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 04/14] igc: Rename IGC_VLAPQF macro Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 06/14] igc: Return -EOPNOTSUPP when VLAN mask doesn't match Jeff Kirsher
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

This patch adds the VLAN Priority Queue Filter Register (VLANPQF) to the
list of registers dumped by igc_get_regs().

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index c21971b40cb2..19da9dc8dafb 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -316,6 +316,8 @@ static void igc_get_regs(struct net_device *netdev,
 		regs_buff[172 + i] = rd32(IGC_RAL(i));
 	for (i = 0; i < 16; i++)
 		regs_buff[188 + i] = rd32(IGC_RAH(i));
+
+	regs_buff[204] = rd32(IGC_VLANPQF);
 }
 
 static void igc_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 06/14] igc: Return -EOPNOTSUPP when VLAN mask doesn't match
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (4 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 05/14] igc: Dump VLANPQF register Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 07/14] igc: Refactor VLAN priority filtering code Jeff Kirsher
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

The I225 controller supports Rx queue assignment based on VLAN priority
only. Other Tag Control Information (TCI) are valid, but not supported
by the driver. So this patch changes the returning code from igc_add_
ethtool_nfc_entry() to -EOPNOTSUPP in order to provide more meaningful
information on why the function failed.

It also adds a debug messages to give the user a hint about what went
wrong with the NFC setup.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index 19da9dc8dafb..f28f7feb39a5 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1446,7 +1446,8 @@ static int igc_add_ethtool_nfc_entry(struct igc_adapter *adapter,
 
 	if ((fsp->flow_type & FLOW_EXT) && fsp->m_ext.vlan_tci) {
 		if (fsp->m_ext.vlan_tci != htons(VLAN_PRIO_MASK)) {
-			err = -EINVAL;
+			netdev_dbg(netdev, "VLAN mask not supported\n");
+			err = -EOPNOTSUPP;
 			goto err_out;
 		}
 		input->filter.vlan_tci = fsp->h_ext.vlan_tci;
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 07/14] igc: Refactor VLAN priority filtering code
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (5 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 06/14] igc: Return -EOPNOTSUPP when VLAN mask doesn't match Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 08/14] igc: Remove duplicated IGC_RXPBS macro Jeff Kirsher
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

The whole VLAN priority filtering code is implemented in igc_ethtool.c
and mixes logic from ethtool and core parts. This patch refactors it so
core logic is moved to igc_main.c, aligning the VLAN priority filtering
code organization with the MAC address filtering code.

This patch also takes the opportunity to add some log messages to ease
debugging.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc.h         |  3 +
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 64 ++++----------------
 drivers/net/ethernet/intel/igc/igc_main.c    | 52 ++++++++++++++++
 3 files changed, 68 insertions(+), 51 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h
index 661dc8875f3f..5f1e1d31e832 100644
--- a/drivers/net/ethernet/intel/igc/igc.h
+++ b/drivers/net/ethernet/intel/igc/igc.h
@@ -235,6 +235,9 @@ int igc_add_mac_filter(struct igc_adapter *adapter, const u8 *addr,
 		       const s8 queue, const u8 flags);
 int igc_del_mac_filter(struct igc_adapter *adapter, const u8 *addr,
 		       const u8 flags);
+int igc_add_vlan_prio_filter(struct igc_adapter *adapter, int prio,
+			     int queue);
+void igc_del_vlan_prio_filter(struct igc_adapter *adapter, int prio);
 void igc_update_stats(struct igc_adapter *adapter);
 
 /* igc_dump declarations */
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index f28f7feb39a5..c5be8b936963 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1223,35 +1223,6 @@ static int igc_rxnfc_write_etype_filter(struct igc_adapter *adapter,
 	return 0;
 }
 
-static int igc_rxnfc_write_vlan_prio_filter(struct igc_adapter *adapter,
-					    struct igc_nfc_filter *input)
-{
-	struct igc_hw *hw = &adapter->hw;
-	u8 vlan_priority;
-	u16 queue_index;
-	u32 vlapqf;
-
-	vlapqf = rd32(IGC_VLANPQF);
-	vlan_priority = (ntohs(input->filter.vlan_tci) & VLAN_PRIO_MASK)
-				>> VLAN_PRIO_SHIFT;
-	queue_index = (vlapqf >> (vlan_priority * 4)) & IGC_VLANPQF_QUEUE_MASK;
-
-	/* check whether this VLAN prio is already set */
-	if (vlapqf & IGC_VLANPQF_VALID(vlan_priority) &&
-	    queue_index != input->action) {
-		netdev_err(adapter->netdev,
-			   "ethtool rxnfc set VLAN prio filter failed\n");
-		return -EEXIST;
-	}
-
-	vlapqf |= IGC_VLANPQF_VALID(vlan_priority);
-	vlapqf |= IGC_VLANPQF_QSEL(vlan_priority, input->action);
-
-	wr32(IGC_VLANPQF, vlapqf);
-
-	return 0;
-}
-
 int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 {
 	struct igc_hw *hw = &adapter->hw;
@@ -1285,10 +1256,15 @@ int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 			return err;
 	}
 
-	if (input->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI)
-		err = igc_rxnfc_write_vlan_prio_filter(adapter, input);
+	if (input->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI) {
+		int prio = (ntohs(input->filter.vlan_tci) & VLAN_PRIO_MASK) >>
+			   VLAN_PRIO_SHIFT;
+		err = igc_add_vlan_prio_filter(adapter, prio, input->action);
+		if (err)
+			return err;
+	}
 
-	return err;
+	return 0;
 }
 
 static void igc_clear_etype_filter_regs(struct igc_adapter *adapter,
@@ -1306,31 +1282,17 @@ static void igc_clear_etype_filter_regs(struct igc_adapter *adapter,
 	adapter->etype_bitmap[reg_index] = false;
 }
 
-static void igc_clear_vlan_prio_filter(struct igc_adapter *adapter,
-				       u16 vlan_tci)
-{
-	struct igc_hw *hw = &adapter->hw;
-	u8 vlan_priority;
-	u32 vlapqf;
-
-	vlan_priority = (vlan_tci & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT;
-
-	vlapqf = rd32(IGC_VLANPQF);
-	vlapqf &= ~IGC_VLANPQF_VALID(vlan_priority);
-	vlapqf &= ~IGC_VLANPQF_QSEL(vlan_priority, IGC_VLANPQF_QUEUE_MASK);
-
-	wr32(IGC_VLANPQF, vlapqf);
-}
-
 int igc_erase_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 {
 	if (input->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE)
 		igc_clear_etype_filter_regs(adapter,
 					    input->etype_reg_index);
 
-	if (input->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI)
-		igc_clear_vlan_prio_filter(adapter,
-					   ntohs(input->filter.vlan_tci));
+	if (input->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI) {
+		int prio = (ntohs(input->filter.vlan_tci) & VLAN_PRIO_MASK) >>
+			   VLAN_PRIO_SHIFT;
+		igc_del_vlan_prio_filter(adapter, prio);
+	}
 
 	if (input->filter.match_flags & IGC_FILTER_FLAG_SRC_MAC_ADDR)
 		igc_del_mac_filter(adapter, input->filter.src_addr,
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 125026d053eb..7e59c0393dbc 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2314,6 +2314,58 @@ int igc_del_mac_filter(struct igc_adapter *adapter, const u8 *addr,
 	return 0;
 }
 
+/**
+ * igc_add_vlan_prio_filter() - Add VLAN priority filter
+ * @adapter: Pointer to adapter where the filter should be added
+ * @prio: VLAN priority value
+ * @queue: Queue number which matching frames are assigned to
+ *
+ * Return: 0 in case of success, negative errno code otherwise.
+ */
+int igc_add_vlan_prio_filter(struct igc_adapter *adapter, int prio, int queue)
+{
+	struct net_device *dev = adapter->netdev;
+	struct igc_hw *hw = &adapter->hw;
+	u32 vlanpqf;
+
+	vlanpqf = rd32(IGC_VLANPQF);
+
+	if (vlanpqf & IGC_VLANPQF_VALID(prio)) {
+		netdev_dbg(dev, "VLAN priority filter already in use\n");
+		return -EEXIST;
+	}
+
+	vlanpqf |= IGC_VLANPQF_QSEL(prio, queue);
+	vlanpqf |= IGC_VLANPQF_VALID(prio);
+
+	wr32(IGC_VLANPQF, vlanpqf);
+
+	netdev_dbg(dev, "Add VLAN priority filter: prio %d queue %d\n",
+		   prio, queue);
+	return 0;
+}
+
+/**
+ * igc_del_vlan_prio_filter() - Delete VLAN priority filter
+ * @adapter: Pointer to adapter where the filter should be deleted from
+ * @prio: VLAN priority value
+ */
+void igc_del_vlan_prio_filter(struct igc_adapter *adapter, int prio)
+{
+	struct igc_hw *hw = &adapter->hw;
+	u32 vlanpqf;
+
+	vlanpqf = rd32(IGC_VLANPQF);
+
+	vlanpqf &= ~IGC_VLANPQF_VALID(prio);
+	vlanpqf &= ~IGC_VLANPQF_QSEL(prio, IGC_VLANPQF_QUEUE_MASK);
+
+	wr32(IGC_VLANPQF, vlanpqf);
+
+	netdev_dbg(adapter->netdev, "Delete VLAN priority filter: prio %d\n",
+		   prio);
+}
+
 static int igc_uc_sync(struct net_device *netdev, const unsigned char *addr)
 {
 	struct igc_adapter *adapter = netdev_priv(netdev);
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 08/14] igc: Remove duplicated IGC_RXPBS macro
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (6 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 07/14] igc: Refactor VLAN priority filtering code Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 09/14] igc: Remove ethertype filter in PTP code Jeff Kirsher
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

This patch remove the IGC_RXPBS macro defined in line 233 since it is
already defined in line 18 with the exactly same value.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_regs.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_regs.h b/drivers/net/ethernet/intel/igc/igc_regs.h
index 851ff19af703..763a24d52865 100644
--- a/drivers/net/ethernet/intel/igc/igc_regs.h
+++ b/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -227,8 +227,6 @@
 
 #define IGC_FTQF(_n)	(0x059E0 + (4 * (_n)))  /* 5-tuple Queue Fltr */
 
-#define IGC_RXPBS	0x02404  /* Rx Packet Buffer Size - RW */
-
 /* Transmit Scheduling Registers */
 #define IGC_TQAVCTRL		0x3570
 #define IGC_TXQCTL(_n)		(0x3344 + 0x4 * (_n))
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 09/14] igc: Remove ethertype filter in PTP code
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (7 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 08/14] igc: Remove duplicated IGC_RXPBS macro Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 10/14] igc: Fix MAX_ETYPE_FILTER value Jeff Kirsher
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

The driver only supports hardware timestamping for all incoming
traffic (HWTSTAMP_FILTER_ALL) which is enabled via Rx Time Sync
Control (TSYNCRXCTL) register already. Therefore, the ethertype
filter set in in igc_ptp_set_timestamp_mode() is useless so this
patch removes it.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc.h         |  2 +-
 drivers/net/ethernet/intel/igc/igc_defines.h |  3 ---
 drivers/net/ethernet/intel/igc/igc_ptp.c     | 12 ------------
 3 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h
index 5f1e1d31e832..e4169fe955d8 100644
--- a/drivers/net/ethernet/intel/igc/igc.h
+++ b/drivers/net/ethernet/intel/igc/igc.h
@@ -26,7 +26,7 @@ void igc_set_ethtool_ops(struct net_device *);
 #define MAX_Q_VECTORS			8
 #define MAX_STD_JUMBO_FRAME_SIZE	9216
 
-#define MAX_ETYPE_FILTER		(4 - 1)
+#define MAX_ETYPE_FILTER		4
 #define IGC_RETA_SIZE			128
 
 struct igc_tx_queue_stats {
diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h b/drivers/net/ethernet/intel/igc/igc_defines.h
index f1bb5414f99f..6909826bc747 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -384,9 +384,6 @@
 
 #define IGC_TSICR_INTERRUPTS	IGC_TSICR_TXTS
 
-/* PTP Queue Filter */
-#define IGC_ETQF_1588		BIT(30)
-
 #define IGC_FTQF_VF_BP		0x00008000
 #define IGC_FTQF_1588_TIME_STAMP	0x08000000
 #define IGC_FTQF_MASK			0xF0000000
diff --git a/drivers/net/ethernet/intel/igc/igc_ptp.c b/drivers/net/ethernet/intel/igc/igc_ptp.c
index 1bf016398b9d..0d746f8588c8 100644
--- a/drivers/net/ethernet/intel/igc/igc_ptp.c
+++ b/drivers/net/ethernet/intel/igc/igc_ptp.c
@@ -305,7 +305,6 @@ static int igc_ptp_set_timestamp_mode(struct igc_adapter *adapter,
 	struct igc_hw *hw = &adapter->hw;
 	u32 tsync_rx_cfg = 0;
 	bool is_l4 = false;
-	bool is_l2 = false;
 	u32 regval;
 
 	/* reserved for future extensions */
@@ -346,7 +345,6 @@ static int igc_ptp_set_timestamp_mode(struct igc_adapter *adapter,
 	case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
 		tsync_rx_ctl |= IGC_TSYNCRXCTL_TYPE_EVENT_V2;
 		config->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
-		is_l2 = true;
 		is_l4 = true;
 		break;
 	case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
@@ -370,7 +368,6 @@ static int igc_ptp_set_timestamp_mode(struct igc_adapter *adapter,
 		tsync_rx_ctl |= IGC_TSYNCRXCTL_TYPE_ALL;
 		tsync_rx_ctl |= IGC_TSYNCRXCTL_RXSYNSIG;
 		config->rx_filter = HWTSTAMP_FILTER_ALL;
-		is_l2 = true;
 		is_l4 = true;
 
 		if (hw->mac.type == igc_i225) {
@@ -405,15 +402,6 @@ static int igc_ptp_set_timestamp_mode(struct igc_adapter *adapter,
 	/* define which PTP packets are time stamped */
 	wr32(IGC_TSYNCRXCFG, tsync_rx_cfg);
 
-	/* define ethertype filter for timestamped packets */
-	if (is_l2)
-		wr32(IGC_ETQF(3),
-		     (IGC_ETQF_FILTER_ENABLE | /* enable filter */
-		     IGC_ETQF_1588 | /* enable timestamping */
-		     ETH_P_1588)); /* 1588 eth protocol type */
-	else
-		wr32(IGC_ETQF(3), 0);
-
 	/* L4 Queue Filter[3]: filter by destination port and protocol */
 	if (is_l4) {
 		u32 ftqf = (IPPROTO_UDP /* UDP */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 10/14] igc: Fix MAX_ETYPE_FILTER value
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (8 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 09/14] igc: Remove ethertype filter in PTP code Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 11/14] igc: Refactor ethertype filtering code Jeff Kirsher
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

The I225 controller has 8 ethertype filters, not 4. This patch fixes the
MAX_ETYPE_FILTER macro accordingly.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h
index e4169fe955d8..8389569aea8a 100644
--- a/drivers/net/ethernet/intel/igc/igc.h
+++ b/drivers/net/ethernet/intel/igc/igc.h
@@ -26,7 +26,7 @@ void igc_set_ethtool_ops(struct net_device *);
 #define MAX_Q_VECTORS			8
 #define MAX_STD_JUMBO_FRAME_SIZE	9216
 
-#define MAX_ETYPE_FILTER		4
+#define MAX_ETYPE_FILTER		8
 #define IGC_RETA_SIZE			128
 
 struct igc_tx_queue_stats {
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 11/14] igc: Refactor ethertype filtering code
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (9 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 10/14] igc: Fix MAX_ETYPE_FILTER value Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 12/14] igc: Dump ETQF registers Jeff Kirsher
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

The whole ethertype filtering code is implemented in igc_ethtool.c and
mixes logic from ethtool and core parts. This patch refactors it so core
logic is moved to igc_main.c, aligning the ethertype filtering code
organization with the rest of the filtering code from the driver (MAC
address and VLAN priority).

Besides moving code to igc_main.c, this patch also does some minor
improvements to the code. Below are some highlights.

In case all filters are already in use and the user tries to add another
filter, we return -ENOSPC instead of -EINVAL so a more meaningful error
code is provided. This also aligns with the behavior implemented in MAC
address filtering code.

With this code refactoring, 'etype_bitmap' array in struct igc_adapter
and 'etype_reg_index' in struct igc_nfc_filter are not needed anymore
and are removed.

Log messages are added to help debugging the ethertype filtering code.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc.h         |  4 +-
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 67 ++------------
 drivers/net/ethernet/intel/igc/igc_main.c    | 93 ++++++++++++++++++++
 3 files changed, 103 insertions(+), 61 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h
index 8389569aea8a..812e1cd695cf 100644
--- a/drivers/net/ethernet/intel/igc/igc.h
+++ b/drivers/net/ethernet/intel/igc/igc.h
@@ -189,7 +189,6 @@ struct igc_adapter {
 
 	/* lock for RX network flow classification filter */
 	spinlock_t nfc_lock;
-	bool etype_bitmap[MAX_ETYPE_FILTER];
 
 	struct igc_mac_addr *mac_table;
 
@@ -238,6 +237,8 @@ int igc_del_mac_filter(struct igc_adapter *adapter, const u8 *addr,
 int igc_add_vlan_prio_filter(struct igc_adapter *adapter, int prio,
 			     int queue);
 void igc_del_vlan_prio_filter(struct igc_adapter *adapter, int prio);
+int igc_add_etype_filter(struct igc_adapter *adapter, u16 etype, int queue);
+int igc_del_etype_filter(struct igc_adapter *adapter, u16 etype);
 void igc_update_stats(struct igc_adapter *adapter);
 
 /* igc_dump declarations */
@@ -466,7 +467,6 @@ struct igc_nfc_filter {
 	struct hlist_node nfc_node;
 	struct igc_nfc_input filter;
 	unsigned long cookie;
-	u16 etype_reg_index;
 	u16 sw_idx;
 	u16 action;
 };
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index c5be8b936963..3cdb88a5eb01 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1183,46 +1183,6 @@ static int igc_set_rss_hash_opt(struct igc_adapter *adapter,
 	return 0;
 }
 
-static int igc_rxnfc_write_etype_filter(struct igc_adapter *adapter,
-					struct igc_nfc_filter *input)
-{
-	struct igc_hw *hw = &adapter->hw;
-	u8 i;
-	u32 etqf;
-	u16 etype;
-
-	/* find an empty etype filter register */
-	for (i = 0; i < MAX_ETYPE_FILTER; ++i) {
-		if (!adapter->etype_bitmap[i])
-			break;
-	}
-	if (i == MAX_ETYPE_FILTER) {
-		netdev_err(adapter->netdev,
-			   "ethtool -N: etype filters are all used\n");
-		return -EINVAL;
-	}
-
-	adapter->etype_bitmap[i] = true;
-
-	etqf = rd32(IGC_ETQF(i));
-	etype = ntohs(input->filter.etype & ETHER_TYPE_FULL_MASK);
-
-	etqf |= IGC_ETQF_FILTER_ENABLE;
-	etqf &= ~IGC_ETQF_ETYPE_MASK;
-	etqf |= (etype & IGC_ETQF_ETYPE_MASK);
-
-	etqf &= ~IGC_ETQF_QUEUE_MASK;
-	etqf |= ((input->action << IGC_ETQF_QUEUE_SHIFT)
-		& IGC_ETQF_QUEUE_MASK);
-	etqf |= IGC_ETQF_QUEUE_ENABLE;
-
-	wr32(IGC_ETQF(i), etqf);
-
-	input->etype_reg_index = i;
-
-	return 0;
-}
-
 int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 {
 	struct igc_hw *hw = &adapter->hw;
@@ -1236,7 +1196,9 @@ int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 	}
 
 	if (input->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE) {
-		err = igc_rxnfc_write_etype_filter(adapter, input);
+		u16 etype = ntohs(input->filter.etype);
+
+		err = igc_add_etype_filter(adapter, etype, input->action);
 		if (err)
 			return err;
 	}
@@ -1267,26 +1229,13 @@ int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 	return 0;
 }
 
-static void igc_clear_etype_filter_regs(struct igc_adapter *adapter,
-					u16 reg_index)
-{
-	struct igc_hw *hw = &adapter->hw;
-	u32 etqf = rd32(IGC_ETQF(reg_index));
-
-	etqf &= ~IGC_ETQF_QUEUE_ENABLE;
-	etqf &= ~IGC_ETQF_QUEUE_MASK;
-	etqf &= ~IGC_ETQF_FILTER_ENABLE;
-
-	wr32(IGC_ETQF(reg_index), etqf);
-
-	adapter->etype_bitmap[reg_index] = false;
-}
-
 int igc_erase_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
 {
-	if (input->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE)
-		igc_clear_etype_filter_regs(adapter,
-					    input->etype_reg_index);
+	if (input->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE) {
+		u16 etype = ntohs(input->filter.etype);
+
+		igc_del_etype_filter(adapter, etype);
+	}
 
 	if (input->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI) {
 		int prio = (ntohs(input->filter.vlan_tci) & VLAN_PRIO_MASK) >>
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 7e59c0393dbc..0df5617eb9d0 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2366,6 +2366,99 @@ void igc_del_vlan_prio_filter(struct igc_adapter *adapter, int prio)
 		   prio);
 }
 
+static int igc_get_avail_etype_filter_slot(struct igc_adapter *adapter)
+{
+	struct igc_hw *hw = &adapter->hw;
+	int i;
+
+	for (i = 0; i < MAX_ETYPE_FILTER; i++) {
+		u32 etqf = rd32(IGC_ETQF(i));
+
+		if (!(etqf & IGC_ETQF_FILTER_ENABLE))
+			return i;
+	}
+
+	return -1;
+}
+
+/**
+ * igc_add_etype_filter() - Add ethertype filter
+ * @adapter: Pointer to adapter where the filter should be added
+ * @etype: Ethertype value
+ * @queue: If non-negative, queue assignment feature is enabled and frames
+ *         matching the filter are enqueued onto 'queue'. Otherwise, queue
+ *         assignment is disabled.
+ *
+ * Return: 0 in case of success, negative errno code otherwise.
+ */
+int igc_add_etype_filter(struct igc_adapter *adapter, u16 etype, int queue)
+{
+	struct igc_hw *hw = &adapter->hw;
+	int index;
+	u32 etqf;
+
+	index = igc_get_avail_etype_filter_slot(adapter);
+	if (index < 0)
+		return -ENOSPC;
+
+	etqf = rd32(IGC_ETQF(index));
+
+	etqf &= ~IGC_ETQF_ETYPE_MASK;
+	etqf |= etype;
+
+	if (queue >= 0) {
+		etqf &= ~IGC_ETQF_QUEUE_MASK;
+		etqf |= (queue << IGC_ETQF_QUEUE_SHIFT);
+		etqf |= IGC_ETQF_QUEUE_ENABLE;
+	}
+
+	etqf |= IGC_ETQF_FILTER_ENABLE;
+
+	wr32(IGC_ETQF(index), etqf);
+
+	netdev_dbg(adapter->netdev, "Add ethertype filter: etype %04x queue %d\n",
+		   etype, queue);
+	return 0;
+}
+
+static int igc_find_etype_filter(struct igc_adapter *adapter, u16 etype)
+{
+	struct igc_hw *hw = &adapter->hw;
+	int i;
+
+	for (i = 0; i < MAX_ETYPE_FILTER; i++) {
+		u32 etqf = rd32(IGC_ETQF(i));
+
+		if ((etqf & IGC_ETQF_ETYPE_MASK) == etype)
+			return i;
+	}
+
+	return -1;
+}
+
+/**
+ * igc_del_etype_filter() - Delete ethertype filter
+ * @adapter: Pointer to adapter where the filter should be deleted from
+ * @etype: Ethertype value
+ *
+ * Return: 0 in case of success, negative errno code otherwise.
+ */
+int igc_del_etype_filter(struct igc_adapter *adapter, u16 etype)
+{
+	struct igc_hw *hw = &adapter->hw;
+	int index;
+
+	index = igc_find_etype_filter(adapter, etype);
+	if (index < 0)
+		return -ENOENT;
+
+	wr32(IGC_ETQF(index), 0);
+
+	netdev_dbg(adapter->netdev, "Delete ethertype filter: etype %04x\n",
+		   etype);
+	return 0;
+}
+
 static int igc_uc_sync(struct net_device *netdev, const unsigned char *addr)
 {
 	struct igc_adapter *adapter = netdev_priv(netdev);
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 12/14] igc: Dump ETQF registers
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (10 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 11/14] igc: Refactor ethertype filtering code Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 13/14] igc: Remove unused IGC_ICS_DRSTA define Jeff Kirsher
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Andre Guedes, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Andre Guedes <andre.guedes@intel.com>

This patch adds the EType Queue Filter (ETQF) registers to the list of
registers dumped by igc_get_regs().

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_ethtool.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index 3cdb88a5eb01..c6586e2be3a8 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -318,6 +318,9 @@ static void igc_get_regs(struct net_device *netdev,
 		regs_buff[188 + i] = rd32(IGC_RAH(i));
 
 	regs_buff[204] = rd32(IGC_VLANPQF);
+
+	for (i = 0; i < 8; i++)
+		regs_buff[205 + i] = rd32(IGC_ETQF(i));
 }
 
 static void igc_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 13/14] igc: Remove unused IGC_ICS_DRSTA define
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (11 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 12/14] igc: Dump ETQF registers Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  0:04 ` [net-next 14/14] igc: Remove unused registers Jeff Kirsher
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

Device reset assert for interrupt cause register not in
use for i225 device.
This patch comes to clean up this define.

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_defines.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h b/drivers/net/ethernet/intel/igc/igc_defines.h
index 6909826bc747..51d8a15e239c 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -244,7 +244,6 @@
 /* Interrupt Cause Set */
 #define IGC_ICS_LSC		IGC_ICR_LSC       /* Link Status Change */
 #define IGC_ICS_RXDMT0		IGC_ICR_RXDMT0    /* rx desc min. threshold */
-#define IGC_ICS_DRSTA		IGC_ICR_DRSTA     /* Device Reset Aserted */
 
 #define IGC_ICR_DOUTSYNC	0x10000000 /* NIC DMA out of sync */
 #define IGC_EITR_CNT_IGNR	0x80000000 /* Don't reset counters on write */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next 14/14] igc: Remove unused registers
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (12 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 13/14] igc: Remove unused IGC_ICS_DRSTA define Jeff Kirsher
@ 2020-05-20  0:04 ` Jeff Kirsher
  2020-05-20  2:00 ` [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jakub Kicinski
  2020-05-21  2:28 ` David Miller
  15 siblings, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2020-05-20  0:04 UTC (permalink / raw)
  To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

Tx data FIFO Head/Tail, Saved and Packet Count registers
not applicable for i225 LAN controller.
This patch comes to clean up these registers.

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_dump.c | 4 ----
 drivers/net/ethernet/intel/igc/igc_regs.h | 5 -----
 2 files changed, 9 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_dump.c b/drivers/net/ethernet/intel/igc/igc_dump.c
index 4ad32d98f77f..4b9ec7d0b727 100644
--- a/drivers/net/ethernet/intel/igc/igc_dump.c
+++ b/drivers/net/ethernet/intel/igc/igc_dump.c
@@ -35,10 +35,6 @@ static const struct igc_reg_info igc_reg_info_tbl[] = {
 	{IGC_TDH(0), "TDH"},
 	{IGC_TDT(0), "TDT"},
 	{IGC_TXDCTL(0), "TXDCTL"},
-	{IGC_TDFH, "TDFH"},
-	{IGC_TDFT, "TDFT"},
-	{IGC_TDFHS, "TDFHS"},
-	{IGC_TDFPC, "TDFPC"},
 
 	/* List Terminator */
 	{}
diff --git a/drivers/net/ethernet/intel/igc/igc_regs.h b/drivers/net/ethernet/intel/igc/igc_regs.h
index 763a24d52865..61db951f0947 100644
--- a/drivers/net/ethernet/intel/igc/igc_regs.h
+++ b/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -17,11 +17,6 @@
 /* Internal Packet Buffer Size Registers */
 #define IGC_RXPBS		0x02404  /* Rx Packet Buffer Size - RW */
 #define IGC_TXPBS		0x03404  /* Tx Packet Buffer Size - RW */
-#define IGC_TDFH		0x03410  /* Tx Data FIFO Head - RW */
-#define IGC_TDFT		0x03418  /* Tx Data FIFO Tail - RW */
-#define IGC_TDFHS		0x03420  /* Tx Data FIFO Head Saved - RW */
-#define IGC_TDFTS		0x03428  /* Tx Data FIFO Tail Saved - RW */
-#define IGC_TDFPC		0x03430  /* Tx Data FIFO Packet Count - RW */
 
 /* NVM  Register Descriptions */
 #define IGC_EERD		0x12014  /* EEprom mode read - RW */
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (13 preceding siblings ...)
  2020-05-20  0:04 ` [net-next 14/14] igc: Remove unused registers Jeff Kirsher
@ 2020-05-20  2:00 ` Jakub Kicinski
  2020-05-20  2:03   ` Kirsher, Jeffrey T
  2020-05-20 17:43   ` Andre Guedes
  2020-05-21  2:28 ` David Miller
  15 siblings, 2 replies; 22+ messages in thread
From: Jakub Kicinski @ 2020-05-20  2:00 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: davem, netdev, nhorman, sassmann

On Tue, 19 May 2020 17:04:05 -0700 Jeff Kirsher wrote:
> This series contains updates to igc only.
> 
> Sasha cleans up the igc driver code that is not used or needed.
> 
> Vitaly cleans up driver code that was used to support Virtualization on
> a device that is not supported by igc, so remove the dead code.
> 
> Andre renames a few macros to align with register and field names
> described in the data sheet.  Also adds the VLAN Priority Queue Fliter
> and EType Queue Filter registers to the list of registers dumped by
> igc_get_regs().  Added additional debug messages and updated return codes
> for unsupported features.  Refactored the VLAN priority filtering code to
> move the core logic into igc_main.c.  Cleaned up duplicate code and
> useless code.

No automated warnings :)

It's a little strange how both TCI and ETYPE filters take the queue ID.
Looking at the code it's not immediately clear which one take
precedence. Can I install two rules for the same TCI and different ETYPE
or vice versa?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-20  2:00 ` [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jakub Kicinski
@ 2020-05-20  2:03   ` Kirsher, Jeffrey T
  2020-05-20 17:43   ` Andre Guedes
  1 sibling, 0 replies; 22+ messages in thread
From: Kirsher, Jeffrey T @ 2020-05-20  2:03 UTC (permalink / raw)
  To: Jakub Kicinski, Neftin, Sasha, Guedes, Andre
  Cc: davem, netdev, nhorman, sassmann

> -----Original Message-----
> From: Jakub Kicinski <kuba@kernel.org>
> Sent: Tuesday, May 19, 2020 19:00
> To: Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com>
> Cc: davem@davemloft.net; netdev@vger.kernel.org; nhorman@redhat.com;
> sassmann@redhat.com
> Subject: Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver
> Updates 2020-05-19
> 
> On Tue, 19 May 2020 17:04:05 -0700 Jeff Kirsher wrote:
> > This series contains updates to igc only.
> >
> > Sasha cleans up the igc driver code that is not used or needed.
> >
> > Vitaly cleans up driver code that was used to support Virtualization
> > on a device that is not supported by igc, so remove the dead code.
> >
> > Andre renames a few macros to align with register and field names
> > described in the data sheet.  Also adds the VLAN Priority Queue Fliter
> > and EType Queue Filter registers to the list of registers dumped by
> > igc_get_regs().  Added additional debug messages and updated return
> > codes for unsupported features.  Refactored the VLAN priority
> > filtering code to move the core logic into igc_main.c.  Cleaned up
> > duplicate code and useless code.
> 
> No automated warnings :)
> 
> It's a little strange how both TCI and ETYPE filters take the queue ID.
> Looking at the code it's not immediately clear which one take precedence. Can
> I install two rules for the same TCI and different ETYPE or vice versa?
[Kirsher, Jeffrey T] 

Adding Andre and Sasha to answer your questions, Jakub...

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-20  2:00 ` [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jakub Kicinski
  2020-05-20  2:03   ` Kirsher, Jeffrey T
@ 2020-05-20 17:43   ` Andre Guedes
  2020-05-20 17:48     ` Jakub Kicinski
  1 sibling, 1 reply; 22+ messages in thread
From: Andre Guedes @ 2020-05-20 17:43 UTC (permalink / raw)
  To: Jakub Kicinski, Jeff Kirsher; +Cc: davem, netdev, nhorman, sassmann

Hi Jakub,

Quoting Jakub Kicinski (2020-05-19 19:00:26)
> On Tue, 19 May 2020 17:04:05 -0700 Jeff Kirsher wrote:
> > This series contains updates to igc only.
> > 
> > Sasha cleans up the igc driver code that is not used or needed.
> > 
> > Vitaly cleans up driver code that was used to support Virtualization on
> > a device that is not supported by igc, so remove the dead code.
> > 
> > Andre renames a few macros to align with register and field names
> > described in the data sheet.  Also adds the VLAN Priority Queue Fliter
> > and EType Queue Filter registers to the list of registers dumped by
> > igc_get_regs().  Added additional debug messages and updated return codes
> > for unsupported features.  Refactored the VLAN priority filtering code to
> > move the core logic into igc_main.c.  Cleaned up duplicate code and
> > useless code.
> 
> No automated warnings :)
> 
> It's a little strange how both TCI and ETYPE filters take the queue ID.
> Looking at the code it's not immediately clear which one take
> precedence. Can I install two rules for the same TCI and different ETYPE
> or vice versa?

Although the driver currently accepts such rules, they don't work as expected
(as you probably noticed already). Jeff has already a patch in his queue
fixing this issue.

And just clarifying, ETYPE filters precede VLAN priority filters.

Regards,

Andre

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-20 17:43   ` Andre Guedes
@ 2020-05-20 17:48     ` Jakub Kicinski
  0 siblings, 0 replies; 22+ messages in thread
From: Jakub Kicinski @ 2020-05-20 17:48 UTC (permalink / raw)
  To: Andre Guedes; +Cc: Jeff Kirsher, davem, netdev, nhorman, sassmann

On Wed, 20 May 2020 10:43:09 -0700 Andre Guedes wrote:
> Quoting Jakub Kicinski (2020-05-19 19:00:26)
> > On Tue, 19 May 2020 17:04:05 -0700 Jeff Kirsher wrote:  
> > > This series contains updates to igc only.
> > > 
> > > Sasha cleans up the igc driver code that is not used or needed.
> > > 
> > > Vitaly cleans up driver code that was used to support Virtualization on
> > > a device that is not supported by igc, so remove the dead code.
> > > 
> > > Andre renames a few macros to align with register and field names
> > > described in the data sheet.  Also adds the VLAN Priority Queue Fliter
> > > and EType Queue Filter registers to the list of registers dumped by
> > > igc_get_regs().  Added additional debug messages and updated return codes
> > > for unsupported features.  Refactored the VLAN priority filtering code to
> > > move the core logic into igc_main.c.  Cleaned up duplicate code and
> > > useless code.  
> > 
> > No automated warnings :)
> > 
> > It's a little strange how both TCI and ETYPE filters take the queue ID.
> > Looking at the code it's not immediately clear which one take
> > precedence. Can I install two rules for the same TCI and different ETYPE
> > or vice versa?  
> 
> Although the driver currently accepts such rules, they don't work as expected
> (as you probably noticed already). Jeff has already a patch in his queue
> fixing this issue.

Okay, looking forward to those fixes.

Acked-by: Jakub Kicinski <kuba@kernel.org>

> And just clarifying, ETYPE filters precede VLAN priority filters.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
                   ` (14 preceding siblings ...)
  2020-05-20  2:00 ` [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jakub Kicinski
@ 2020-05-21  2:28 ` David Miller
  2020-05-21  3:39   ` Kirsher, Jeffrey T
  15 siblings, 1 reply; 22+ messages in thread
From: David Miller @ 2020-05-21  2:28 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 19 May 2020 17:04:05 -0700

> This series contains updates to igc only.
> 
> Sasha cleans up the igc driver code that is not used or needed.
> 
> Vitaly cleans up driver code that was used to support Virtualization on
> a device that is not supported by igc, so remove the dead code.
> 
> Andre renames a few macros to align with register and field names
> described in the data sheet.  Also adds the VLAN Priority Queue Fliter
> and EType Queue Filter registers to the list of registers dumped by
> igc_get_regs().  Added additional debug messages and updated return codes
> for unsupported features.  Refactored the VLAN priority filtering code to
> move the core logic into igc_main.c.  Cleaned up duplicate code and
> useless code.
> 
> The following are changes since commit 2de499258659823b3c7207c5bda089c822b67d69:
>   Merge branch 's390-next'
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 1GbE

Pulled, thanks Jeff.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-21  2:28 ` David Miller
@ 2020-05-21  3:39   ` Kirsher, Jeffrey T
  2020-05-21  3:57     ` David Miller
  0 siblings, 1 reply; 22+ messages in thread
From: Kirsher, Jeffrey T @ 2020-05-21  3:39 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, nhorman, sassmann

> -----Original Message-----
> From: David Miller <davem@davemloft.net>
> Sent: Wednesday, May 20, 2020 19:28
> To: Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com>
> Cc: netdev@vger.kernel.org; nhorman@redhat.com; sassmann@redhat.com
> Subject: Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver
> Updates 2020-05-19
> 
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Tue, 19 May 2020 17:04:05 -0700
> 
> > This series contains updates to igc only.
> >
> > Sasha cleans up the igc driver code that is not used or needed.
> >
> > Vitaly cleans up driver code that was used to support Virtualization
> > on a device that is not supported by igc, so remove the dead code.
> >
> > Andre renames a few macros to align with register and field names
> > described in the data sheet.  Also adds the VLAN Priority Queue Fliter
> > and EType Queue Filter registers to the list of registers dumped by
> > igc_get_regs().  Added additional debug messages and updated return
> > codes for unsupported features.  Refactored the VLAN priority
> > filtering code to move the core logic into igc_main.c.  Cleaned up
> > duplicate code and useless code.
> >
> > The following are changes since commit
> 2de499258659823b3c7207c5bda089c822b67d69:
> >   Merge branch 's390-next'
> > and are available in the git repository at:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
> > 1GbE
> 
> Pulled, thanks Jeff.
[Kirsher, Jeffrey T] 

Thanks, have you been able to push you tree to kernel.org yet?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19
  2020-05-21  3:39   ` Kirsher, Jeffrey T
@ 2020-05-21  3:57     ` David Miller
  0 siblings, 0 replies; 22+ messages in thread
From: David Miller @ 2020-05-21  3:57 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann

From: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
Date: Thu, 21 May 2020 03:39:26 +0000

> Thanks, have you been able to push you tree to kernel.org yet?

Sorry, it's there now.

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2020-05-21  3:57 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-20  0:04 [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jeff Kirsher
2020-05-20  0:04 ` [net-next 01/14] igc: Remove PCIe Control register Jeff Kirsher
2020-05-20  0:04 ` [net-next 02/14] igc: remove IGC_REMOVED function Jeff Kirsher
2020-05-20  0:04 ` [net-next 03/14] igc: Clean up obsolete NVM defines Jeff Kirsher
2020-05-20  0:04 ` [net-next 04/14] igc: Rename IGC_VLAPQF macro Jeff Kirsher
2020-05-20  0:04 ` [net-next 05/14] igc: Dump VLANPQF register Jeff Kirsher
2020-05-20  0:04 ` [net-next 06/14] igc: Return -EOPNOTSUPP when VLAN mask doesn't match Jeff Kirsher
2020-05-20  0:04 ` [net-next 07/14] igc: Refactor VLAN priority filtering code Jeff Kirsher
2020-05-20  0:04 ` [net-next 08/14] igc: Remove duplicated IGC_RXPBS macro Jeff Kirsher
2020-05-20  0:04 ` [net-next 09/14] igc: Remove ethertype filter in PTP code Jeff Kirsher
2020-05-20  0:04 ` [net-next 10/14] igc: Fix MAX_ETYPE_FILTER value Jeff Kirsher
2020-05-20  0:04 ` [net-next 11/14] igc: Refactor ethertype filtering code Jeff Kirsher
2020-05-20  0:04 ` [net-next 12/14] igc: Dump ETQF registers Jeff Kirsher
2020-05-20  0:04 ` [net-next 13/14] igc: Remove unused IGC_ICS_DRSTA define Jeff Kirsher
2020-05-20  0:04 ` [net-next 14/14] igc: Remove unused registers Jeff Kirsher
2020-05-20  2:00 ` [net-next 00/14][pull request] 1GbE Intel Wired LAN Driver Updates 2020-05-19 Jakub Kicinski
2020-05-20  2:03   ` Kirsher, Jeffrey T
2020-05-20 17:43   ` Andre Guedes
2020-05-20 17:48     ` Jakub Kicinski
2020-05-21  2:28 ` David Miller
2020-05-21  3:39   ` Kirsher, Jeffrey T
2020-05-21  3:57     ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.