mbox series

[net-next,0/9] ptp: convert remaining users of .adjfreq

Message ID 20221109230945.545440-1-jacob.e.keller@intel.com (mailing list archive)
Headers show
Series ptp: convert remaining users of .adjfreq | expand

Message

Jacob Keller Nov. 9, 2022, 11:09 p.m. UTC
A handful of drivers remain which still use the .adjfreq interface instead
of the newer .adjfine interface. The new interface is preferred as it has a
more precise adjustment using scaled parts per million.

A handful of the remaining drivers are implemented with a common pattern
that can be refactored to use the adjust_by_scaled_ppm and
diff_by_scaled_ppm helper functions. These include the ptp_phc, ptp_ixp64x,
tg3, hclge, stmac, cpts and bnxt drivers. These are each refactored in a
separate change.

The remaining drivers, bnx2x, liquidio, cxgb4, fec, and qede implement
.adjfreq in a way different from the normal pattern expected by
adjust_by_scaled_ppm. Fixing these drivers to properly use .adjfine requires
specific knowledge of the hardware implementation. Instead I simply refactor
them to use .adjfine and convert scaled_ppm into ppb using the
scaled_ppm_to_ppb function.

Finally, the .adjfreq implementation interface is removed entirely. This
simplifies the interface and ensures that new drivers must implement the new
interface as they no longer have an alternative.

This still leaves parts per billion used as part of the max_adj interface,
and the core PTP stack still converts scaled_ppm to ppb to check this. I
plan to investigate fixing this in the future.

Jacob Keller (9):
  ptp_phc: convert .adjfreq to .adjfine
  ptp_ixp46x: convert .adjfreq to .adjfine
  ptp: tg3: convert .adjfreq to .adjfine
  ptp: hclge: convert .adjfreq to .adjfine
  ptp: stmac: convert .adjfreq to .adjfine
  ptp: cpts: convert .adjfreq to .adjfine
  ptp: bnxt: convert .adjfreq to .adjfine
  ptp: convert remaining drivers to adjfine interface
  ptp: remove the .adjfreq interface function

 .../net/ethernet/broadcom/bnx2x/bnx2x_main.c  |  9 ++++----
 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 22 +++++-------------
 drivers/net/ethernet/broadcom/tg3.c           | 22 ++++++------------
 .../net/ethernet/cavium/liquidio/lio_main.c   | 11 +++++----
 .../net/ethernet/chelsio/cxgb4/cxgb4_ptp.c    | 13 +++++++----
 drivers/net/ethernet/freescale/fec_ptp.c      | 13 +++++++----
 .../hisilicon/hns3/hns3pf/hclge_ptp.c         | 22 ++++--------------
 drivers/net/ethernet/qlogic/qede/qede_ptp.c   | 13 +++++++----
 drivers/net/ethernet/sfc/ptp.c                |  7 +++---
 drivers/net/ethernet/sfc/siena/ptp.c          |  7 +++---
 .../net/ethernet/stmicro/stmmac/stmmac_ptp.c  | 23 ++++++-------------
 drivers/net/ethernet/ti/am65-cpts.c           |  5 ++--
 drivers/net/ethernet/ti/cpts.c                | 20 ++++------------
 drivers/net/ethernet/xscale/ptp_ixp46x.c      | 19 ++++-----------
 drivers/ptp/ptp_clock.c                       |  5 +---
 drivers/ptp/ptp_dte.c                         |  5 ++--
 drivers/ptp/ptp_pch.c                         | 19 ++++-----------
 include/linux/ptp_clock_kernel.h              |  7 ------
 18 files changed, 88 insertions(+), 154 deletions(-)


base-commit: 154ba79c9f160e652a2c9c46435b928b3bfae11f

Comments

patchwork-bot+netdevbpf@kernel.org Nov. 11, 2022, noon UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Wed,  9 Nov 2022 15:09:36 -0800 you wrote:
> A handful of drivers remain which still use the .adjfreq interface instead
> of the newer .adjfine interface. The new interface is preferred as it has a
> more precise adjustment using scaled parts per million.
> 
> A handful of the remaining drivers are implemented with a common pattern
> that can be refactored to use the adjust_by_scaled_ppm and
> diff_by_scaled_ppm helper functions. These include the ptp_phc, ptp_ixp64x,
> tg3, hclge, stmac, cpts and bnxt drivers. These are each refactored in a
> separate change.
> 
> [...]

Here is the summary with links:
  - [net-next,1/9] ptp_phc: convert .adjfreq to .adjfine
    https://git.kernel.org/netdev/net-next/c/2e77eded8ec3
  - [net-next,2/9] ptp_ixp46x: convert .adjfreq to .adjfine
    https://git.kernel.org/netdev/net-next/c/319d77e9d059
  - [net-next,3/9] ptp: tg3: convert .adjfreq to .adjfine
    https://git.kernel.org/netdev/net-next/c/e3f18e9d353a
  - [net-next,4/9] ptp: hclge: convert .adjfreq to .adjfine
    https://git.kernel.org/netdev/net-next/c/974557020a59
  - [net-next,5/9] ptp: stmac: convert .adjfreq to .adjfine
    (no matching commit)
  - [net-next,6/9] ptp: cpts: convert .adjfreq to .adjfine
    https://git.kernel.org/netdev/net-next/c/a45392071cee
  - [net-next,7/9] ptp: bnxt: convert .adjfreq to .adjfine
    https://git.kernel.org/netdev/net-next/c/a29c132f92ed
  - [net-next,8/9] ptp: convert remaining drivers to adjfine interface
    https://git.kernel.org/netdev/net-next/c/e2bd9c76c89f
  - [net-next,9/9] ptp: remove the .adjfreq interface function
    https://git.kernel.org/netdev/net-next/c/75ab70ec5cef

You are awesome, thank you!