mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Jacob Keller 88c360e49f ice: Support cross-timestamping for E823 devices
The E822 hardware has cross timestamping support using a device feature
termed "Hammock Harbor" by the data sheet. This device feature is similar
to PCIe PTM, and captures the Always Running Timer (ART) simultaneously
with the PTP hardware clock time.

This functionality also exists on E823 devices, but is not currently
enabled.

Rename the cross-timestamp functions to use the _e82x postfix, indicating
that the support works across the E82x family of devices and not just the
E822 hardware.

The flow for capturing a cross-timestamp requires an additional step on
E823 devices. The GLTSYN_CMD register must be programmed with the READ_TIME
command. Otherwise, the cross timestamp will always report a value of zero
for the PTP hardware clock time.

To fix this, call ice_ptp_src_cmd() prior to initiating the cross timestamp
logic. Once the cross timestamp has completed, call ice_ptp_src_cmd() with
ICE_PTP_OP to ensure that the timer command registers are cleared.

Co-developed-by: Sergey Temerkhanov <sergey.temerkhanov@intel.com>
Signed-off-by: Sergey Temerkhanov <sergey.temerkhanov@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-09-18 10:39:10 -07:00
..
ice_adminq_cmd.h ice: add admin commands to access cgu configuration 2023-09-17 11:50:20 +01:00
ice_arfs.c ice: add individual interrupt allocation 2023-05-16 09:38:38 -07:00
ice_arfs.h
ice_base.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-08-24 10:51:39 -07:00
ice_base.h
ice_cgu_regs.h
ice_common.c ice: add admin commands to access cgu configuration 2023-09-17 11:50:20 +01:00
ice_common.h ice: add admin commands to access cgu configuration 2023-09-17 11:50:20 +01:00
ice_controlq.c ice: remove null checks before devm_kfree() calls 2023-06-22 10:30:34 -07:00
ice_controlq.h ice: reduce initial wait for control queue messages 2023-06-22 10:23:44 -07:00
ice_dcb_lib.c ice: Fix undersized tx_flags variable 2023-05-12 09:27:44 +01:00
ice_dcb_lib.h ice: Prevent set_channel from changing queues while RDMA active 2023-01-27 11:32:18 -08:00
ice_dcb_nl.c ice: enforce no DCB config changing when in bond 2023-07-27 10:56:32 -07:00
ice_dcb_nl.h
ice_dcb.c ice: Fix DSCP PFC TLV creation 2023-03-07 13:02:01 -08:00
ice_dcb.h ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_ddp.c ice: refactor ice_ddp to make functions static 2023-08-17 10:43:24 -07:00
ice_ddp.h ice: refactor ice_ddp to make functions static 2023-08-17 10:43:24 -07:00
ice_devids.h ice: support features on new E810T variants 2022-09-28 11:40:57 -07:00
ice_devlink.c devlink: move port_split/unsplit() ops into devlink_port_ops 2023-05-30 10:32:20 -07:00
ice_devlink.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_dpll.c ice: implement dpll interface to control cgu 2023-09-17 11:50:20 +01:00
ice_dpll.h ice: implement dpll interface to control cgu 2023-09-17 11:50:20 +01:00
ice_eswitch_br.c ice: Accept LAG netdevs in bridge offloads 2023-08-07 13:01:29 -07:00
ice_eswitch_br.h ice: implement static version of ageing 2023-07-24 08:53:42 -07:00
ice_eswitch.c Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2023-08-18 19:09:02 -07:00
ice_eswitch.h ice: use src VSI instead of src MAC in slow-path 2023-05-19 09:10:39 -07:00
ice_ethtool_fdir.c ice: Fix memory management in ice_ethtool_fdir.c 2023-07-24 17:07:51 -07:00
ice_ethtool.c ice: prevent NULL pointer deref during reload 2023-07-14 09:56:20 -07:00
ice_ethtool.h ice: update PHY type to ethtool link mode mapping 2023-05-17 08:43:01 -07:00
ice_fdir.c
ice_fdir.h
ice_flex_pipe.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_flex_pipe.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flex_type.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flow.c ice: remove null checks before devm_kfree() calls 2023-06-22 10:30:34 -07:00
ice_flow.h
ice_fltr.c ice: sync netdev filters after clearing VSI 2023-02-03 09:54:18 -08:00
ice_fltr.h
ice_fw_update.c ice: split ice_aq_wait_for_event() func into two 2023-08-17 13:59:46 -07:00
ice_fw_update.h
ice_gnss.c ice: Don't dereference NULL in ice_gnss_read error path 2023-06-08 08:38:56 -07:00
ice_gnss.h ice: make writes to /dev/gnssX synchronous 2023-06-07 10:51:58 +01:00
ice_hw_autogen.h ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_idc_int.h
ice_idc.c ice: add dynamic interrupt allocation 2023-05-16 09:38:38 -07:00
ice_irq.c ice: add dynamic interrupt allocation 2023-05-16 09:38:38 -07:00
ice_irq.h ice: add dynamic interrupt allocation 2023-05-16 09:38:38 -07:00
ice_lag.c ice: drop two params from ice_aq_alloc_free_res() 2023-08-17 13:59:46 -07:00
ice_lag.h ice: update reset path for SRIOV LAG support 2023-07-27 10:56:33 -07:00
ice_lan_tx_rx.h ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_lib.c ice: add admin commands to access cgu configuration 2023-09-17 11:50:20 +01:00
ice_lib.h ice: refactor ice_lib to make functions static 2023-08-17 10:43:37 -07:00
ice_main.c ice: implement dpll interface to control cgu 2023-09-17 11:50:20 +01:00
ice_nvm.c ice: Remove cppcheck suppressions 2023-01-19 08:18:03 -08:00
ice_nvm.h ice: Add additional flags to ice_nvm_write_activate 2022-08-24 08:45:54 -07:00
ice_osdep.h
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h ice: Rename enum ice_pkt_flags values 2023-08-07 13:01:29 -07:00
ice_ptp_consts.h
ice_ptp_hw.c ice: Support cross-timestamping for E823 devices 2023-09-18 10:39:10 -07:00
ice_ptp_hw.h ice: Support cross-timestamping for E823 devices 2023-09-18 10:39:10 -07:00
ice_ptp.c ice: Support cross-timestamping for E823 devices 2023-09-18 10:39:10 -07:00
ice_ptp.h ice: introduce ICE_TX_TSTAMP_WORK enumeration 2023-06-08 10:20:12 -07:00
ice_repr.c ice: Implement basic eswitch bridge setup 2023-07-24 08:53:05 -07:00
ice_repr.h ice: Implement basic eswitch bridge setup 2023-07-24 08:53:05 -07:00
ice_sbq_cmd.h
ice_sched.c ice: refactor ice_sched to make functions static 2023-08-17 13:59:45 -07:00
ice_sched.h ice: refactor ice_sched to make functions static 2023-08-17 13:59:45 -07:00
ice_sriov.c Revert "ice: Fix ice VF reset during iavf initialization" 2023-08-21 09:25:59 -07:00
ice_sriov.h ice: move ice_is_malicious_vf() to ice_virtchnl.c 2023-03-13 11:06:06 -07:00
ice_switch.c ice: drop two params from ice_aq_alloc_free_res() 2023-08-17 13:59:46 -07:00
ice_switch.h ice: remove unused methods 2023-08-17 10:43:06 -07:00
ice_tc_lib.c ice: Add direction metadata 2023-08-07 13:01:29 -07:00
ice_tc_lib.h ice: Fix tx queue rate limit when TCs are configured 2023-07-05 09:29:37 -07:00
ice_trace.h ice: add tracepoints for the switchdev bridge 2023-07-24 08:53:49 -07:00
ice_txrx_lib.c ice: fix W=1 headers mismatch 2023-03-28 09:42:05 -07:00
ice_txrx_lib.h ice: Micro-optimize .ndo_xdp_xmit() path 2023-02-13 19:13:13 +01:00
ice_txrx.c ice: recycle/free all of the fragments from multi-buffer frame 2023-06-01 09:59:39 -07:00
ice_txrx.h ice: Fix undersized tx_flags variable 2023-05-12 09:27:44 +01:00
ice_type.h ice: add admin commands to access cgu configuration 2023-09-17 11:50:20 +01:00
ice_vf_lib_private.h ice: refactor ice_vf_lib to make functions static 2023-08-17 10:43:53 -07:00
ice_vf_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-08-24 10:51:39 -07:00
ice_vf_lib.h ice: Check CRC strip requirement for VLAN strip 2023-09-13 08:58:23 -07:00
ice_vf_mbx.c ice: merge ice_mbx_report_malvf with ice_mbx_vf_state_handler 2023-03-13 11:00:10 -07:00
ice_vf_mbx.h ice: initialize mailbox snapshot earlier in PF init 2023-03-13 11:06:05 -07:00
ice_vf_vsi_vlan_ops.c ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_vf_vsi_vlan_ops.h ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_virtchnl_allowlist.c ice: Add support Flex RXD 2022-10-27 13:23:43 +02:00
ice_virtchnl_allowlist.h
ice_virtchnl_fdir.c ice: Reset FDIR counter in FDIR init stage 2023-04-04 08:34:52 -07:00
ice_virtchnl_fdir.h
ice_virtchnl.c ice: Check CRC strip requirement for VLAN strip 2023-09-13 08:58:23 -07:00
ice_virtchnl.h ice: call ice_is_malicious_vf() from ice_vc_process_vf_msg() 2023-03-13 11:06:06 -07:00
ice_vlan_mode.c ice: define meta data to match in switch 2023-05-19 08:57:43 -07:00
ice_vlan_mode.h
ice_vlan.h
ice_vsi_vlan_lib.c ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_vsi_vlan_lib.h ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_vsi_vlan_ops.c
ice_vsi_vlan_ops.h ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_xsk.c ice: xsk: Tx multi-buffer support 2023-07-19 09:56:50 -07:00
ice_xsk.h ice: xsk: change batched Tx descriptor cleaning 2022-09-27 08:11:02 -07:00
ice.h ice: implement dpll interface to control cgu 2023-09-17 11:50:20 +01:00
Makefile ice: implement dpll interface to control cgu 2023-09-17 11:50:20 +01:00