xref: /openbmc/linux/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1edb40bbcSGuangbin Huang /* SPDX-License-Identifier: GPL-2.0+ */
2edb40bbcSGuangbin Huang // Copyright (c) 2021 Hisilicon Limited.
3edb40bbcSGuangbin Huang 
4edb40bbcSGuangbin Huang #ifndef __HNS3_ETHTOOL_H
5edb40bbcSGuangbin Huang #define __HNS3_ETHTOOL_H
6edb40bbcSGuangbin Huang 
7edb40bbcSGuangbin Huang #include <linux/ethtool.h>
8edb40bbcSGuangbin Huang #include <linux/netdevice.h>
9edb40bbcSGuangbin Huang 
10edb40bbcSGuangbin Huang struct hns3_stats {
11edb40bbcSGuangbin Huang 	char stats_string[ETH_GSTRING_LEN];
12edb40bbcSGuangbin Huang 	int stats_offset;
13edb40bbcSGuangbin Huang };
14edb40bbcSGuangbin Huang 
15edb40bbcSGuangbin Huang struct hns3_sfp_type {
16edb40bbcSGuangbin Huang 	u8 type;
17edb40bbcSGuangbin Huang 	u8 ext_type;
18edb40bbcSGuangbin Huang };
19edb40bbcSGuangbin Huang 
20edb40bbcSGuangbin Huang struct hns3_pflag_desc {
21edb40bbcSGuangbin Huang 	char name[ETH_GSTRING_LEN];
22edb40bbcSGuangbin Huang 	void (*handler)(struct net_device *netdev, bool enable);
23edb40bbcSGuangbin Huang };
24edb40bbcSGuangbin Huang 
25f5c2b9f0SGuangbin Huang struct hns3_ethtool_link_ext_state_mapping {
26f5c2b9f0SGuangbin Huang 	u32 status_code;
27f5c2b9f0SGuangbin Huang 	enum ethtool_link_ext_state link_ext_state;
28f5c2b9f0SGuangbin Huang 	u8 link_ext_substate;
29f5c2b9f0SGuangbin Huang };
30f5c2b9f0SGuangbin Huang 
31*07fdc163SHao Chen struct hns3_ring_param {
32*07fdc163SHao Chen 	u32 tx_desc_num;
33*07fdc163SHao Chen 	u32 rx_desc_num;
34*07fdc163SHao Chen 	u32 rx_buf_len;
35*07fdc163SHao Chen };
36*07fdc163SHao Chen 
37edb40bbcSGuangbin Huang #endif
38