#define pr_fmt(fmt) …
#include <linux/clk.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/net_tstamp.h>
#include <linux/phy.h>
#include <linux/ptp_clock_kernel.h>
#include "sxgbe_common.h"
#include "sxgbe_reg.h"
#include "sxgbe_dma.h"
struct sxgbe_stats { … };
#define SXGBE_STAT(m) …
static const struct sxgbe_stats sxgbe_gstrings_stats[] = …;
#define SXGBE_STATS_LEN …
static int sxgbe_get_eee(struct net_device *dev,
struct ethtool_keee *edata)
{ … }
static int sxgbe_set_eee(struct net_device *dev,
struct ethtool_keee *edata)
{ … }
static void sxgbe_getdrvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{ … }
static u32 sxgbe_getmsglevel(struct net_device *dev)
{ … }
static void sxgbe_setmsglevel(struct net_device *dev, u32 level)
{ … }
static void sxgbe_get_strings(struct net_device *dev, u32 stringset, u8 *data)
{ … }
static int sxgbe_get_sset_count(struct net_device *netdev, int sset)
{ … }
static void sxgbe_get_ethtool_stats(struct net_device *dev,
struct ethtool_stats *dummy, u64 *data)
{ … }
static void sxgbe_get_channels(struct net_device *dev,
struct ethtool_channels *channel)
{ … }
static u32 sxgbe_riwt2usec(u32 riwt, struct sxgbe_priv_data *priv)
{ … }
static u32 sxgbe_usec2riwt(u32 usec, struct sxgbe_priv_data *priv)
{ … }
static int sxgbe_get_coalesce(struct net_device *dev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int sxgbe_set_coalesce(struct net_device *dev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int sxgbe_get_rss_hash_opts(struct sxgbe_priv_data *priv,
struct ethtool_rxnfc *cmd)
{ … }
static int sxgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
u32 *rule_locs)
{ … }
static int sxgbe_set_rss_hash_opt(struct sxgbe_priv_data *priv,
struct ethtool_rxnfc *cmd)
{ … }
static int sxgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
{ … }
static void sxgbe_get_regs(struct net_device *dev,
struct ethtool_regs *regs, void *space)
{ … }
static int sxgbe_get_regs_len(struct net_device *dev)
{ … }
static const struct ethtool_ops sxgbe_ethtool_ops = …;
void sxgbe_set_ethtool_ops(struct net_device *netdev)
{ … }