aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFuyun Liang <liangfuyun1@huawei.com>2018-01-26 06:31:25 -0500
committerDavid S. Miller <davem@davemloft.net>2018-01-26 10:58:30 -0500
commit79eee41085414c25c788cd98b78e8776551d837f (patch)
tree56f4e6b1842868f2a6770bdeccfd276a94d0269a
parentad31c7320140fc2fad259d81c3340901b6225f03 (diff)
net: hns3: add int_gl_idx setup for VF
Just like PF, if the int_gl_idx of VF does not be set, the default interrupt coalesce index of VF is 0. But it should be GL1 for TX queues and GL0 for RX queues. This patch adds the int_gl_idx setup for VF. Fixes: 200ecda42598 ("net: hns3: Add HNS3 VF HCL(Hardware Compatibility Layer) Support") 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>
-rw-r--r--drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c8
-rw-r--r--drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c5
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index 96f453ff84b5..f38fc5ce9f51 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -116,6 +116,9 @@ static int hclge_get_ring_chain_from_mbx(
116 hnae_set_bit(ring_chain->flag, HNAE3_RING_TYPE_B, req->msg[3]); 116 hnae_set_bit(ring_chain->flag, HNAE3_RING_TYPE_B, req->msg[3]);
117 ring_chain->tqp_index = 117 ring_chain->tqp_index =
118 hclge_get_queue_id(vport->nic.kinfo.tqp[req->msg[4]]); 118 hclge_get_queue_id(vport->nic.kinfo.tqp[req->msg[4]]);
119 hnae_set_field(ring_chain->int_gl_idx, HCLGE_INT_GL_IDX_M,
120 HCLGE_INT_GL_IDX_S,
121 req->msg[5]);
119 122
120 cur_chain = ring_chain; 123 cur_chain = ring_chain;
121 124
@@ -133,6 +136,11 @@ static int hclge_get_ring_chain_from_mbx(
133 [req->msg[HCLGE_RING_NODE_VARIABLE_NUM * i + 136 [req->msg[HCLGE_RING_NODE_VARIABLE_NUM * i +
134 HCLGE_RING_MAP_MBX_BASIC_MSG_NUM + 1]]); 137 HCLGE_RING_MAP_MBX_BASIC_MSG_NUM + 1]]);
135 138
139 hnae_set_field(new_chain->int_gl_idx, HCLGE_INT_GL_IDX_M,
140 HCLGE_INT_GL_IDX_S,
141 req->msg[HCLGE_RING_NODE_VARIABLE_NUM * i +
142 HCLGE_RING_MAP_MBX_BASIC_MSG_NUM + 2]);
143
136 cur_chain->next = new_chain; 144 cur_chain->next = new_chain;
137 cur_chain = new_chain; 145 cur_chain = new_chain;
138 } 146 }
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 3d2bc9a971fa..0d89965f7928 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -565,6 +565,11 @@ static int hclgevf_bind_ring_to_vector(struct hnae3_handle *handle, bool en,
565 hnae_get_bit(node->flag, HNAE3_RING_TYPE_B); 565 hnae_get_bit(node->flag, HNAE3_RING_TYPE_B);
566 req->msg[HCLGEVF_RING_NODE_VARIABLE_NUM * i + 1] = 566 req->msg[HCLGEVF_RING_NODE_VARIABLE_NUM * i + 1] =
567 node->tqp_index; 567 node->tqp_index;
568 req->msg[HCLGEVF_RING_NODE_VARIABLE_NUM * i + 2] =
569 hnae_get_field(node->int_gl_idx,
570 HNAE3_RING_GL_IDX_M,
571 HNAE3_RING_GL_IDX_S);
572
568 if (i == (HCLGE_MBX_VF_MSG_DATA_NUM - 573 if (i == (HCLGE_MBX_VF_MSG_DATA_NUM -
569 HCLGEVF_RING_MAP_MBX_BASIC_MSG_NUM) / 574 HCLGEVF_RING_MAP_MBX_BASIC_MSG_NUM) /
570 HCLGEVF_RING_NODE_VARIABLE_NUM) { 575 HCLGEVF_RING_NODE_VARIABLE_NUM) {