File tree Expand file tree Collapse file tree 1 file changed +22
-1
lines changed
drivers/net/ethernet/mellanox/mlx5/core/lib Expand file tree Collapse file tree 1 file changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -408,10 +408,31 @@ static int mlx5_ptp_enable(struct ptp_clock_info *ptp,
408
408
return 0 ;
409
409
}
410
410
411
+ enum {
412
+ MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_IN = BIT (0 ),
413
+ MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_OUT = BIT (1 ),
414
+ };
415
+
411
416
static int mlx5_ptp_verify (struct ptp_clock_info * ptp , unsigned int pin ,
412
417
enum ptp_pin_function func , unsigned int chan )
413
418
{
414
- return (func == PTP_PF_PHYSYNC ) ? - EOPNOTSUPP : 0 ;
419
+ struct mlx5_clock * clock = container_of (ptp , struct mlx5_clock ,
420
+ ptp_info );
421
+
422
+ switch (func ) {
423
+ case PTP_PF_NONE :
424
+ return 0 ;
425
+ case PTP_PF_EXTTS :
426
+ return !(clock -> pps_info .pin_caps [pin ] &
427
+ MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_IN );
428
+ case PTP_PF_PEROUT :
429
+ return !(clock -> pps_info .pin_caps [pin ] &
430
+ MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_OUT );
431
+ default :
432
+ return - EOPNOTSUPP ;
433
+ }
434
+
435
+ return - EOPNOTSUPP ;
415
436
}
416
437
417
438
static const struct ptp_clock_info mlx5_ptp_clock_info = {
You can’t perform that action at this time.
0 commit comments