1. 02 Nov, 2022 15 commits
  2. 01 Nov, 2022 17 commits
  3. 31 Oct, 2022 8 commits
    • Colin Ian King's avatar
      net: mvneta: Remove unused variable i · 0cf9deb3
      Colin Ian King authored
      Variable i is just being incremented and it's never used anywhere else. The
      variable and the increment are redundant so remove it.
      Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0cf9deb3
    • David S. Miller's avatar
      Merge branch 'ptp-adjfine' · 5565dbd0
      David S. Miller authored
      Jacob Keller says:
      
      ====================
      ptp: convert drivers to .adjfine
      
      Many drivers implementing PTP have not yet migrated to the new .adjfine
      frequency adjustment implementation.
      
      A handful of these drivers use hardware with a simple increment value which
      is adjusted by multiplying by the adjustment factor and then dividing by
      1 billion. This calculation is very easy to convert to .adjfine, by simply
      updating the divisor.
      
      Introduce new helper functions, diff_by_scaled_ppm and adjust_by_scaled_ppm
      which perform the most common calculations used by drivers for this purpose.
      
      The adjust_by_scaled_ppm takes the base increment and scaled PPM value, and
      calculates the new increment to use.
      
      A few drivers need the difference and direction rather than a raw increment
      value. The diff_by_scaled_ppm calculates the difference and returns true if
      it should be a subtraction, false otherwise. This most closely aligns with
      existing driver implementations.
      
      I previously submitted v1 of this series at [1], and got some feedback only
      on a handful of drivers. In the interest of merging the changes which have
      received feedback, I've dropped the following drivers out of this send:
      
       * ptp_phc
       * ptp_ipx46x
       * tg3
       * hclge
       * stmac
       * cpts
      
      I plan to submit those drivers changes again at a later date. As before,
      there are some drivers which are not trivial to convert to the new helper
      functions. While they may be able to work, their implementation is different
      and I lack the hardware or datasheets to determine what the correct
      implementation would be.
      
      * drivers/net/ethernet/broadcom/bnx2x
      * drivers/net/ethernet/broadcom/bnxt
      * drivers/net/ethernet/cavium/liquidio
      * drivers/net/ethernet/chelsio/cxgb4
      * drivers/net/ethernet/freescale
      * drivers/net/ethernet/qlogic/qed
      * drivers/net/ethernet/qlogic/qede
      * drivers/net/ethernet/sfc
      * drivers/net/ethernet/sfc/siena
      * drivers/net/ethernet/ti/am65-cpts.c
      * drivers/ptp/ptp_dte.c
      
      My end goal is to drop the .adjfreq implementation entirely, and to that end
      I plan on modifying these drivers in the future to directly use
      scaled_ppm_to_ppb as the simplest method to convert them.
      
      Changes since v2:
      * Rebased to allow landing in 6.2
      * Added Richard's Acked-by
      
      Cc: "K. Y. Srinivasan" <kys@microsoft.com>
      Cc: Haiyang Zhang <haiyangz@microsoft.com>
      Cc: Stephen Hemminger <sthemmin@microsoft.com>
      Cc: Wei Liu <wei.liu@kernel.org>
      Cc: Dexuan Cui <decui@microsoft.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Siva Reddy Kallam <siva.kallam@broadcom.com>
      Cc: Prashant Sreedharan <prashant@broadcom.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Yisen Zhuang <yisen.zhuang@huawei.com>
      Cc: Salil Mehta <salil.mehta@huawei.com>
      Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
      Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
      Cc: Tariq Toukan <tariqt@nvidia.com>
      Cc: Saeed Mahameed <saeedm@nvidia.com>
      Cc: Leon Romanovsky <leon@kernel.org>
      Cc: Bryan Whitehead <bryan.whitehead@microchip.com>
      Cc: Sergey Shtylyov <s.shtylyov@omp.ru>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
      Cc: Jose Abreu <joabreu@synopsys.com>
      Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
      Cc: Richard Cochran <richardcochran@gmail.com>
      Cc: Vivek Thampi <vithampi@vmware.com>
      Cc: VMware PV-Drivers Reviewers <pv-drivers@vmware.com>
      Cc: Jie Wang <wangjie125@huawei.com>
      Cc: Jacob Keller <jacob.e.keller@intel.com>
      Cc: Guangbin Huang <huangguangbin2@huawei.com>
      Cc: Eran Ben Elisha <eranbe@nvidia.com>
      Cc: Aya Levin <ayal@nvidia.com>
      Cc: Cai Huoqing <cai.huoqing@linux.dev>
      Cc: Biju Das <biju.das.jz@bp.renesas.com>
      Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
      Cc: Phil Edworthy <phil.edworthy@renesas.com>
      Cc: Jiasheng Jiang <jiasheng@iscas.ac.cn>
      Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Wan Jiabing <wanjiabing@vivo.com>
      Cc: Lv Ruyi <lv.ruyi@zte.com.cn>
      Cc: Arnd Bergmann <arnd@arndb.de>
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5565dbd0
    • Jacob Keller's avatar
      ptp: xgbe: convert to .adjfine and adjust_by_scaled_ppm · 337ffae0
      Jacob Keller authored
      The xgbe implementation of .adjfreq is implemented in terms of a
      straight forward "base * ppb / 1 billion" calculation.
      
      Convert this driver to .adjfine and use adjust_by_scaled_ppm to calculate
      the new addend value.
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Cc: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      337ffae0
    • Jacob Keller's avatar
      ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm · 673dd2c7
      Jacob Keller authored
      The ravb implementation of .adjfreq is implemented in terms of a
      straight forward "base * ppb / 1 billion" calculation.
      
      Convert this driver to .adjfine and use the adjust_by_scaled_ppm helper
      function to calculate the new addend.
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Cc: Sergey Shtylyov <s.shtylyov@omp.ru>
      Cc: Biju Das <biju.das.jz@bp.renesas.com>
      Cc: Phil Edworthy <phil.edworthy@renesas.com>
      Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
      Cc: linux-renesas-soc@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      673dd2c7
    • Jacob Keller's avatar
      ptp: lan743x: use diff_by_scaled_ppm in .adjfine implementation · 8bc900cb
      Jacob Keller authored
      Update the lan743x driver to use the recently added diff_by_scaled_ppm
      helper function. This reduces the amount of code required in lan743x_ptp.c
      driver file.
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Cc: Bryan Whitehead <bryan.whitehead@microchip.com>
      Cc: UNGLinuxDriver@microchip.com
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8bc900cb
    • Jacob Keller's avatar
      ptp: lan743x: remove .adjfreq implementation · c56dff6a
      Jacob Keller authored
      The lan743x driver implements both .adjfreq and .adjfine, but the core PTP
      subsystem prefers .adjfine if implemented. There is no reason to carry a
      .adjfreq implementation, so we can remove it.
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Cc: Bryan Whitehead <bryan.whitehead@microchip.com>
      Cc: UNGLinuxDriver@microchip.com
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c56dff6a
    • Jacob Keller's avatar
      ptp: mlx5: convert to .adjfine and adjust_by_scaled_ppm · d8aad3f3
      Jacob Keller authored
      The mlx5 implementation of .adjfreq is implemented in terms of a
      straight forward "base * ppb / 1 billion" calculation.
      
      Convert this to the .adjfine interface and use adjust_by_scaled_ppm for the
      calculation  of the new mult value.
      
      Note that the mlx5_ptp_adjfreq_real_time function expects input in terms of
      ppb, so use the scaled_ppm_to_ppb to convert before passing to this
      function.
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Tested-by: default avatarShirly Ohnona <shirlyo@nvidia.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Cc: Gal Pressman <gal@nvidia.com>
      Cc: Saeed Mahameed <saeedm@nvidia.com>
      Cc: Leon Romanovsky <leon@kernel.org>
      Cc: Aya Levin <ayal@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d8aad3f3
    • Jacob Keller's avatar
      ptp: mlx4: convert to .adjfine and adjust_by_scaled_ppm · 6ed79596
      Jacob Keller authored
      The mlx4 implementation of .adjfreq is implemented in terms of a
      straight forward "base * ppb / 1 billion" calculation.
      
      Convert this driver to .adjfine and use adjust_by_scaled_ppm to perform the
      calculation.
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Cc: Tariq Toukan <tariqt@nvidia.com>
      Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6ed79596