netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e)
@ 2023-12-12 20:49 Tony Nguyen
  2023-12-12 20:49 ` [PATCH net-next 1/3] igb: Use FIELD_GET() to extract Link Width Tony Nguyen
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Tony Nguyen @ 2023-12-12 20:49 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, netdev; +Cc: Tony Nguyen

This series contains updates to igb and e1000e drivers.

Ilpo Järvinen does some cleanups to both drivers: utilizing FIELD_GET()
helpers and using standard kernel defines over driver created ones.

The following are changes since commit 609c767f2c5505f104ed6bbb3554158131913f86:
  Merge branch 'net-dsa-realtek-two-rtl8366rb-fixes'
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 1GbE

Ilpo Järvinen (3):
  igb: Use FIELD_GET() to extract Link Width
  e1000e: Use PCI_EXP_LNKSTA_NLW & FIELD_GET() instead of custom
    defines/code
  e1000e: Use pcie_capability_read_word() for reading LNKSTA

 drivers/net/ethernet/intel/e1000e/defines.h |  3 ---
 drivers/net/ethernet/intel/e1000e/mac.c     | 18 ++++++++----------
 drivers/net/ethernet/intel/igb/e1000_mac.c  |  6 +++---
 3 files changed, 11 insertions(+), 16 deletions(-)

-- 
2.41.0


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

* [PATCH net-next 1/3] igb: Use FIELD_GET() to extract Link Width
  2023-12-12 20:49 [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) Tony Nguyen
@ 2023-12-12 20:49 ` Tony Nguyen
  2023-12-12 20:49 ` [PATCH net-next 2/3] e1000e: Use PCI_EXP_LNKSTA_NLW & FIELD_GET() instead of custom defines/code Tony Nguyen
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Nguyen @ 2023-12-12 20:49 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, netdev
  Cc: Ilpo Järvinen, anthony.l.nguyen, Jonathan Cameron,
	Simon Horman, Pucha Himasekhar Reddy

From: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

Use FIELD_GET() to extract PCIe Negotiated Link Width field instead of
custom masking and shifting.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/igb/e1000_mac.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/e1000_mac.c b/drivers/net/ethernet/intel/igb/e1000_mac.c
index caf91c6f52b4..5a23b9cfec6c 100644
--- a/drivers/net/ethernet/intel/igb/e1000_mac.c
+++ b/drivers/net/ethernet/intel/igb/e1000_mac.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright(c) 2007 - 2018 Intel Corporation. */
 
+#include <linux/bitfield.h>
 #include <linux/if_ether.h>
 #include <linux/delay.h>
 #include <linux/pci.h>
@@ -50,9 +51,8 @@ s32 igb_get_bus_info_pcie(struct e1000_hw *hw)
 			break;
 		}
 
-		bus->width = (enum e1000_bus_width)((pcie_link_status &
-						     PCI_EXP_LNKSTA_NLW) >>
-						     PCI_EXP_LNKSTA_NLW_SHIFT);
+		bus->width = (enum e1000_bus_width)FIELD_GET(PCI_EXP_LNKSTA_NLW,
+							     pcie_link_status);
 	}
 
 	reg = rd32(E1000_STATUS);
-- 
2.41.0


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

* [PATCH net-next 2/3] e1000e: Use PCI_EXP_LNKSTA_NLW & FIELD_GET() instead of custom defines/code
  2023-12-12 20:49 [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) Tony Nguyen
  2023-12-12 20:49 ` [PATCH net-next 1/3] igb: Use FIELD_GET() to extract Link Width Tony Nguyen
@ 2023-12-12 20:49 ` Tony Nguyen
  2023-12-12 20:49 ` [PATCH net-next 3/3] e1000e: Use pcie_capability_read_word() for reading LNKSTA Tony Nguyen
  2023-12-14  6:20 ` [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Nguyen @ 2023-12-12 20:49 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, netdev
  Cc: Ilpo Järvinen, anthony.l.nguyen, sasha.neftin,
	Jonathan Cameron, Simon Horman, Naama Meir

From: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

e1000e has own copy of PCI Negotiated Link Width field defines. Use the
ones from include/uapi/linux/pci_regs.h instead of the custom ones and
remove the custom ones and convert to FIELD_GET().

Suggested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/e1000e/defines.h | 2 --
 drivers/net/ethernet/intel/e1000e/mac.c     | 7 ++++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/defines.h b/drivers/net/ethernet/intel/e1000e/defines.h
index 63c3c79380a1..a4d29c9e03a6 100644
--- a/drivers/net/ethernet/intel/e1000e/defines.h
+++ b/drivers/net/ethernet/intel/e1000e/defines.h
@@ -681,8 +681,6 @@
 #define PCIE_LINK_STATUS             0x12
 
 #define PCI_HEADER_TYPE_MULTIFUNC    0x80
-#define PCIE_LINK_WIDTH_MASK         0x3F0
-#define PCIE_LINK_WIDTH_SHIFT        4
 
 #define PHY_REVISION_MASK      0xFFFFFFF0
 #define MAX_PHY_REG_ADDRESS    0x1F  /* 5 bit address bus (0-0x1F) */
diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
index 5df7ad93f3d7..5340cf73778d 100644
--- a/drivers/net/ethernet/intel/e1000e/mac.c
+++ b/drivers/net/ethernet/intel/e1000e/mac.c
@@ -1,6 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright(c) 1999 - 2018 Intel Corporation. */
 
+#include <linux/bitfield.h>
+
 #include "e1000.h"
 
 /**
@@ -25,9 +27,8 @@ s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw)
 		pci_read_config_word(adapter->pdev,
 				     cap_offset + PCIE_LINK_STATUS,
 				     &pcie_link_status);
-		bus->width = (enum e1000_bus_width)((pcie_link_status &
-						     PCIE_LINK_WIDTH_MASK) >>
-						    PCIE_LINK_WIDTH_SHIFT);
+		bus->width = (enum e1000_bus_width)FIELD_GET(PCI_EXP_LNKSTA_NLW,
+							     pcie_link_status);
 	}
 
 	mac->ops.set_lan_id(hw);
-- 
2.41.0


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

* [PATCH net-next 3/3] e1000e: Use pcie_capability_read_word() for reading LNKSTA
  2023-12-12 20:49 [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) Tony Nguyen
  2023-12-12 20:49 ` [PATCH net-next 1/3] igb: Use FIELD_GET() to extract Link Width Tony Nguyen
  2023-12-12 20:49 ` [PATCH net-next 2/3] e1000e: Use PCI_EXP_LNKSTA_NLW & FIELD_GET() instead of custom defines/code Tony Nguyen
@ 2023-12-12 20:49 ` Tony Nguyen
  2023-12-14  6:20 ` [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Nguyen @ 2023-12-12 20:49 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, netdev
  Cc: Ilpo Järvinen, anthony.l.nguyen, sasha.neftin,
	Jonathan Cameron, Simon Horman, Naama Meir

From: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

Use pcie_capability_read_word() for reading LNKSTA and remove the
custom define that matches to PCI_EXP_LNKSTA.

As only single user for cap_offset remains, replace it with a call to
pci_pcie_cap(). Instead of e1000_adapter, make local variable out of
pci_dev because both users are interested in it.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/e1000e/defines.h |  1 -
 drivers/net/ethernet/intel/e1000e/mac.c     | 11 ++++-------
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/defines.h b/drivers/net/ethernet/intel/e1000e/defines.h
index a4d29c9e03a6..23a58cada43a 100644
--- a/drivers/net/ethernet/intel/e1000e/defines.h
+++ b/drivers/net/ethernet/intel/e1000e/defines.h
@@ -678,7 +678,6 @@
 
 /* PCI/PCI-X/PCI-EX Config space */
 #define PCI_HEADER_TYPE_REGISTER     0x0E
-#define PCIE_LINK_STATUS             0x12
 
 #define PCI_HEADER_TYPE_MULTIFUNC    0x80
 
diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
index 5340cf73778d..8c3d9c5962f2 100644
--- a/drivers/net/ethernet/intel/e1000e/mac.c
+++ b/drivers/net/ethernet/intel/e1000e/mac.c
@@ -15,18 +15,15 @@
  **/
 s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw)
 {
+	struct pci_dev *pdev = hw->adapter->pdev;
 	struct e1000_mac_info *mac = &hw->mac;
 	struct e1000_bus_info *bus = &hw->bus;
-	struct e1000_adapter *adapter = hw->adapter;
-	u16 pcie_link_status, cap_offset;
+	u16 pcie_link_status;
 
-	cap_offset = adapter->pdev->pcie_cap;
-	if (!cap_offset) {
+	if (!pci_pcie_cap(pdev)) {
 		bus->width = e1000_bus_width_unknown;
 	} else {
-		pci_read_config_word(adapter->pdev,
-				     cap_offset + PCIE_LINK_STATUS,
-				     &pcie_link_status);
+		pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &pcie_link_status);
 		bus->width = (enum e1000_bus_width)FIELD_GET(PCI_EXP_LNKSTA_NLW,
 							     pcie_link_status);
 	}
-- 
2.41.0


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

* Re: [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e)
  2023-12-12 20:49 [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) Tony Nguyen
                   ` (2 preceding siblings ...)
  2023-12-12 20:49 ` [PATCH net-next 3/3] e1000e: Use pcie_capability_read_word() for reading LNKSTA Tony Nguyen
@ 2023-12-14  6:20 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-12-14  6:20 UTC (permalink / raw)
  To: Tony Nguyen; +Cc: davem, kuba, pabeni, edumazet, netdev

Hello:

This series was applied to netdev/net-next.git (main)
by Tony Nguyen <anthony.l.nguyen@intel.com>:

On Tue, 12 Dec 2023 12:49:42 -0800 you wrote:
> This series contains updates to igb and e1000e drivers.
> 
> Ilpo Järvinen does some cleanups to both drivers: utilizing FIELD_GET()
> helpers and using standard kernel defines over driver created ones.
> 
> The following are changes since commit 609c767f2c5505f104ed6bbb3554158131913f86:
>   Merge branch 'net-dsa-realtek-two-rtl8366rb-fixes'
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 1GbE
> 
> [...]

Here is the summary with links:
  - [net-next,1/3] igb: Use FIELD_GET() to extract Link Width
    https://git.kernel.org/netdev/net-next/c/4f6011678d38
  - [net-next,2/3] e1000e: Use PCI_EXP_LNKSTA_NLW & FIELD_GET() instead of custom defines/code
    https://git.kernel.org/netdev/net-next/c/4c39e76846b2
  - [net-next,3/3] e1000e: Use pcie_capability_read_word() for reading LNKSTA
    https://git.kernel.org/netdev/net-next/c/bf88f7d920da

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



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

end of thread, other threads:[~2023-12-14  6:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-12 20:49 [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) Tony Nguyen
2023-12-12 20:49 ` [PATCH net-next 1/3] igb: Use FIELD_GET() to extract Link Width Tony Nguyen
2023-12-12 20:49 ` [PATCH net-next 2/3] e1000e: Use PCI_EXP_LNKSTA_NLW & FIELD_GET() instead of custom defines/code Tony Nguyen
2023-12-12 20:49 ` [PATCH net-next 3/3] e1000e: Use pcie_capability_read_word() for reading LNKSTA Tony Nguyen
2023-12-14  6:20 ` [PATCH net-next 0/3][pull request] Intel Wired LAN Driver Updates 2023-12-12 (igb, e1000e) patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).