i40e: enable PTP
New feature: Enable PTP support in the i40e driver. Change-ID: I6a8e799f582705191f9583afb1b9231a8db96cc8 Cc: Richard Cochran <richardcochran@gmail.com> Cc: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Matthew Vick <matthew.vick@intel.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:

committed by
Jeff Kirsher

parent
6ff4ef86be
commit
beb0dff125
@@ -50,6 +50,9 @@
|
||||
#include <net/ip6_checksum.h>
|
||||
#include <linux/ethtool.h>
|
||||
#include <linux/if_vlan.h>
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/net_tstamp.h>
|
||||
#include <linux/ptp_clock_kernel.h>
|
||||
#include "i40e_type.h"
|
||||
#include "i40e_prototype.h"
|
||||
#include "i40e_virtchnl.h"
|
||||
@@ -242,6 +245,7 @@ struct i40e_pf {
|
||||
#define I40E_FLAG_DCB_ENABLED (u64)(1 << 20)
|
||||
#define I40E_FLAG_FDIR_ENABLED (u64)(1 << 21)
|
||||
#define I40E_FLAG_FDIR_ATR_ENABLED (u64)(1 << 22)
|
||||
#define I40E_FLAG_PTP (u64)(1 << 25)
|
||||
#define I40E_FLAG_MFP_ENABLED (u64)(1 << 26)
|
||||
#ifdef CONFIG_I40E_VXLAN
|
||||
#define I40E_FLAG_VXLAN_FILTER_SYNC (u64)(1 << 27)
|
||||
@@ -302,6 +306,20 @@ struct i40e_pf {
|
||||
u32 fcoe_hmc_filt_num;
|
||||
u32 fcoe_hmc_cntx_num;
|
||||
struct i40e_filter_control_settings filter_settings;
|
||||
|
||||
struct ptp_clock *ptp_clock;
|
||||
struct ptp_clock_info ptp_caps;
|
||||
struct sk_buff *ptp_tx_skb;
|
||||
struct work_struct ptp_tx_work;
|
||||
struct hwtstamp_config tstamp_config;
|
||||
unsigned long ptp_tx_start;
|
||||
unsigned long last_rx_ptp_check;
|
||||
spinlock_t tmreg_lock; /* Used to protect the device time registers. */
|
||||
u64 ptp_base_adj;
|
||||
u32 tx_hwtstamp_timeouts;
|
||||
u32 rx_hwtstamp_cleared;
|
||||
bool ptp_tx;
|
||||
bool ptp_rx;
|
||||
};
|
||||
|
||||
struct i40e_mac_filter {
|
||||
@@ -566,4 +584,12 @@ struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr,
|
||||
bool is_vf, bool is_netdev);
|
||||
void i40e_vlan_stripping_enable(struct i40e_vsi *vsi);
|
||||
|
||||
void i40e_ptp_rx_hang(struct i40e_vsi *vsi);
|
||||
void i40e_ptp_tx_hwtstamp(struct i40e_pf *pf);
|
||||
void i40e_ptp_rx_hwtstamp(struct i40e_pf *pf, struct sk_buff *skb, u8 index);
|
||||
void i40e_ptp_set_increment(struct i40e_pf *pf);
|
||||
int i40e_ptp_set_ts_config(struct i40e_pf *pf, struct ifreq *ifr);
|
||||
int i40e_ptp_get_ts_config(struct i40e_pf *pf, struct ifreq *ifr);
|
||||
void i40e_ptp_init(struct i40e_pf *pf);
|
||||
void i40e_ptp_stop(struct i40e_pf *pf);
|
||||
#endif /* _I40E_H_ */
|
||||
|
Reference in New Issue
Block a user