Lines Matching refs:adapter
32 static int qlcnic_sriov_pf_set_vport_info(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_set_vport_info() argument
39 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO)) in qlcnic_sriov_pf_set_vport_info()
58 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_pf_set_vport_info()
60 dev_err(&adapter->pdev->dev, in qlcnic_sriov_pf_set_vport_info()
67 static int qlcnic_sriov_pf_cal_res_limit(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_cal_res_limit() argument
70 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_cal_res_limit()
77 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, func); in qlcnic_sriov_pf_cal_res_limit()
86 if (qlcnic_83xx_pf_check(adapter)) in qlcnic_sriov_pf_cal_res_limit()
91 if (adapter->ahw->pci_func == func) { in qlcnic_sriov_pf_cal_res_limit()
105 id = qlcnic_sriov_func_to_index(adapter, func); in qlcnic_sriov_pf_cal_res_limit()
129 ret = qlcnic_sriov_pf_set_vport_info(adapter, info, vpid); in qlcnic_sriov_pf_cal_res_limit()
136 static void qlcnic_sriov_pf_set_ff_max_res(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_set_ff_max_res() argument
139 struct qlcnic_resources *ff_max = &adapter->ahw->sriov->ff_max; in qlcnic_sriov_pf_set_ff_max_res()
155 static void qlcnic_sriov_set_vf_max_vlan(struct qlcnic_adapter *adapter, in qlcnic_sriov_set_vf_max_vlan() argument
158 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_vf_max_vlan()
167 if (qlcnic_83xx_pf_check(adapter)) in qlcnic_sriov_set_vf_max_vlan()
170 netdev_info(adapter->netdev, "Max Guest VLANs supported per VF = %d\n", in qlcnic_sriov_set_vf_max_vlan()
174 static int qlcnic_sriov_get_pf_info(struct qlcnic_adapter *adapter, in qlcnic_sriov_get_pf_info() argument
180 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_NIC_INFO)) in qlcnic_sriov_get_pf_info()
184 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_get_pf_info()
186 dev_err(&adapter->pdev->dev, in qlcnic_sriov_get_pf_info()
207 qlcnic_sriov_set_vf_max_vlan(adapter, npar_info); in qlcnic_sriov_get_pf_info()
208 qlcnic_sriov_pf_set_ff_max_res(adapter, npar_info); in qlcnic_sriov_get_pf_info()
209 dev_info(&adapter->pdev->dev, in qlcnic_sriov_get_pf_info()
232 static void qlcnic_sriov_pf_reset_vport_handle(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_reset_vport_handle() argument
235 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_reset_vport_handle()
239 if (adapter->ahw->pci_func == func) { in qlcnic_sriov_pf_reset_vport_handle()
242 index = qlcnic_sriov_func_to_index(adapter, func); in qlcnic_sriov_pf_reset_vport_handle()
250 static void qlcnic_sriov_pf_set_vport_handle(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_set_vport_handle() argument
253 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_set_vport_handle()
257 if (adapter->ahw->pci_func == func) { in qlcnic_sriov_pf_set_vport_handle()
260 index = qlcnic_sriov_func_to_index(adapter, func); in qlcnic_sriov_pf_set_vport_handle()
268 static int qlcnic_sriov_pf_get_vport_handle(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_get_vport_handle() argument
271 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_get_vport_handle()
275 if (adapter->ahw->pci_func == func) { in qlcnic_sriov_pf_get_vport_handle()
278 index = qlcnic_sriov_func_to_index(adapter, func); in qlcnic_sriov_pf_get_vport_handle()
288 static int qlcnic_sriov_pf_config_vport(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_config_vport() argument
295 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_VPORT)) in qlcnic_sriov_pf_config_vport()
301 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, func); in qlcnic_sriov_pf_config_vport()
309 ret = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_pf_config_vport()
311 dev_err(&adapter->pdev->dev, in qlcnic_sriov_pf_config_vport()
319 qlcnic_sriov_pf_set_vport_handle(adapter, vpid, func); in qlcnic_sriov_pf_config_vport()
321 qlcnic_sriov_pf_reset_vport_handle(adapter, func); in qlcnic_sriov_pf_config_vport()
329 static int qlcnic_sriov_pf_cfg_vlan_filtering(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_cfg_vlan_filtering() argument
335 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); in qlcnic_sriov_pf_cfg_vlan_filtering()
341 adapter->flags |= QLCNIC_VLAN_FILTERING; in qlcnic_sriov_pf_cfg_vlan_filtering()
343 if (qlcnic_84xx_check(adapter)) in qlcnic_sriov_pf_cfg_vlan_filtering()
346 adapter->flags &= ~QLCNIC_VLAN_FILTERING; in qlcnic_sriov_pf_cfg_vlan_filtering()
349 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_pf_cfg_vlan_filtering()
351 dev_err(&adapter->pdev->dev, in qlcnic_sriov_pf_cfg_vlan_filtering()
359 static int qlcnic_sriov_pf_cfg_flood(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_cfg_flood() argument
364 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); in qlcnic_sriov_pf_cfg_flood()
370 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_pf_cfg_flood()
372 dev_err(&adapter->pdev->dev, in qlcnic_sriov_pf_cfg_flood()
380 static int qlcnic_sriov_pf_cfg_eswitch(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_cfg_eswitch() argument
386 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_TOGGLE_ESWITCH)) in qlcnic_sriov_pf_cfg_eswitch()
394 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_pf_cfg_eswitch()
397 dev_err(&adapter->pdev->dev, in qlcnic_sriov_pf_cfg_eswitch()
406 static void qlcnic_sriov_pf_del_flr_queue(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_del_flr_queue() argument
408 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_del_flr_queue()
418 static int qlcnic_sriov_pf_create_flr_queue(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_create_flr_queue() argument
420 struct qlcnic_back_channel *bc = &adapter->ahw->sriov->bc; in qlcnic_sriov_pf_create_flr_queue()
425 dev_err(&adapter->pdev->dev, "Cannot create FLR workqueue\n"); in qlcnic_sriov_pf_create_flr_queue()
433 void qlcnic_sriov_pf_cleanup(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_cleanup() argument
435 u8 func = adapter->ahw->pci_func; in qlcnic_sriov_pf_cleanup()
437 if (!qlcnic_sriov_enable_check(adapter)) in qlcnic_sriov_pf_cleanup()
440 qlcnic_sriov_pf_del_flr_queue(adapter); in qlcnic_sriov_pf_cleanup()
441 qlcnic_sriov_cfg_bc_intr(adapter, 0); in qlcnic_sriov_pf_cleanup()
442 qlcnic_sriov_pf_config_vport(adapter, 0, func); in qlcnic_sriov_pf_cleanup()
443 qlcnic_sriov_pf_cfg_eswitch(adapter, func, 0); in qlcnic_sriov_pf_cleanup()
444 qlcnic_sriov_pf_cfg_vlan_filtering(adapter, 0); in qlcnic_sriov_pf_cleanup()
445 __qlcnic_sriov_cleanup(adapter); in qlcnic_sriov_pf_cleanup()
446 adapter->ahw->op_mode = QLCNIC_MGMT_FUNC; in qlcnic_sriov_pf_cleanup()
447 clear_bit(__QLCNIC_SRIOV_ENABLE, &adapter->state); in qlcnic_sriov_pf_cleanup()
450 void qlcnic_sriov_pf_disable(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_disable() argument
452 if (!qlcnic_sriov_pf_check(adapter)) in qlcnic_sriov_pf_disable()
455 if (!qlcnic_sriov_enable_check(adapter)) in qlcnic_sriov_pf_disable()
458 pci_disable_sriov(adapter->pdev); in qlcnic_sriov_pf_disable()
459 netdev_info(adapter->netdev, in qlcnic_sriov_pf_disable()
461 adapter->portnum); in qlcnic_sriov_pf_disable()
464 static int qlcnic_pci_sriov_disable(struct qlcnic_adapter *adapter) in qlcnic_pci_sriov_disable() argument
466 struct net_device *netdev = adapter->netdev; in qlcnic_pci_sriov_disable()
468 if (pci_vfs_assigned(adapter->pdev)) { in qlcnic_pci_sriov_disable()
469 netdev_err(adapter->netdev, in qlcnic_pci_sriov_disable()
471 adapter->portnum); in qlcnic_pci_sriov_disable()
472 netdev_info(adapter->netdev, in qlcnic_pci_sriov_disable()
474 adapter->portnum); in qlcnic_pci_sriov_disable()
478 qlcnic_sriov_pf_disable(adapter); in qlcnic_pci_sriov_disable()
482 __qlcnic_down(adapter, netdev); in qlcnic_pci_sriov_disable()
484 qlcnic_sriov_free_vlans(adapter); in qlcnic_pci_sriov_disable()
486 qlcnic_sriov_pf_cleanup(adapter); in qlcnic_pci_sriov_disable()
491 if (qlcnic_83xx_configure_opmode(adapter)) { in qlcnic_pci_sriov_disable()
497 __qlcnic_up(adapter, netdev); in qlcnic_pci_sriov_disable()
503 static int qlcnic_sriov_pf_init(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_init() argument
505 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_sriov_pf_init()
510 if (!qlcnic_sriov_enable_check(adapter)) in qlcnic_sriov_pf_init()
513 err = qlcnic_sriov_pf_cfg_vlan_filtering(adapter, 1); in qlcnic_sriov_pf_init()
517 if (qlcnic_84xx_check(adapter)) { in qlcnic_sriov_pf_init()
518 err = qlcnic_sriov_pf_cfg_flood(adapter); in qlcnic_sriov_pf_init()
523 err = qlcnic_sriov_pf_cfg_eswitch(adapter, func, 1); in qlcnic_sriov_pf_init()
527 err = qlcnic_sriov_pf_config_vport(adapter, 1, func); in qlcnic_sriov_pf_init()
531 err = qlcnic_sriov_get_pf_info(adapter, &pf_info); in qlcnic_sriov_pf_init()
535 err = qlcnic_get_nic_info(adapter, &nic_info, func); in qlcnic_sriov_pf_init()
539 err = qlcnic_sriov_pf_cal_res_limit(adapter, &vp_info, func); in qlcnic_sriov_pf_init()
543 err = qlcnic_sriov_cfg_bc_intr(adapter, 1); in qlcnic_sriov_pf_init()
555 qlcnic_sriov_pf_config_vport(adapter, 0, func); in qlcnic_sriov_pf_init()
558 qlcnic_sriov_pf_cfg_eswitch(adapter, func, 0); in qlcnic_sriov_pf_init()
561 qlcnic_sriov_pf_cfg_vlan_filtering(adapter, 0); in qlcnic_sriov_pf_init()
566 static int qlcnic_sriov_pf_enable(struct qlcnic_adapter *adapter, int num_vfs) in qlcnic_sriov_pf_enable() argument
570 if (!qlcnic_sriov_enable_check(adapter)) in qlcnic_sriov_pf_enable()
573 err = pci_enable_sriov(adapter->pdev, num_vfs); in qlcnic_sriov_pf_enable()
575 qlcnic_sriov_pf_cleanup(adapter); in qlcnic_sriov_pf_enable()
580 static int __qlcnic_pci_sriov_enable(struct qlcnic_adapter *adapter, in __qlcnic_pci_sriov_enable() argument
585 set_bit(__QLCNIC_SRIOV_ENABLE, &adapter->state); in __qlcnic_pci_sriov_enable()
586 adapter->ahw->op_mode = QLCNIC_SRIOV_PF_FUNC; in __qlcnic_pci_sriov_enable()
588 err = qlcnic_sriov_init(adapter, num_vfs); in __qlcnic_pci_sriov_enable()
592 err = qlcnic_sriov_pf_create_flr_queue(adapter); in __qlcnic_pci_sriov_enable()
596 err = qlcnic_sriov_pf_init(adapter); in __qlcnic_pci_sriov_enable()
600 qlcnic_sriov_alloc_vlans(adapter); in __qlcnic_pci_sriov_enable()
605 qlcnic_sriov_pf_del_flr_queue(adapter); in __qlcnic_pci_sriov_enable()
608 __qlcnic_sriov_cleanup(adapter); in __qlcnic_pci_sriov_enable()
611 clear_bit(__QLCNIC_SRIOV_ENABLE, &adapter->state); in __qlcnic_pci_sriov_enable()
612 adapter->ahw->op_mode = QLCNIC_MGMT_FUNC; in __qlcnic_pci_sriov_enable()
616 static int qlcnic_pci_sriov_enable(struct qlcnic_adapter *adapter, int num_vfs) in qlcnic_pci_sriov_enable() argument
618 struct net_device *netdev = adapter->netdev; in qlcnic_pci_sriov_enable()
621 if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) { in qlcnic_pci_sriov_enable()
629 __qlcnic_down(adapter, netdev); in qlcnic_pci_sriov_enable()
631 err = __qlcnic_pci_sriov_enable(adapter, num_vfs); in qlcnic_pci_sriov_enable()
636 __qlcnic_up(adapter, netdev); in qlcnic_pci_sriov_enable()
639 err = qlcnic_sriov_pf_enable(adapter, num_vfs); in qlcnic_pci_sriov_enable()
643 adapter->portnum); in qlcnic_pci_sriov_enable()
650 __qlcnic_down(adapter, netdev); in qlcnic_pci_sriov_enable()
653 if (!qlcnic_83xx_configure_opmode(adapter)) { in qlcnic_pci_sriov_enable()
655 __qlcnic_up(adapter, netdev); in qlcnic_pci_sriov_enable()
660 adapter->portnum); in qlcnic_pci_sriov_enable()
667 struct qlcnic_adapter *adapter = pci_get_drvdata(dev); in qlcnic_pci_sriov_configure() local
670 if (test_and_set_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_pci_sriov_configure()
674 err = qlcnic_pci_sriov_disable(adapter); in qlcnic_pci_sriov_configure()
676 err = qlcnic_pci_sriov_enable(adapter, num_vfs); in qlcnic_pci_sriov_configure()
678 clear_bit(__QLCNIC_RESETTING, &adapter->state); in qlcnic_pci_sriov_configure()
682 static int qlcnic_sriov_set_vf_acl(struct qlcnic_adapter *adapter, u8 func) in qlcnic_sriov_set_vf_acl() argument
689 id = qlcnic_sriov_func_to_index(adapter, func); in qlcnic_sriov_set_vf_acl()
693 vp = adapter->ahw->sriov->vf_info[id].vp; in qlcnic_sriov_set_vf_acl()
694 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); in qlcnic_sriov_set_vf_acl()
712 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_sriov_set_vf_acl()
714 dev_err(&adapter->pdev->dev, "Failed to set ACL, err=%d\n", in qlcnic_sriov_set_vf_acl()
721 static int qlcnic_sriov_set_vf_vport_info(struct qlcnic_adapter *adapter, in qlcnic_sriov_set_vf_vport_info() argument
727 err = qlcnic_sriov_pf_cal_res_limit(adapter, &defvp_info, func); in qlcnic_sriov_set_vf_vport_info()
731 err = qlcnic_sriov_set_vf_acl(adapter, func); in qlcnic_sriov_set_vf_vport_info()
743 struct qlcnic_adapter *adapter; in qlcnic_sriov_pf_channel_cfg_cmd() local
749 adapter = vf->adapter; in qlcnic_sriov_pf_channel_cfg_cmd()
750 sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_channel_cfg_cmd()
753 err = qlcnic_sriov_pf_config_vport(adapter, 1, func); in qlcnic_sriov_pf_channel_cfg_cmd()
755 err = qlcnic_sriov_set_vf_vport_info(adapter, func); in qlcnic_sriov_pf_channel_cfg_cmd()
757 qlcnic_sriov_pf_config_vport(adapter, 0, func); in qlcnic_sriov_pf_channel_cfg_cmd()
766 err = qlcnic_sriov_pf_config_vport(adapter, 0, func); in qlcnic_sriov_pf_channel_cfg_cmd()
786 static int qlcnic_sriov_cfg_vf_def_mac(struct qlcnic_adapter *adapter, in qlcnic_sriov_cfg_vf_def_mac() argument
804 err = qlcnic_alloc_mbx_args(cmd, adapter, QLCNIC_CMD_CONFIG_MAC_VLAN); in qlcnic_sriov_cfg_vf_def_mac()
809 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, vf->pci_func); in qlcnic_sriov_cfg_vf_def_mac()
833 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_cfg_vf_def_mac()
853 static void qlcnic_83xx_cfg_default_mac_vlan(struct qlcnic_adapter *adapter, in qlcnic_83xx_cfg_default_mac_vlan() argument
861 sriov = adapter->ahw->sriov; in qlcnic_83xx_cfg_default_mac_vlan()
868 qlcnic_sriov_cfg_vf_def_mac(adapter, vf, vlan, in qlcnic_83xx_cfg_default_mac_vlan()
875 if (qlcnic_83xx_pf_check(adapter) && in qlcnic_83xx_cfg_default_mac_vlan()
878 qlcnic_sriov_cfg_vf_def_mac(adapter, vf, 0, opcode); in qlcnic_83xx_cfg_default_mac_vlan()
886 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_create_rx_ctx_cmd() local
897 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_create_rx_ctx_cmd()
902 qlcnic_83xx_cfg_default_mac_vlan(adapter, vf, QLCNIC_MAC_ADD); in qlcnic_sriov_pf_create_rx_ctx_cmd()
946 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_create_tx_ctx_cmd() local
957 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_create_tx_ctx_cmd()
984 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_del_rx_ctx_cmd() local
993 qlcnic_83xx_cfg_default_mac_vlan(adapter, vf, QLCNIC_MAC_DEL); in qlcnic_sriov_pf_del_rx_ctx_cmd()
995 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_del_rx_ctx_cmd()
1019 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_del_tx_ctx_cmd() local
1029 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_del_tx_ctx_cmd()
1050 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_lro_cmd() local
1059 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_lro_cmd()
1067 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_ip_cmd() local
1076 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_ip_cmd()
1099 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_intrpt_cmd() local
1106 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_intrpt_cmd()
1111 static int qlcnic_sriov_validate_mtu(struct qlcnic_adapter *adapter, in qlcnic_sriov_validate_mtu() argument
1118 if (cmd->req.arg[2] > adapter->ahw->max_mtu) in qlcnic_sriov_validate_mtu()
1128 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_set_mtu_cmd() local
1131 err = qlcnic_sriov_validate_mtu(adapter, vf, cmd); in qlcnic_sriov_pf_set_mtu_cmd()
1135 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_set_mtu_cmd()
1157 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_get_nic_info_cmd() local
1166 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_get_nic_info_cmd()
1183 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_rss_cmd() local
1190 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_rss_cmd()
1195 static int qlcnic_sriov_validate_cfg_intrcoal(struct qlcnic_adapter *adapter, in qlcnic_sriov_validate_cfg_intrcoal() argument
1199 struct qlcnic_nic_intr_coalesce *coal = &adapter->ahw->coal; in qlcnic_sriov_validate_cfg_intrcoal()
1221 netdev_err(adapter->netdev, "Invalid coalescing type 0x%x received\n", in qlcnic_sriov_validate_cfg_intrcoal()
1229 …netdev_err(adapter->netdev, "Expected: rx_ctx_id 0x%x rx_packets 0x%x rx_time_us 0x%x tx_ctx_id 0x… in qlcnic_sriov_validate_cfg_intrcoal()
1232 netdev_err(adapter->netdev, "Received: ctx_id 0x%x packets 0x%x time_us 0x%x type 0x%x\n", in qlcnic_sriov_validate_cfg_intrcoal()
1242 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_intrcoal_cmd() local
1245 err = qlcnic_sriov_validate_cfg_intrcoal(adapter, vf, cmd); in qlcnic_sriov_pf_cfg_intrcoal_cmd()
1251 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_intrcoal_cmd()
1255 static int qlcnic_sriov_validate_cfg_macvlan(struct qlcnic_adapter *adapter, in qlcnic_sriov_validate_cfg_macvlan() argument
1284 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_macvlan_cmd() local
1287 err = qlcnic_sriov_validate_cfg_macvlan(adapter, vf, cmd); in qlcnic_sriov_pf_cfg_macvlan_cmd()
1293 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_macvlan_cmd()
1310 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_linkevent_cmd() local
1319 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_linkevent_cmd()
1327 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_promisc_cmd() local
1332 err = qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_cfg_promisc_cmd()
1342 struct qlcnic_adapter *adapter; in qlcnic_sriov_pf_get_acl_cmd() local
1345 adapter = vf->adapter; in qlcnic_sriov_pf_get_acl_cmd()
1346 sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_get_acl_cmd()
1354 if (qlcnic_84xx_check(adapter) && mode == QLC_PVID_MODE) in qlcnic_sriov_pf_get_acl_cmd()
1370 static int qlcnic_sriov_pf_del_guest_vlan(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_del_guest_vlan() argument
1374 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_del_guest_vlan()
1386 qlcnic_sriov_cfg_vf_def_mac(adapter, vf, vlan, QLCNIC_MAC_DEL); in qlcnic_sriov_pf_del_guest_vlan()
1389 if (qlcnic_83xx_pf_check(adapter)) in qlcnic_sriov_pf_del_guest_vlan()
1390 qlcnic_sriov_cfg_vf_def_mac(adapter, vf, in qlcnic_sriov_pf_del_guest_vlan()
1395 static int qlcnic_sriov_pf_add_guest_vlan(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_add_guest_vlan() argument
1399 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_pf_add_guest_vlan()
1403 if (qlcnic_83xx_pf_check(adapter) && qlcnic_sriov_check_any_vlan(vf)) in qlcnic_sriov_pf_add_guest_vlan()
1413 if (qlcnic_83xx_pf_check(adapter)) { in qlcnic_sriov_pf_add_guest_vlan()
1414 err = qlcnic_sriov_cfg_vf_def_mac(adapter, vf, 0, in qlcnic_sriov_pf_add_guest_vlan()
1420 err = qlcnic_sriov_cfg_vf_def_mac(adapter, vf, vlan, QLCNIC_MAC_ADD); in qlcnic_sriov_pf_add_guest_vlan()
1423 if (qlcnic_83xx_pf_check(adapter)) in qlcnic_sriov_pf_add_guest_vlan()
1424 qlcnic_sriov_cfg_vf_def_mac(adapter, vf, 0, in qlcnic_sriov_pf_add_guest_vlan()
1437 struct qlcnic_adapter *adapter = vf->adapter; in qlcnic_sriov_pf_cfg_guest_vlan_cmd() local
1450 err = qlcnic_sriov_pf_add_guest_vlan(adapter, vf, cmd); in qlcnic_sriov_pf_cfg_guest_vlan_cmd()
1452 err = qlcnic_sriov_pf_del_guest_vlan(adapter, vf, cmd); in qlcnic_sriov_pf_cfg_guest_vlan_cmd()
1491 void qlcnic_sriov_pf_process_bc_cmd(struct qlcnic_adapter *adapter, in qlcnic_sriov_pf_process_bc_cmd() argument
1518 qlcnic_issue_cmd(adapter, cmd); in qlcnic_sriov_pf_process_bc_cmd()
1527 void qlcnic_pf_set_interface_id_create_rx_ctx(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_create_rx_ctx() argument
1532 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_create_rx_ctx()
1533 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_create_rx_ctx()
1537 void qlcnic_pf_set_interface_id_del_rx_ctx(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_del_rx_ctx() argument
1542 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_del_rx_ctx()
1543 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_del_rx_ctx()
1547 void qlcnic_pf_set_interface_id_create_tx_ctx(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_create_tx_ctx() argument
1552 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_create_tx_ctx()
1553 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_create_tx_ctx()
1557 void qlcnic_pf_set_interface_id_del_tx_ctx(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_del_tx_ctx() argument
1562 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_del_tx_ctx()
1563 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_del_tx_ctx()
1567 void qlcnic_pf_set_interface_id_promisc(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_promisc() argument
1572 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_promisc()
1573 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_promisc()
1577 void qlcnic_pf_set_interface_id_ipaddr(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_ipaddr() argument
1582 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_ipaddr()
1583 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_ipaddr()
1587 void qlcnic_pf_set_interface_id_macaddr(struct qlcnic_adapter *adapter, in qlcnic_pf_set_interface_id_macaddr() argument
1592 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, in qlcnic_pf_set_interface_id_macaddr()
1593 adapter->ahw->pci_func); in qlcnic_pf_set_interface_id_macaddr()
1597 static void qlcnic_sriov_del_rx_ctx(struct qlcnic_adapter *adapter, in qlcnic_sriov_del_rx_ctx() argument
1606 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_RX_CTX)) in qlcnic_sriov_del_rx_ctx()
1609 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, vf->pci_func); in qlcnic_sriov_del_rx_ctx()
1612 if (qlcnic_issue_cmd(adapter, &cmd)) in qlcnic_sriov_del_rx_ctx()
1613 dev_err(&adapter->pdev->dev, in qlcnic_sriov_del_rx_ctx()
1623 static void qlcnic_sriov_del_tx_ctx(struct qlcnic_adapter *adapter, in qlcnic_sriov_del_tx_ctx() argument
1632 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_TX_CTX)) in qlcnic_sriov_del_tx_ctx()
1635 vpid = qlcnic_sriov_pf_get_vport_handle(adapter, vf->pci_func); in qlcnic_sriov_del_tx_ctx()
1638 if (qlcnic_issue_cmd(adapter, &cmd)) in qlcnic_sriov_del_tx_ctx()
1639 dev_err(&adapter->pdev->dev, in qlcnic_sriov_del_tx_ctx()
1666 struct qlcnic_adapter *adapter = vf->adapter; in __qlcnic_sriov_process_flr() local
1673 qlcnic_sriov_del_tx_ctx(adapter, vf); in __qlcnic_sriov_process_flr()
1674 qlcnic_sriov_del_rx_ctx(adapter, vf); in __qlcnic_sriov_process_flr()
1677 qlcnic_sriov_pf_config_vport(adapter, 0, vf->pci_func); in __qlcnic_sriov_process_flr()
1681 qlcnic_sriov_add_act_list_irqsave(adapter->ahw->sriov, vf, in __qlcnic_sriov_process_flr()
1701 if (test_bit(__QLCNIC_RESETTING, &vf->adapter->state)) in qlcnic_sriov_schedule_flr()
1708 static void qlcnic_sriov_handle_soft_flr(struct qlcnic_adapter *adapter, in qlcnic_sriov_handle_soft_flr() argument
1712 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_handle_soft_flr()
1719 netdev_info(adapter->netdev, "Software FLR for PCI func %d\n", in qlcnic_sriov_handle_soft_flr()
1723 bool qlcnic_sriov_soft_flr_check(struct qlcnic_adapter *adapter, in qlcnic_sriov_soft_flr_check() argument
1732 qlcnic_sriov_handle_soft_flr(adapter, trans, vf); in qlcnic_sriov_soft_flr_check()
1742 struct net_device *dev = vf->adapter->netdev; in qlcnic_sriov_pf_handle_flr()
1764 void qlcnic_sriov_pf_reset(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_reset() argument
1766 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_sriov_pf_reset()
1781 qlcnic_sriov_pf_reset_vport_handle(adapter, ahw->pci_func); in qlcnic_sriov_pf_reset()
1785 int qlcnic_sriov_pf_reinit(struct qlcnic_adapter *adapter) in qlcnic_sriov_pf_reinit() argument
1787 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_sriov_pf_reinit()
1790 if (!qlcnic_sriov_enable_check(adapter)) in qlcnic_sriov_pf_reinit()
1795 err = qlcnic_sriov_pf_init(adapter); in qlcnic_sriov_pf_reinit()
1799 dev_info(&adapter->pdev->dev, "%s: op_mode %d\n", in qlcnic_sriov_pf_reinit()
1806 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_sriov_set_vf_mac() local
1807 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_vf_mac()
1812 if (!qlcnic_sriov_pf_check(adapter)) in qlcnic_sriov_set_vf_mac()
1820 if (ether_addr_equal(adapter->mac_addr, mac)) { in qlcnic_sriov_set_vf_mac()
1854 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_sriov_set_vf_tx_rate() local
1855 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_vf_tx_rate()
1861 if (!qlcnic_sriov_pf_check(adapter)) in qlcnic_sriov_set_vf_tx_rate()
1894 if (qlcnic_sriov_get_vf_vport_info(adapter, &nic_info, vpid)) in qlcnic_sriov_set_vf_tx_rate()
1901 if (qlcnic_sriov_pf_set_vport_info(adapter, &nic_info, vpid)) in qlcnic_sriov_set_vf_tx_rate()
1919 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_sriov_set_vf_vlan() local
1920 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_vf_vlan()
1924 if (!qlcnic_sriov_pf_check(adapter)) in qlcnic_sriov_set_vf_vlan()
1969 static __u32 qlcnic_sriov_get_vf_vlan(struct qlcnic_adapter *adapter, in qlcnic_sriov_get_vf_vlan() argument
1985 netdev_info(adapter->netdev, "Invalid VLAN mode = %d for VF %d\n", in qlcnic_sriov_get_vf_vlan()
1995 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_sriov_get_vf_config() local
1996 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_get_vf_config()
1999 if (!qlcnic_sriov_pf_check(adapter)) in qlcnic_sriov_get_vf_config()
2007 ivi->vlan = qlcnic_sriov_get_vf_vlan(adapter, vp, vf); in qlcnic_sriov_get_vf_config()
2025 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_sriov_set_vf_spoofchk() local
2026 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_vf_spoofchk()
2030 if (!qlcnic_sriov_pf_check(adapter)) in qlcnic_sriov_set_vf_spoofchk()