#include "aq_ethtool.h"
#include "aq_nic.h"
#include "aq_vec.h"
#include "aq_ptp.h"
#include "aq_filters.h"
#include "aq_macsec.h"
#include "aq_main.h"
#include <linux/linkmode.h>
#include <linux/ptp_clock_kernel.h>
static void aq_ethtool_get_regs(struct net_device *ndev,
struct ethtool_regs *regs, void *p)
{ … }
static int aq_ethtool_get_regs_len(struct net_device *ndev)
{ … }
static u32 aq_ethtool_get_link(struct net_device *ndev)
{ … }
static int aq_ethtool_get_link_ksettings(struct net_device *ndev,
struct ethtool_link_ksettings *cmd)
{ … }
static int
aq_ethtool_set_link_ksettings(struct net_device *ndev,
const struct ethtool_link_ksettings *cmd)
{ … }
static const char aq_ethtool_stat_names[][ETH_GSTRING_LEN] = …;
static const char * const aq_ethtool_queue_rx_stat_names[] = …;
static const char * const aq_ethtool_queue_tx_stat_names[] = …;
#if IS_ENABLED(CONFIG_MACSEC)
static const char aq_macsec_stat_names[][ETH_GSTRING_LEN] = …;
static const char * const aq_macsec_txsc_stat_names[] = …;
static const char * const aq_macsec_txsa_stat_names[] = …;
static const char * const aq_macsec_rxsa_stat_names[] = …;
#endif
static const char aq_ethtool_priv_flag_names[][ETH_GSTRING_LEN] = …;
static u32 aq_ethtool_n_stats(struct net_device *ndev)
{ … }
static void aq_ethtool_stats(struct net_device *ndev,
struct ethtool_stats *stats, u64 *data)
{ … }
static void aq_ethtool_get_drvinfo(struct net_device *ndev,
struct ethtool_drvinfo *drvinfo)
{ … }
static void aq_ethtool_get_strings(struct net_device *ndev,
u32 stringset, u8 *data)
{ … }
static int aq_ethtool_set_phys_id(struct net_device *ndev,
enum ethtool_phys_id_state state)
{ … }
static int aq_ethtool_get_sset_count(struct net_device *ndev, int stringset)
{ … }
static u32 aq_ethtool_get_rss_indir_size(struct net_device *ndev)
{ … }
static u32 aq_ethtool_get_rss_key_size(struct net_device *ndev)
{ … }
static int aq_ethtool_get_rss(struct net_device *ndev,
struct ethtool_rxfh_param *rxfh)
{ … }
static int aq_ethtool_set_rss(struct net_device *netdev,
struct ethtool_rxfh_param *rxfh,
struct netlink_ext_ack *extack)
{ … }
static int aq_ethtool_get_rxnfc(struct net_device *ndev,
struct ethtool_rxnfc *cmd,
u32 *rule_locs)
{ … }
static int aq_ethtool_set_rxnfc(struct net_device *ndev,
struct ethtool_rxnfc *cmd)
{ … }
static int aq_ethtool_get_coalesce(struct net_device *ndev,
struct ethtool_coalesce *coal,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int aq_ethtool_set_coalesce(struct net_device *ndev,
struct ethtool_coalesce *coal,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static void aq_ethtool_get_wol(struct net_device *ndev,
struct ethtool_wolinfo *wol)
{ … }
static int aq_ethtool_set_wol(struct net_device *ndev,
struct ethtool_wolinfo *wol)
{ … }
static int aq_ethtool_get_ts_info(struct net_device *ndev,
struct kernel_ethtool_ts_info *info)
{ … }
static void eee_mask_to_ethtool_mask(unsigned long *mode, u32 speed)
{ … }
static int aq_ethtool_get_eee(struct net_device *ndev, struct ethtool_keee *eee)
{ … }
static int aq_ethtool_set_eee(struct net_device *ndev, struct ethtool_keee *eee)
{ … }
static int aq_ethtool_nway_reset(struct net_device *ndev)
{ … }
static void aq_ethtool_get_pauseparam(struct net_device *ndev,
struct ethtool_pauseparam *pause)
{ … }
static int aq_ethtool_set_pauseparam(struct net_device *ndev,
struct ethtool_pauseparam *pause)
{ … }
static void aq_get_ringparam(struct net_device *ndev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static int aq_set_ringparam(struct net_device *ndev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static u32 aq_get_msg_level(struct net_device *ndev)
{ … }
static void aq_set_msg_level(struct net_device *ndev, u32 data)
{ … }
static u32 aq_ethtool_get_priv_flags(struct net_device *ndev)
{ … }
static int aq_ethtool_set_priv_flags(struct net_device *ndev, u32 flags)
{ … }
static int aq_ethtool_get_phy_tunable(struct net_device *ndev,
const struct ethtool_tunable *tuna, void *data)
{ … }
static int aq_ethtool_set_phy_tunable(struct net_device *ndev,
const struct ethtool_tunable *tuna, const void *data)
{ … }
const struct ethtool_ops aq_ethtool_ops = …;