1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/intel/ice
Jacob Keller a69f1cb62a ice: exit bypass mode once hardware finishes timestamp calibration
Once the E822 device has sent and received one packet, the hardware
computes the internal delay of the PHY using a process known as Vernier
calibration. This calibration calculates a more accurate offset for the
Tx and Rx timestamps. To make use of this offset, we need to exit the
bypass mode. This cannot be done until the PHY has completed offset
calibration, as indicated by the offset valid bits.

To handle this, introduce a kthread work item which will poll the offset
valid bits every few milliseconds seeing if it is safe to exit bypass
mode.

Once we have finished calibrating the offsets, we can program the total
Tx and Rx offset registers and turn off the bypass bit. This allows the
hardware to include the more precise vernier calibration offset, and
improves the timestamp precision.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-12-21 09:11:40 -08:00
..
ice.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_adminq_cmd.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_arfs.c ice: make use of ice_for_each_* macros 2021-10-15 07:39:03 -07:00
ice_arfs.h ice: use static inline for dummy functions 2021-06-07 08:59:01 -07:00
ice_base.c ice: Propagate error codes 2021-12-14 10:19:14 -08:00
ice_base.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00
ice_cgu_regs.h ice: ensure the hardware Clock Generation Unit is configured 2021-12-21 09:11:40 -08:00
ice_common.c ice: convert clk_freq capability into time_ref 2021-12-21 09:11:02 -08:00
ice_common.h ice: Use int for ice_status 2021-12-14 10:19:13 -08:00
ice_controlq.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_controlq.h ice: add support for sideband messages 2021-06-11 07:38:00 -07:00
ice_dcb.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_dcb.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_dcb_lib.c ice: Use int for ice_status 2021-12-14 10:19:13 -08:00
ice_dcb_lib.h ice: Add infrastructure for mqprio support via ndo_setup_tc 2021-10-20 15:57:54 -07:00
ice_dcb_nl.c ice: Fix problems with DSCP QoS implementation 2021-12-07 13:21:01 -08:00
ice_dcb_nl.h ice: use static inline for dummy functions 2021-06-07 08:59:01 -07:00
ice_devids.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-22 11:41:16 +01:00
ice_devlink.c ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_devlink.h net/ice: Remove unused enum 2021-11-30 08:02:12 -08:00
ice_eswitch.c ice: Clear synchronized addrs when adding VFs in switchdev mode 2021-10-29 10:56:24 -07:00
ice_eswitch.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00
ice_ethtool.c ice: tighter control over VSI_DOWN state 2021-12-15 08:48:26 -08:00
ice_ethtool_fdir.c ice: Remove excess error variables 2021-12-14 10:19:13 -08:00
ice_fdir.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_fdir.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_flex_pipe.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_flex_pipe.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_flex_type.h ice: refactor PTYPE validating 2021-12-14 08:06:47 -08:00
ice_flow.c ice: Remove unused ICE_FLOW_SEG_HDRS_L2_MASK 2021-12-14 10:19:14 -08:00
ice_flow.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_fltr.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_fltr.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_fw_update.c ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_fw_update.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_hw_autogen.h ice: implement basic E822 PTP support 2021-12-21 09:11:37 -08:00
ice_idc.c net/ice: Add support for enable_iwarp and enable_roce devlink param 2021-11-22 08:41:56 -08:00
ice_idc_int.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_lag.c ice: Respond to a NETDEV_UNREGISTER event for LAG 2021-10-25 13:44:37 -07:00
ice_lag.h ice: Add initial support framework for LAG 2021-02-08 16:27:01 -08:00
ice_lan_tx_rx.h ice: switchdev slow path 2021-10-07 10:41:42 -07:00
ice_lib.c ice: Propagate error codes 2021-12-14 10:19:14 -08:00
ice_lib.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_main.c ice: implement basic E822 PTP support 2021-12-21 09:11:37 -08:00
ice_nvm.c ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_nvm.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_osdep.h ice: Start hardware initialization 2018-03-26 09:59:08 -07:00
ice_protocol_type.h ice: support for GRE in eswitch 2021-10-28 11:00:20 -07:00
ice_ptp.c ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_ptp.h ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_ptp_consts.h ice: ensure the hardware Clock Generation Unit is configured 2021-12-21 09:11:40 -08:00
ice_ptp_hw.c ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_ptp_hw.h ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_repr.c ice: Add support for changing MTU on PR in switchdev mode 2021-10-28 11:00:20 -07:00
ice_repr.h ice: rebuild switchdev when resetting all VFs 2021-10-07 10:41:42 -07:00
ice_sbq_cmd.h ice: add support for sideband messages 2021-06-11 07:38:00 -07:00
ice_sched.c ice: Remove unnecessary casts 2021-12-14 10:19:14 -08:00
ice_sched.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_sriov.c ice: Remove enum ice_status 2021-12-14 10:19:13 -08:00
ice_sriov.h ice: Use int for ice_status 2021-12-14 10:19:13 -08:00
ice_switch.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_switch.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_tc_lib.c ice: Propagate error codes 2021-12-14 10:19:14 -08:00
ice_tc_lib.h ice: VXLAN and Geneve TC support 2021-10-28 11:00:18 -07:00
ice_trace.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00
ice_txrx.c ice: use modern kernel API for kick 2021-12-15 08:49:25 -08:00
ice_txrx.h ice: Add infrastructure for mqprio support via ndo_setup_tc 2021-10-20 15:57:54 -07:00
ice_txrx_lib.c ice: introduce XDP_TX fallback path 2021-10-15 07:39:03 -07:00
ice_txrx_lib.h ice: propagate xdp_ring onto rx_ring 2021-10-15 07:39:03 -07:00
ice_type.h ice: convert clk_freq capability into time_ref 2021-12-21 09:11:02 -08:00
ice_virtchnl_allowlist.c ice: Enable RSS configure for AVF 2021-04-22 09:26:22 -07:00
ice_virtchnl_allowlist.h ice: Allow ignoring opcodes on specific VF 2021-04-22 09:26:22 -07:00
ice_virtchnl_fdir.c ice: Remove excess error variables 2021-12-14 10:19:13 -08:00
ice_virtchnl_fdir.h ice: Check FDIR program status for AVF 2021-03-22 11:32:12 -07:00
ice_virtchnl_pf.c ice: Propagate error codes 2021-12-14 10:19:14 -08:00
ice_virtchnl_pf.h ice: refactor PTYPE validating 2021-12-14 08:06:47 -08:00
ice_xsk.c ice: xsk: clear status_error0 for each allocated desc 2021-11-30 12:09:33 +00:00
ice_xsk.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00
Makefile ice: ndo_setup_tc implementation for PF 2021-10-11 09:03:04 -07:00