115885Sjulian/* SPDX-License-Identifier: GPL-2.0 */
215885Sjulian/* Copyright (c) 2015 - 2023 Beijing WangXun Technology Co., Ltd. */
315885Sjulian
415885Sjulian#ifndef _WX_ETHTOOL_H_
515885Sjulian#define _WX_ETHTOOL_H_
615885Sjulian
715885Sjulianint wx_get_sset_count(struct net_device *netdev, int sset);
815885Sjulianvoid wx_get_strings(struct net_device *netdev, u32 stringset, u8 *data);
915885Sjulianvoid wx_get_ethtool_stats(struct net_device *netdev,
1015885Sjulian			  struct ethtool_stats *stats, u64 *data);
1115885Sjulianvoid wx_get_mac_stats(struct net_device *netdev,
1215885Sjulian		      struct ethtool_eth_mac_stats *mac_stats);
1315885Sjulianvoid wx_get_pause_stats(struct net_device *netdev,
1415885Sjulian			struct ethtool_pause_stats *stats);
1515885Sjulianvoid wx_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *info);
1615885Sjulianint wx_nway_reset(struct net_device *netdev);
1715885Sjulianint wx_get_link_ksettings(struct net_device *netdev,
1815885Sjulian			  struct ethtool_link_ksettings *cmd);
1915885Sjulianint wx_set_link_ksettings(struct net_device *netdev,
2015885Sjulian			  const struct ethtool_link_ksettings *cmd);
2115885Sjulianvoid wx_get_pauseparam(struct net_device *netdev,
2215885Sjulian		       struct ethtool_pauseparam *pause);
2315885Sjulianint wx_set_pauseparam(struct net_device *netdev,
2415885Sjulian		      struct ethtool_pauseparam *pause);
2515885Sjulianvoid wx_get_ringparam(struct net_device *netdev,
2615885Sjulian		      struct ethtool_ringparam *ring,
2715885Sjulian		      struct kernel_ethtool_ringparam *kernel_ring,
2817967Sjulian		      struct netlink_ext_ack *extack);
2917967Sjulianint wx_get_coalesce(struct net_device *netdev,
3017254Sjulian		    struct ethtool_coalesce *ec,
3117254Sjulian		    struct kernel_ethtool_coalesce *kernel_coal,
3217254Sjulian		    struct netlink_ext_ack *extack);
3317254Sjulianint wx_set_coalesce(struct net_device *netdev,
3417254Sjulian		    struct ethtool_coalesce *ec,
3517254Sjulian		    struct kernel_ethtool_coalesce *kernel_coal,
3615885Sjulian		    struct netlink_ext_ack *extack);
3715885Sjulianvoid wx_get_channels(struct net_device *dev,
3815885Sjulian		     struct ethtool_channels *ch);
3915885Sjulianint wx_set_channels(struct net_device *dev,
4015885Sjulian		    struct ethtool_channels *ch);
4115885Sjulianu32 wx_get_msglevel(struct net_device *netdev);
4215885Sjulianvoid wx_set_msglevel(struct net_device *netdev, u32 data);
4315885Sjulian#endif /* _WX_ETHTOOL_H_ */
4415885Sjulian