• Home
  • Raw
  • Download

Lines Matching refs:vf

131 	struct qlcnic_vf_info *vf;  in qlcnic_sriov_init()  local
172 vf = &sriov->vf_info[i]; in qlcnic_sriov_init()
173 vf->adapter = adapter; in qlcnic_sriov_init()
174 vf->pci_func = qlcnic_sriov_virtid_fn(adapter, i); in qlcnic_sriov_init()
175 mutex_init(&vf->send_cmd_lock); in qlcnic_sriov_init()
176 INIT_LIST_HEAD(&vf->rcv_act.wait_list); in qlcnic_sriov_init()
177 INIT_LIST_HEAD(&vf->rcv_pend.wait_list); in qlcnic_sriov_init()
178 spin_lock_init(&vf->rcv_act.lock); in qlcnic_sriov_init()
179 spin_lock_init(&vf->rcv_pend.lock); in qlcnic_sriov_init()
180 init_completion(&vf->ch_free_cmpl); in qlcnic_sriov_init()
239 struct qlcnic_vf_info *vf; in __qlcnic_sriov_cleanup() local
249 vf = &sriov->vf_info[i]; in __qlcnic_sriov_cleanup()
250 qlcnic_sriov_cleanup_list(&vf->rcv_pend); in __qlcnic_sriov_cleanup()
251 cancel_work_sync(&vf->trans_work); in __qlcnic_sriov_cleanup()
252 qlcnic_sriov_cleanup_list(&vf->rcv_act); in __qlcnic_sriov_cleanup()
834 static int qlcnic_sriov_clear_trans(struct qlcnic_vf_info *vf, in qlcnic_sriov_clear_trans() argument
842 t_list = &vf->rcv_act; in qlcnic_sriov_clear_trans()
851 while (test_and_set_bit(QLC_BC_VF_SEND, &vf->state)) in qlcnic_sriov_clear_trans()
853 vf->send_cmd = NULL; in qlcnic_sriov_clear_trans()
854 clear_bit(QLC_BC_VF_SEND, &vf->state); in qlcnic_sriov_clear_trans()
860 struct qlcnic_vf_info *vf, in qlcnic_sriov_schedule_bc_cmd() argument
863 if (test_bit(QLC_BC_VF_FLR, &vf->state) || in qlcnic_sriov_schedule_bc_cmd()
864 vf->adapter->need_fw_reset) in qlcnic_sriov_schedule_bc_cmd()
867 INIT_WORK(&vf->trans_work, func); in qlcnic_sriov_schedule_bc_cmd()
868 queue_work(sriov->bc.bc_trans_wq, &vf->trans_work); in qlcnic_sriov_schedule_bc_cmd()
904 struct qlcnic_vf_info *vf = trans->vf; in qlcnic_sriov_wait_for_channel_free() local
905 struct completion *cmpl = &vf->ch_free_cmpl; in qlcnic_sriov_wait_for_channel_free()
912 clear_bit(QLC_BC_VF_CHANNEL, &vf->state); in qlcnic_sriov_wait_for_channel_free()
933 static int __qlcnic_sriov_issue_bc_post(struct qlcnic_vf_info *vf) in __qlcnic_sriov_issue_bc_post() argument
939 if (!test_and_set_bit(QLC_BC_VF_CHANNEL, &vf->state)) { in __qlcnic_sriov_issue_bc_post()
951 struct qlcnic_vf_info *vf = trans->vf; in qlcnic_sriov_issue_bc_post() local
957 if (__qlcnic_sriov_issue_bc_post(vf)) in qlcnic_sriov_issue_bc_post()
976 ret = qlcnic_sriov_post_bc_msg(vf->adapter, hdr, pay, in qlcnic_sriov_issue_bc_post()
982 struct qlcnic_vf_info *vf, u8 type) in __qlcnic_sriov_send_bc_msg() argument
988 if (test_bit(QLC_BC_VF_FLR, &vf->state) || in __qlcnic_sriov_send_bc_msg()
989 vf->adapter->need_fw_reset) in __qlcnic_sriov_send_bc_msg()
1011 clear_bit(QLC_BC_VF_CHANNEL, &vf->state); in __qlcnic_sriov_send_bc_msg()
1024 struct qlcnic_vf_info *vf; in qlcnic_sriov_send_bc_cmd() local
1030 vf = &adapter->ahw->sriov->vf_info[index]; in qlcnic_sriov_send_bc_cmd()
1031 trans->vf = vf; in qlcnic_sriov_send_bc_cmd()
1034 if (!test_bit(QLC_BC_VF_STATE, &vf->state)) { in qlcnic_sriov_send_bc_cmd()
1042 mutex_lock(&vf->send_cmd_lock); in qlcnic_sriov_send_bc_cmd()
1043 vf->send_cmd = trans; in qlcnic_sriov_send_bc_cmd()
1044 err = __qlcnic_sriov_send_bc_msg(trans, vf, QLC_BC_COMMAND); in qlcnic_sriov_send_bc_cmd()
1045 qlcnic_sriov_clear_trans(vf, trans, QLC_BC_COMMAND); in qlcnic_sriov_send_bc_cmd()
1046 mutex_unlock(&vf->send_cmd_lock); in qlcnic_sriov_send_bc_cmd()
1066 struct qlcnic_vf_info *vf = container_of(work, struct qlcnic_vf_info, in qlcnic_sriov_process_bc_cmd() local
1069 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_process_bc_cmd()
1076 if (test_bit(QLC_BC_VF_FLR, &vf->state)) in qlcnic_sriov_process_bc_cmd()
1079 trans = list_first_entry(&vf->rcv_act.wait_list, in qlcnic_sriov_process_bc_cmd()
1081 adapter = vf->adapter; in qlcnic_sriov_process_bc_cmd()
1089 __qlcnic_sriov_send_bc_msg(trans, vf, QLC_BC_RESPONSE); in qlcnic_sriov_process_bc_cmd()
1093 req = qlcnic_sriov_clear_trans(vf, trans, QLC_BC_RESPONSE); in qlcnic_sriov_process_bc_cmd()
1096 qlcnic_sriov_schedule_bc_cmd(adapter->ahw->sriov, vf, in qlcnic_sriov_process_bc_cmd()
1101 struct qlcnic_vf_info *vf) in qlcnic_sriov_handle_bc_resp() argument
1106 if (test_and_set_bit(QLC_BC_VF_SEND, &vf->state)) in qlcnic_sriov_handle_bc_resp()
1109 trans = vf->send_cmd; in qlcnic_sriov_handle_bc_resp()
1119 qlcnic_sriov_pull_bc_msg(vf->adapter, in qlcnic_sriov_handle_bc_resp()
1129 clear_bit(QLC_BC_VF_SEND, &vf->state); in qlcnic_sriov_handle_bc_resp()
1133 struct qlcnic_vf_info *vf, in __qlcnic_sriov_add_act_list() argument
1136 struct qlcnic_trans_list *t_list = &vf->rcv_act; in __qlcnic_sriov_add_act_list()
1141 qlcnic_sriov_schedule_bc_cmd(sriov, vf, in __qlcnic_sriov_add_act_list()
1147 struct qlcnic_vf_info *vf, in qlcnic_sriov_add_act_list() argument
1150 struct qlcnic_trans_list *t_list = &vf->rcv_act; in qlcnic_sriov_add_act_list()
1154 __qlcnic_sriov_add_act_list(sriov, vf, trans); in qlcnic_sriov_add_act_list()
1161 struct qlcnic_vf_info *vf, in qlcnic_sriov_handle_pending_trans() argument
1169 spin_lock(&vf->rcv_pend.lock); in qlcnic_sriov_handle_pending_trans()
1170 if (vf->rcv_pend.count > 0) { in qlcnic_sriov_handle_pending_trans()
1171 list_for_each(node, &vf->rcv_pend.wait_list) { in qlcnic_sriov_handle_pending_trans()
1184 qlcnic_sriov_pull_bc_msg(vf->adapter, in qlcnic_sriov_handle_pending_trans()
1190 vf->rcv_pend.count--; in qlcnic_sriov_handle_pending_trans()
1195 spin_unlock(&vf->rcv_pend.lock); in qlcnic_sriov_handle_pending_trans()
1198 if (qlcnic_sriov_add_act_list(sriov, vf, trans)) in qlcnic_sriov_handle_pending_trans()
1206 struct qlcnic_vf_info *vf) in qlcnic_sriov_handle_bc_cmd() argument
1209 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_handle_bc_cmd()
1218 if (!test_bit(QLC_BC_VF_STATE, &vf->state) && in qlcnic_sriov_handle_bc_cmd()
1224 qlcnic_sriov_handle_pending_trans(sriov, vf, hdr); in qlcnic_sriov_handle_bc_cmd()
1252 qlcnic_sriov_pull_bc_msg(vf->adapter, in qlcnic_sriov_handle_bc_cmd()
1256 trans->func_id = vf->pci_func; in qlcnic_sriov_handle_bc_cmd()
1257 trans->vf = vf; in qlcnic_sriov_handle_bc_cmd()
1261 if (qlcnic_sriov_soft_flr_check(adapter, trans, vf)) in qlcnic_sriov_handle_bc_cmd()
1265 if (qlcnic_sriov_add_act_list(sriov, vf, trans)) { in qlcnic_sriov_handle_bc_cmd()
1270 spin_lock(&vf->rcv_pend.lock); in qlcnic_sriov_handle_bc_cmd()
1271 list_add_tail(&trans->list, &vf->rcv_pend.wait_list); in qlcnic_sriov_handle_bc_cmd()
1272 vf->rcv_pend.count++; in qlcnic_sriov_handle_bc_cmd()
1273 spin_unlock(&vf->rcv_pend.lock); in qlcnic_sriov_handle_bc_cmd()
1278 struct qlcnic_vf_info *vf) in qlcnic_sriov_handle_msg_event() argument
1285 ptr[i - 2] = readl(QLCNIC_MBX_FW(vf->adapter->ahw, i)); in qlcnic_sriov_handle_msg_event()
1290 qlcnic_sriov_handle_bc_cmd(sriov, &hdr, vf); in qlcnic_sriov_handle_msg_event()
1293 qlcnic_sriov_handle_bc_resp(&hdr, vf); in qlcnic_sriov_handle_msg_event()
1299 struct qlcnic_vf_info *vf) in qlcnic_sriov_handle_flr_event() argument
1301 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_handle_flr_event()
1304 qlcnic_sriov_pf_handle_flr(sriov, vf); in qlcnic_sriov_handle_flr_event()
1312 struct qlcnic_vf_info *vf; in qlcnic_sriov_handle_bc_event() local
1324 vf = &sriov->vf_info[index]; in qlcnic_sriov_handle_bc_event()
1325 vf->pci_func = pci_func; in qlcnic_sriov_handle_bc_event()
1328 complete(&vf->ch_free_cmpl); in qlcnic_sriov_handle_bc_event()
1331 qlcnic_sriov_handle_flr_event(sriov, vf); in qlcnic_sriov_handle_bc_event()
1336 qlcnic_sriov_handle_msg_event(sriov, vf); in qlcnic_sriov_handle_bc_event()
1374 clear_bit(QLC_BC_VF_CHANNEL, &trans->vf->state); in qlcnic_sriov_retry_bc_cmd()
1459 struct qlcnic_vf_info *vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_channel_cfg_cmd() local
1477 set_bit(QLC_BC_VF_STATE, &vf->state); in qlcnic_sriov_channel_cfg_cmd()
1479 clear_bit(QLC_BC_VF_STATE, &vf->state); in qlcnic_sriov_channel_cfg_cmd()