> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of Jacob 
> Keller
> Sent: Tuesday, May 14, 2024 3:52 AM
> To: Intel Wired LAN <intel-wired-...@lists.osuosl.org>
> Cc: Keller, Jacob E <jacob.e.kel...@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next v2] ice: add and use roundup_u64 
> instead of open coding equivalent
>
> In ice_ptp_cfg_clkout(), the ice driver needs to calculate the nearest next 
> second of a current time value specified in nanoseconds. It implements this 
> using div64_u64, because the time value is a u64. It could use div_u64 since 
> NSEC_PER_SEC is smaller than 32-bits.
>
> Ideally this would be implemented directly with roundup(), but that can't 
> work on all platforms due to a division which requires using the specific 
> macros and functions due to platform restrictions, and to ensure that the 
> most appropriate and fast instructions are used.
>
> The kernel doesn't currently provide any 64-bit equivalents for doing 
> roundup. Attempting to use roundup() on a 32-bit platform will result in a 
> link failure due to not having a direct 64-bit division.
>
> The closest equivalent for this is DIV64_U64_ROUND_UP, which does a division 
> always rounding up. However, this only computes the division, and forces use 
> of the div64_u64 in cases where the divisor is a 32bit value and could make 
> use of div_u64.
>
> Introduce DIV_U64_ROUND_UP based on div_u64, and then use it to implement
> roundup_u64 which takes a u64 input value and a u32 rounding value.
>
> The name roundup_u64 matches the naming scheme of div_u64, and future patches 
> could implement roundup64_u64 if they need to round by a multiple that is 
> greater than 32-bits.
>
> Replace the logic in ice_ptp.c which does this equivalent with the newly 
> added roundup_u64.
>
> Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com>
> ---
> Changes since v1:
> * add DIV_U64_ROUND_UP and use it for clarity
> ---
> Changes in v2:
> - Fix duplicate @y kdoc warning
> - Fix missing Return kdoc warning
> - Link to v1: 
> https://lore.kernel.org/r/20240426-mirrors-iwl-v1-1-284c1d7fd...@intel.com
> ---
>  drivers/net/ethernet/intel/ice/ice_ptp.c |  3 +--
>  include/linux/math64.h                   | 28 ++++++++++++++++++++++++++++
>  2 files changed, 29 insertions(+), 2 deletions(-)
>

Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pu...@intel.com> (A 
Contingent worker at Intel)

Reply via email to