Lines Matching refs:hdev

8 static void hclgevf_reset_mbx_resp_status(struct hclgevf_dev *hdev)  in hclgevf_reset_mbx_resp_status()  argument
13 hdev->mbx_resp.received_resp = false; in hclgevf_reset_mbx_resp_status()
14 hdev->mbx_resp.origin_mbx_msg = 0; in hclgevf_reset_mbx_resp_status()
15 hdev->mbx_resp.resp_status = 0; in hclgevf_reset_mbx_resp_status()
16 memset(hdev->mbx_resp.additional_info, 0, HCLGE_MBX_MAX_RESP_DATA_SIZE); in hclgevf_reset_mbx_resp_status()
25 static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1, in hclgevf_get_mbx_resp() argument
35 dev_err(&hdev->pdev->dev, in hclgevf_get_mbx_resp()
42 while ((!hdev->mbx_resp.received_resp) && (i < HCLGEVF_MAX_TRY_TIMES)) { in hclgevf_get_mbx_resp()
43 if (test_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state)) in hclgevf_get_mbx_resp()
51 dev_err(&hdev->pdev->dev, in hclgevf_get_mbx_resp()
53 code0, code1, hdev->mbx_resp.received_resp, i); in hclgevf_get_mbx_resp()
57 mbx_resp = &hdev->mbx_resp; in hclgevf_get_mbx_resp()
67 hclgevf_reset_mbx_resp_status(hdev); in hclgevf_get_mbx_resp()
70 dev_err(&hdev->pdev->dev, in hclgevf_get_mbx_resp()
73 dev_err(&hdev->pdev->dev, in hclgevf_get_mbx_resp()
82 int hclgevf_send_mbx_msg(struct hclgevf_dev *hdev, u16 code, u16 subcode, in hclgevf_send_mbx_msg() argument
94 dev_err(&hdev->pdev->dev, in hclgevf_send_mbx_msg()
110 mutex_lock(&hdev->mbx_resp.mbx_mutex); in hclgevf_send_mbx_msg()
111 hclgevf_reset_mbx_resp_status(hdev); in hclgevf_send_mbx_msg()
112 status = hclgevf_cmd_send(&hdev->hw, &desc, 1); in hclgevf_send_mbx_msg()
114 dev_err(&hdev->pdev->dev, in hclgevf_send_mbx_msg()
117 mutex_unlock(&hdev->mbx_resp.mbx_mutex); in hclgevf_send_mbx_msg()
121 status = hclgevf_get_mbx_resp(hdev, code, subcode, resp_data, in hclgevf_send_mbx_msg()
123 mutex_unlock(&hdev->mbx_resp.mbx_mutex); in hclgevf_send_mbx_msg()
126 status = hclgevf_cmd_send(&hdev->hw, &desc, 1); in hclgevf_send_mbx_msg()
128 dev_err(&hdev->pdev->dev, in hclgevf_send_mbx_msg()
145 void hclgevf_mbx_handler(struct hclgevf_dev *hdev) in hclgevf_mbx_handler() argument
156 resp = &hdev->mbx_resp; in hclgevf_mbx_handler()
157 crq = &hdev->hw.cmq.crq; in hclgevf_mbx_handler()
159 while (!hclgevf_cmd_crq_empty(&hdev->hw)) { in hclgevf_mbx_handler()
160 if (test_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state)) { in hclgevf_mbx_handler()
161 dev_info(&hdev->pdev->dev, "vf crq need init\n"); in hclgevf_mbx_handler()
170 dev_warn(&hdev->pdev->dev, in hclgevf_mbx_handler()
189 dev_warn(&hdev->pdev->dev, in hclgevf_mbx_handler()
213 hdev->mbx_event_pending = true; in hclgevf_mbx_handler()
218 if (atomic_read(&hdev->arq.count) >= in hclgevf_mbx_handler()
220 dev_warn(&hdev->pdev->dev, in hclgevf_mbx_handler()
227 msg_q = hdev->arq.msg_q[hdev->arq.tail]; in hclgevf_mbx_handler()
230 hclge_mbx_tail_ptr_move_arq(hdev->arq); in hclgevf_mbx_handler()
231 atomic_inc(&hdev->arq.count); in hclgevf_mbx_handler()
233 hclgevf_mbx_task_schedule(hdev); in hclgevf_mbx_handler()
237 dev_err(&hdev->pdev->dev, in hclgevf_mbx_handler()
247 hclgevf_write_dev(&hdev->hw, HCLGEVF_NIC_CRQ_HEAD_REG, in hclgevf_mbx_handler()
251 void hclgevf_mbx_async_handler(struct hclgevf_dev *hdev) in hclgevf_mbx_async_handler() argument
264 hdev->mbx_event_pending = false; in hclgevf_mbx_async_handler()
266 tail = hdev->arq.tail; in hclgevf_mbx_async_handler()
269 while (tail != hdev->arq.head) { in hclgevf_mbx_async_handler()
270 if (test_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state)) { in hclgevf_mbx_async_handler()
271 dev_info(&hdev->pdev->dev, in hclgevf_mbx_async_handler()
276 msg_q = hdev->arq.msg_q[hdev->arq.head]; in hclgevf_mbx_async_handler()
285 hclgevf_update_link_status(hdev, link_status); in hclgevf_mbx_async_handler()
286 hclgevf_update_speed_duplex(hdev, speed, duplex); in hclgevf_mbx_async_handler()
292 memcpy(&hdev->hw.mac.supported, &msg_q[2], in hclgevf_mbx_async_handler()
295 memcpy(&hdev->hw.mac.advertising, &msg_q[2], in hclgevf_mbx_async_handler()
305 set_bit(reset_type, &hdev->reset_pending); in hclgevf_mbx_async_handler()
306 set_bit(HCLGEVF_RESET_PENDING, &hdev->reset_state); in hclgevf_mbx_async_handler()
307 hclgevf_reset_task_schedule(hdev); in hclgevf_mbx_async_handler()
313 hclgevf_update_port_base_vlan_info(hdev, state, in hclgevf_mbx_async_handler()
317 dev_err(&hdev->pdev->dev, in hclgevf_mbx_async_handler()
323 hclge_mbx_head_ptr_move_arq(hdev->arq); in hclgevf_mbx_async_handler()
324 atomic_dec(&hdev->arq.count); in hclgevf_mbx_async_handler()
325 msg_q = hdev->arq.msg_q[hdev->arq.head]; in hclgevf_mbx_async_handler()