diff options
| author | Jakub Kicinski <[email protected]> | 2025-03-26 11:52:22 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-03-26 16:32:10 +0000 |
| commit | 023b1e9d265ca0662111a9df23d22b4632717a8a (patch) | |
| tree | b43291b5490e259ccdcd38e03ef17002cc90c9d8 /drivers/net/ethernet/intel/ice/ice_ptp.c | |
| parent | unix: fix up for "apparmor: add fine grained af_unix mediation" (diff) | |
| parent | mctp: Fix incorrect tx flow invalidation condition in mctp-i2c (diff) | |
| download | kernel-023b1e9d265ca0662111a9df23d22b4632717a8a.tar.gz kernel-023b1e9d265ca0662111a9df23d22b4632717a8a.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Merge in late fixes to prepare for the 6.15 net-next PR.
No conflicts, adjacent changes:
drivers/net/ethernet/broadcom/bnxt/bnxt.c
919f9f497dbc ("eth: bnxt: fix out-of-range access of vnic_info array")
fe96d717d38e ("bnxt_en: Extend queue stop/start for TX rings")
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_ptp.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_ptp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c index 1bb0033347c7..1fd1ae03eb90 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c @@ -1778,6 +1778,7 @@ static int ice_ptp_write_perout(struct ice_hw *hw, unsigned int chan, 8 + chan + (tmr_idx * 4)); wr32(hw, GLGEN_GPIO_CTL(gpio_pin), val); + ice_flush(hw); return 0; } @@ -1838,9 +1839,10 @@ static int ice_ptp_cfg_perout(struct ice_pf *pf, struct ptp_perout_request *rq, div64_u64_rem(start, period, &phase); /* If we have only phase or start time is in the past, start the timer - * at the next multiple of period, maintaining phase. + * at the next multiple of period, maintaining phase at least 0.5 second + * from now, so we have time to write it to HW. */ - clk = ice_ptp_read_src_clk_reg(pf, NULL); + clk = ice_ptp_read_src_clk_reg(pf, NULL) + NSEC_PER_MSEC * 500; if (rq->flags & PTP_PEROUT_PHASE || start <= clk - prop_delay_ns) start = div64_u64(clk + period - 1, period) * period + phase; |
