diff mbox series

[net-next,01/15] net/mlx5: Add helper functions for PTP callbacks

Message ID 20250203213516.227902-2-tariqt@nvidia.com (mailing list archive)
State Needs ACK
Delegated to: Netdev Maintainers
Headers show
Series Support one PTP device per hardware clock | expand

Checks

Context Check Description
netdev/series_format success Posting correctly formatted
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers warning 4 maintainers not CCed: vadim.fedorenko@linux.dev richardcochran@gmail.com linux-rdma@vger.kernel.org rrameshbabu@nvidia.com
netdev/build_clang success Errors and warnings before: 2 this patch: 2
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch warning WARNING: line length of 82 exceeds 80 columns WARNING: line length of 83 exceeds 80 columns WARNING: line length of 84 exceeds 80 columns
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2025-02-04--00-00 (tests: 886)

Commit Message

Tariq Toukan Feb. 3, 2025, 9:35 p.m. UTC
From: Jianbo Liu <jianbol@nvidia.com>

The PTP callback functions should not be used directly by internal
callers. Add helpers that can be used internally and externally.

Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
 .../ethernet/mellanox/mlx5/core/lib/clock.c   | 32 +++++++++++++------
 1 file changed, 22 insertions(+), 10 deletions(-)

Comments

Mateusz Polchlopek Feb. 4, 2025, 8:43 a.m. UTC | #1
On 2/3/2025 10:35 PM, Tariq Toukan wrote:
> From: Jianbo Liu <jianbol@nvidia.com>
> 
> The PTP callback functions should not be used directly by internal
> callers. Add helpers that can be used internally and externally.
> 
> Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
> Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
> Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
> ---
>   .../ethernet/mellanox/mlx5/core/lib/clock.c   | 32 +++++++++++++------
>   1 file changed, 22 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> index d61a1a9297c9..eaf343756026 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> @@ -119,6 +119,13 @@ static u32 mlx5_ptp_shift_constant(u32 dev_freq_khz)
>   		   ilog2((U32_MAX / NSEC_PER_MSEC) * dev_freq_khz));
>   }
>   

[...]

>   
> +static int mlx5_ptp_settime(struct ptp_clock_info *ptp, const struct timespec64 *ts)
> +{
> +	struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, ptp_info);
> +	struct mlx5_core_dev *mdev;
> +
> +	mdev = container_of(clock, struct mlx5_core_dev, clock);
> +

Maybe just oneliner for mdev instead of dividing it into two lines? But
it's up to you

> +	return  mlx5_clock_settime(mdev, clock, ts);
> +}
> +
>   static
>   struct timespec64 mlx5_ptp_gettimex_real_time(struct mlx5_core_dev *mdev,
>   					      struct ptp_system_timestamp *sts)
> @@ -1129,7 +1141,7 @@ static void mlx5_init_timer_clock(struct mlx5_core_dev *mdev)
>   		struct timespec64 ts;
>   
>   		ktime_get_real_ts64(&ts);
> -		mlx5_ptp_settime(&clock->ptp_info, &ts);
> +		mlx5_clock_settime(mdev, clock, &ts);
>   	}
>   }
>   

Only one small nitpick, overall the code looks good, nice rework.

Reviewed-by: Mateusz Polchlopek <mateusz.polchlopek@intel.com>
Tariq Toukan Feb. 5, 2025, 6:04 a.m. UTC | #2
On 04/02/2025 10:43, Mateusz Polchlopek wrote:
> 
> 
> On 2/3/2025 10:35 PM, Tariq Toukan wrote:
>> From: Jianbo Liu <jianbol@nvidia.com>
>>
>> The PTP callback functions should not be used directly by internal
>> callers. Add helpers that can be used internally and externally.
>>
>> Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
>> Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
>> Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
>> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
>> ---
>>   .../ethernet/mellanox/mlx5/core/lib/clock.c   | 32 +++++++++++++------
>>   1 file changed, 22 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/ 
>> drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
>> index d61a1a9297c9..eaf343756026 100644
>> --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
>> @@ -119,6 +119,13 @@ static u32 mlx5_ptp_shift_constant(u32 dev_freq_khz)
>>              ilog2((U32_MAX / NSEC_PER_MSEC) * dev_freq_khz));
>>   }
> 
> [...]
> 
>> +static int mlx5_ptp_settime(struct ptp_clock_info *ptp, const struct 
>> timespec64 *ts)
>> +{
>> +    struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, 
>> ptp_info);
>> +    struct mlx5_core_dev *mdev;
>> +
>> +    mdev = container_of(clock, struct mlx5_core_dev, clock);
>> +
> 
> Maybe just oneliner for mdev instead of dividing it into two lines? But
> it's up to you
> 

We'll keep it as is.
This also maintains the reversed Christmas tree.

>> +    return  mlx5_clock_settime(mdev, clock, ts);
>> +}
>> +
>>   static
>>   struct timespec64 mlx5_ptp_gettimex_real_time(struct mlx5_core_dev 
>> *mdev,
>>                             struct ptp_system_timestamp *sts)
>> @@ -1129,7 +1141,7 @@ static void mlx5_init_timer_clock(struct 
>> mlx5_core_dev *mdev)
>>           struct timespec64 ts;
>>           ktime_get_real_ts64(&ts);
>> -        mlx5_ptp_settime(&clock->ptp_info, &ts);
>> +        mlx5_clock_settime(mdev, clock, &ts);
>>       }
>>   }
> 
> Only one small nitpick, overall the code looks good, nice rework.
> 
> Reviewed-by: Mateusz Polchlopek <mateusz.polchlopek@intel.com>
> 

Thanks for your review.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
index d61a1a9297c9..eaf343756026 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
@@ -119,6 +119,13 @@  static u32 mlx5_ptp_shift_constant(u32 dev_freq_khz)
 		   ilog2((U32_MAX / NSEC_PER_MSEC) * dev_freq_khz));
 }
 
+static s32 mlx5_clock_getmaxphase(struct mlx5_core_dev *mdev)
+{
+	return MLX5_CAP_MCAM_FEATURE(mdev, mtutc_time_adjustment_extended_range) ?
+		       MLX5_MTUTC_OPERATION_ADJUST_TIME_EXTENDED_MAX :
+			     MLX5_MTUTC_OPERATION_ADJUST_TIME_MAX;
+}
+
 static s32 mlx5_ptp_getmaxphase(struct ptp_clock_info *ptp)
 {
 	struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, ptp_info);
@@ -126,14 +133,12 @@  static s32 mlx5_ptp_getmaxphase(struct ptp_clock_info *ptp)
 
 	mdev = container_of(clock, struct mlx5_core_dev, clock);
 
-	return MLX5_CAP_MCAM_FEATURE(mdev, mtutc_time_adjustment_extended_range) ?
-		       MLX5_MTUTC_OPERATION_ADJUST_TIME_EXTENDED_MAX :
-			     MLX5_MTUTC_OPERATION_ADJUST_TIME_MAX;
+	return mlx5_clock_getmaxphase(mdev);
 }
 
 static bool mlx5_is_mtutc_time_adj_cap(struct mlx5_core_dev *mdev, s64 delta)
 {
-	s64 max = mlx5_ptp_getmaxphase(&mdev->clock.ptp_info);
+	s64 max = mlx5_clock_getmaxphase(mdev);
 
 	if (delta < -max || delta > max)
 		return false;
@@ -361,15 +366,12 @@  static int mlx5_ptp_settime_real_time(struct mlx5_core_dev *mdev,
 	return mlx5_set_mtutc(mdev, in, sizeof(in));
 }
 
-static int mlx5_ptp_settime(struct ptp_clock_info *ptp, const struct timespec64 *ts)
+static int mlx5_clock_settime(struct mlx5_core_dev *mdev, struct mlx5_clock *clock,
+			      const struct timespec64 *ts)
 {
-	struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, ptp_info);
 	struct mlx5_timer *timer = &clock->timer;
-	struct mlx5_core_dev *mdev;
 	unsigned long flags;
 
-	mdev = container_of(clock, struct mlx5_core_dev, clock);
-
 	if (mlx5_modify_mtutc_allowed(mdev)) {
 		int err = mlx5_ptp_settime_real_time(mdev, ts);
 
@@ -385,6 +387,16 @@  static int mlx5_ptp_settime(struct ptp_clock_info *ptp, const struct timespec64
 	return 0;
 }
 
+static int mlx5_ptp_settime(struct ptp_clock_info *ptp, const struct timespec64 *ts)
+{
+	struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, ptp_info);
+	struct mlx5_core_dev *mdev;
+
+	mdev = container_of(clock, struct mlx5_core_dev, clock);
+
+	return  mlx5_clock_settime(mdev, clock, ts);
+}
+
 static
 struct timespec64 mlx5_ptp_gettimex_real_time(struct mlx5_core_dev *mdev,
 					      struct ptp_system_timestamp *sts)
@@ -1129,7 +1141,7 @@  static void mlx5_init_timer_clock(struct mlx5_core_dev *mdev)
 		struct timespec64 ts;
 
 		ktime_get_real_ts64(&ts);
-		mlx5_ptp_settime(&clock->ptp_info, &ts);
+		mlx5_clock_settime(mdev, clock, &ts);
 	}
 }