netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/7][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-28
@ 2022-07-28 18:18 Tony Nguyen
  2022-07-28 18:18 ` [PATCH net-next 1/7] ice: implement adjfine with mul_u64_u64_div_u64 Tony Nguyen
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Tony Nguyen @ 2022-07-28 18:18 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet
  Cc: Tony Nguyen, netdev, richardcochran, jacob.e.keller

Jacob Keller says:

Convert all of the Intel drivers with PTP support to the newer .adjfine
implementation which uses scaled parts per million.

This improves the precision of the frequency adjustments by taking advantage
of the full scaled parts per million input coming from user space.

In addition, all implementations are converted to using the
mul_u64_u64_div_u64 function which better handles the intermediate value.
This function supports architecture specific instructions where possible to
avoid loss of precision if the normal 64-bit multiplication would overflow.

Of note, the i40e implementation is now able to avoid loss of precision on
slower link speeds by taking advantage of this to multiply by the link speed
factor first. This results in a significantly more precise adjustment by
allowing the calculation to impact the lower bits.

This also gets us a step closer to being able to remove the .adjfreq
entirely by removing its use from many drivers.

I plan to follow this up with a series to update the drivers from other
vendors and drop the .adjfreq implementation entirely.

The following are changes since commit 623cd87006983935de6c2ad8e2d50e68f1b7d6e7:
  net: cdns,macb: use correct xlnx prefix for Xilinx
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 1GbE

Jacob Keller (7):
  ice: implement adjfine with mul_u64_u64_div_u64
  e1000e: remove unnecessary range check in e1000e_phc_adjfreq
  e1000e: convert .adjfreq to .adjfine
  i40e: use mul_u64_u64_div_u64 for PTP frequency calculation
  i40e: convert .adjfreq to .adjfine
  ixgbe: convert .adjfreq to .adjfine
  igb: convert .adjfreq to .adjfine

 drivers/net/ethernet/intel/e1000e/e1000.h    |  2 +-
 drivers/net/ethernet/intel/e1000e/netdev.c   |  4 +-
 drivers/net/ethernet/intel/e1000e/ptp.c      | 18 +++--
 drivers/net/ethernet/intel/i40e/i40e_ptp.c   | 35 ++++------
 drivers/net/ethernet/intel/ice/ice_ptp.c     | 16 +----
 drivers/net/ethernet/intel/igb/igb_ptp.c     | 15 ++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 73 +++++++++++---------
 7 files changed, 75 insertions(+), 88 deletions(-)

-- 
2.35.1


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

end of thread, other threads:[~2022-08-01 18:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-28 18:18 [PATCH net-next 0/7][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-28 Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 1/7] ice: implement adjfine with mul_u64_u64_div_u64 Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 2/7] e1000e: remove unnecessary range check in e1000e_phc_adjfreq Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 3/7] e1000e: convert .adjfreq to .adjfine Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 4/7] i40e: use mul_u64_u64_div_u64 for PTP frequency calculation Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 5/7] i40e: convert .adjfreq to .adjfine Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 6/7] ixgbe: " Tony Nguyen
2022-07-28 18:18 ` [PATCH net-next 7/7] igb: " Tony Nguyen
2022-08-01 16:56 ` [PATCH net-next 0/7][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-28 Tony Nguyen
2022-08-01 17:22   ` Jakub Kicinski
2022-08-01 18:30 ` 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).