#include "igc.h"
#include <linux/module.h>
#include <linux/device.h>
#include <linux/pci.h>
#include <linux/ptp_classify.h>
#include <linux/clocksource.h>
#include <linux/ktime.h>
#include <linux/delay.h>
#include <linux/iopoll.h>
#include <net/xdp_sock_drv.h>
#define INCVALUE_MASK …
#define ISGN …
#define IGC_PTP_TX_TIMEOUT …
#define IGC_PTM_STAT_SLEEP …
#define IGC_PTM_STAT_TIMEOUT …
void igc_ptp_read(struct igc_adapter *adapter, struct timespec64 *ts)
{ … }
static void igc_ptp_write_i225(struct igc_adapter *adapter,
const struct timespec64 *ts)
{ … }
static int igc_ptp_adjfine_i225(struct ptp_clock_info *ptp, long scaled_ppm)
{ … }
static int igc_ptp_adjtime_i225(struct ptp_clock_info *ptp, s64 delta)
{ … }
static int igc_ptp_gettimex64_i225(struct ptp_clock_info *ptp,
struct timespec64 *ts,
struct ptp_system_timestamp *sts)
{ … }
static int igc_ptp_settime_i225(struct ptp_clock_info *ptp,
const struct timespec64 *ts)
{ … }
static void igc_pin_direction(int pin, int input, u32 *ctrl, u32 *ctrl_ext)
{ … }
static void igc_pin_perout(struct igc_adapter *igc, int chan, int pin, int freq)
{ … }
static void igc_pin_extts(struct igc_adapter *igc, int chan, int pin)
{ … }
static int igc_ptp_feature_enable_i225(struct ptp_clock_info *ptp,
struct ptp_clock_request *rq, int on)
{ … }
static int igc_ptp_verify_pin(struct ptp_clock_info *ptp, unsigned int pin,
enum ptp_pin_function func, unsigned int chan)
{ … }
static int igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter,
struct skb_shared_hwtstamps *hwtstamps,
u64 systim)
{ … }
ktime_t igc_ptp_rx_pktstamp(struct igc_adapter *adapter, __le32 *buf)
{ … }
static void igc_ptp_disable_rx_timestamp(struct igc_adapter *adapter)
{ … }
static void igc_ptp_enable_rx_timestamp(struct igc_adapter *adapter)
{ … }
static void igc_ptp_free_tx_buffer(struct igc_adapter *adapter,
struct igc_tx_timestamp_request *tstamp)
{ … }
static void igc_ptp_clear_tx_tstamp(struct igc_adapter *adapter)
{ … }
static void igc_ptp_disable_tx_timestamp(struct igc_adapter *adapter)
{ … }
static void igc_ptp_enable_tx_timestamp(struct igc_adapter *adapter)
{ … }
static int igc_ptp_set_timestamp_mode(struct igc_adapter *adapter,
struct hwtstamp_config *config)
{ … }
static void igc_ptp_tx_timeout(struct igc_adapter *adapter,
struct igc_tx_timestamp_request *tstamp)
{ … }
void igc_ptp_tx_hang(struct igc_adapter *adapter)
{ … }
static void igc_ptp_tx_reg_to_stamp(struct igc_adapter *adapter,
struct igc_tx_timestamp_request *tstamp, u64 regval)
{ … }
static void igc_ptp_tx_hwtstamp(struct igc_adapter *adapter)
{ … }
void igc_ptp_tx_tstamp_event(struct igc_adapter *adapter)
{ … }
int igc_ptp_set_ts_config(struct net_device *netdev, struct ifreq *ifr)
{ … }
int igc_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr)
{ … }
static bool igc_is_crosststamp_supported(struct igc_adapter *adapter)
{ … }
static struct system_counterval_t igc_device_tstamp_to_system(u64 tstamp)
{ … }
static void igc_ptm_log_error(struct igc_adapter *adapter, u32 ptm_stat)
{ … }
static int igc_phc_get_syncdevicetime(ktime_t *device,
struct system_counterval_t *system,
void *ctx)
{ … }
static int igc_ptp_getcrosststamp(struct ptp_clock_info *ptp,
struct system_device_crosststamp *cts)
{ … }
static int igc_ptp_getcyclesx64(struct ptp_clock_info *ptp,
struct timespec64 *ts,
struct ptp_system_timestamp *sts)
{ … }
void igc_ptp_init(struct igc_adapter *adapter)
{ … }
static void igc_ptp_time_save(struct igc_adapter *adapter)
{ … }
static void igc_ptp_time_restore(struct igc_adapter *adapter)
{ … }
static void igc_ptm_stop(struct igc_adapter *adapter)
{ … }
void igc_ptp_suspend(struct igc_adapter *adapter)
{ … }
void igc_ptp_stop(struct igc_adapter *adapter)
{ … }
void igc_ptp_reset(struct igc_adapter *adapter)
{ … }