/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright(c) 2024 Intel Corporation. */ #ifndef _IAVF_PTP_H_ #define _IAVF_PTP_H_ #include "iavf_types.h" /* bit indicating whether a 40bit timestamp is valid */ #define IAVF_PTP_40B_TSTAMP_VALID BIT(24) #if IS_ENABLED(CONFIG_PTP_1588_CLOCK) void iavf_ptp_init(struct iavf_adapter *adapter); void iavf_ptp_release(struct iavf_adapter *adapter); void iavf_ptp_process_caps(struct iavf_adapter *adapter); bool iavf_ptp_cap_supported(const struct iavf_adapter *adapter, u32 cap); void iavf_virtchnl_send_ptp_cmd(struct iavf_adapter *adapter); int iavf_ptp_set_ts_config(struct iavf_adapter *adapter, struct kernel_hwtstamp_config *config, struct netlink_ext_ack *extack); u64 iavf_ptp_extend_32b_timestamp(u64 cached_phc_time, u32 in_tstamp); #else /* IS_ENABLED(CONFIG_PTP_1588_CLOCK) */ static inline void iavf_ptp_init(struct iavf_adapter *adapter) { } static inline void iavf_ptp_release(struct iavf_adapter *adapter) { } static inline void iavf_ptp_process_caps(struct iavf_adapter *adapter) { } static inline bool iavf_ptp_cap_supported(const struct iavf_adapter *adapter, u32 cap) { return false; } static inline void iavf_virtchnl_send_ptp_cmd(struct iavf_adapter *adapter) { } static inline int iavf_ptp_set_ts_config(struct iavf_adapter *adapter, struct kernel_hwtstamp_config *config, struct netlink_ext_ack *extack) { return -1; } static inline u64 iavf_ptp_extend_32b_timestamp(u64 cached_phc_time, u32 in_tstamp) { return 0; } #endif /* IS_ENABLED(CONFIG_PTP_1588_CLOCK) */ #endif /* _IAVF_PTP_H_ */