diff options
author | 2018-01-12 16:23:10 +0800 | |
---|---|---|
committer | 2018-01-12 10:12:32 -0500 | |
commit | 434776a5fae2633ab524eb7dceb4d105c40852bb (patch) | |
tree | 20b5986ad445bf5f12e80644d81a487425f9f0ad /drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | |
parent | net: hns3: add ethtool_ops.get_coalesce support to PF (diff) | |
download | linux-dev-434776a5fae2633ab524eb7dceb4d105c40852bb.tar.xz linux-dev-434776a5fae2633ab524eb7dceb4d105c40852bb.zip |
net: hns3: add ethtool_ops.set_coalesce support to PF
This patch adds ethtool_ops.set_coalesce support to PF.
Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/hisilicon/hns3/hns3_enet.h')
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h index 24f610970cb8..7adbda8846ae 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h @@ -451,11 +451,15 @@ enum hns3_link_mode_bits { HNS3_LM_COUNT = 15 }; +#define HNS3_INT_GL_MAX 0x1FE0 #define HNS3_INT_GL_50K 0x000A #define HNS3_INT_GL_20K 0x0019 #define HNS3_INT_GL_18K 0x001B #define HNS3_INT_GL_8K 0x003E +#define HNS3_INT_RL_MAX 0x00EC +#define HNS3_INT_RL_ENABLE_MASK 0x40 + struct hns3_enet_ring_group { /* array of pointers to rings */ struct hns3_enet_ring *ring; @@ -595,6 +599,12 @@ static inline void hns3_write_reg(void __iomem *base, u32 reg, u32 value) #define hns3_get_handle(ndev) \ (((struct hns3_nic_priv *)netdev_priv(ndev))->ae_handle) +#define hns3_gl_usec_to_reg(int_gl) (int_gl >> 1) +#define hns3_gl_round_down(int_gl) round_down(int_gl, 2) + +#define hns3_rl_usec_to_reg(int_rl) (int_rl >> 2) +#define hns3_rl_round_down(int_rl) round_down(int_rl, 4) + void hns3_ethtool_set_ops(struct net_device *netdev); int hns3_set_channels(struct net_device *netdev, struct ethtool_channels *ch); @@ -607,6 +617,13 @@ int hns3_clean_rx_ring( struct hns3_enet_ring *ring, int budget, void (*rx_fn)(struct hns3_enet_ring *, struct sk_buff *)); +void hns3_set_vector_coalesce_rx_gl(struct hns3_enet_tqp_vector *tqp_vector, + u32 gl_value); +void hns3_set_vector_coalesce_tx_gl(struct hns3_enet_tqp_vector *tqp_vector, + u32 gl_value); +void hns3_set_vector_coalesce_rl(struct hns3_enet_tqp_vector *tqp_vector, + u32 rl_value); + #ifdef CONFIG_HNS3_DCB void hns3_dcbnl_setup(struct hnae3_handle *handle); #else |