Lines Matching full:adapter
18 struct idpf_adapter *adapter = pci_get_drvdata(pdev); in idpf_remove() local
21 set_bit(IDPF_REMOVE_IN_PROG, adapter->flags); in idpf_remove()
28 cancel_delayed_work_sync(&adapter->vc_event_task); in idpf_remove()
29 if (adapter->num_vfs) in idpf_remove()
32 idpf_vc_core_deinit(adapter); in idpf_remove()
34 adapter->dev_ops.reg_ops.trigger_reset(adapter, IDPF_HR_FUNC_RESET); in idpf_remove()
35 idpf_deinit_dflt_mbx(adapter); in idpf_remove()
37 if (!adapter->netdevs) in idpf_remove()
45 for (i = 0; i < adapter->max_vports; i++) { in idpf_remove()
46 if (!adapter->netdevs[i]) in idpf_remove()
48 if (adapter->netdevs[i]->reg_state != NETREG_UNINITIALIZED) in idpf_remove()
49 unregister_netdev(adapter->netdevs[i]); in idpf_remove()
50 free_netdev(adapter->netdevs[i]); in idpf_remove()
51 adapter->netdevs[i] = NULL; in idpf_remove()
55 destroy_workqueue(adapter->init_wq); in idpf_remove()
56 destroy_workqueue(adapter->serv_wq); in idpf_remove()
57 destroy_workqueue(adapter->mbx_wq); in idpf_remove()
58 destroy_workqueue(adapter->stats_wq); in idpf_remove()
59 destroy_workqueue(adapter->vc_event_wq); in idpf_remove()
61 for (i = 0; i < adapter->max_vports; i++) { in idpf_remove()
62 kfree(adapter->vport_config[i]); in idpf_remove()
63 adapter->vport_config[i] = NULL; in idpf_remove()
65 kfree(adapter->vport_config); in idpf_remove()
66 adapter->vport_config = NULL; in idpf_remove()
67 kfree(adapter->netdevs); in idpf_remove()
68 adapter->netdevs = NULL; in idpf_remove()
70 mutex_destroy(&adapter->vport_ctrl_lock); in idpf_remove()
71 mutex_destroy(&adapter->vector_lock); in idpf_remove()
72 mutex_destroy(&adapter->queue_lock); in idpf_remove()
73 mutex_destroy(&adapter->vc_buf_lock); in idpf_remove()
76 kfree(adapter); in idpf_remove()
93 * @adapter: adapter to setup hw struct for
97 static int idpf_cfg_hw(struct idpf_adapter *adapter) in idpf_cfg_hw() argument
99 struct pci_dev *pdev = adapter->pdev; in idpf_cfg_hw()
100 struct idpf_hw *hw = &adapter->hw; in idpf_cfg_hw()
109 hw->back = adapter; in idpf_cfg_hw()
124 struct idpf_adapter *adapter; in idpf_probe() local
127 adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); in idpf_probe()
128 if (!adapter) in idpf_probe()
131 adapter->req_tx_splitq = true; in idpf_probe()
132 adapter->req_rx_splitq = true; in idpf_probe()
136 idpf_dev_ops_init(adapter); in idpf_probe()
139 idpf_vf_dev_ops_init(adapter); in idpf_probe()
140 adapter->crc_enable = true; in idpf_probe()
149 adapter->pdev = pdev; in idpf_probe()
170 pci_set_drvdata(pdev, adapter); in idpf_probe()
172 adapter->init_wq = alloc_workqueue("%s-%s-init", 0, 0, in idpf_probe()
175 if (!adapter->init_wq) { in idpf_probe()
181 adapter->serv_wq = alloc_workqueue("%s-%s-service", 0, 0, in idpf_probe()
184 if (!adapter->serv_wq) { in idpf_probe()
190 adapter->mbx_wq = alloc_workqueue("%s-%s-mbx", 0, 0, in idpf_probe()
193 if (!adapter->mbx_wq) { in idpf_probe()
199 adapter->stats_wq = alloc_workqueue("%s-%s-stats", 0, 0, in idpf_probe()
202 if (!adapter->stats_wq) { in idpf_probe()
208 adapter->vc_event_wq = alloc_workqueue("%s-%s-vc_event", 0, 0, in idpf_probe()
211 if (!adapter->vc_event_wq) { in idpf_probe()
218 adapter->msg_enable = netif_msg_init(-1, IDPF_AVAIL_NETIF_M); in idpf_probe()
220 err = idpf_cfg_hw(adapter); in idpf_probe()
222 dev_err(dev, "Failed to configure HW structure for adapter: %d\n", in idpf_probe()
227 mutex_init(&adapter->vport_ctrl_lock); in idpf_probe()
228 mutex_init(&adapter->vector_lock); in idpf_probe()
229 mutex_init(&adapter->queue_lock); in idpf_probe()
230 mutex_init(&adapter->vc_buf_lock); in idpf_probe()
232 init_waitqueue_head(&adapter->vchnl_wq); in idpf_probe()
234 INIT_DELAYED_WORK(&adapter->init_task, idpf_init_task); in idpf_probe()
235 INIT_DELAYED_WORK(&adapter->serv_task, idpf_service_task); in idpf_probe()
236 INIT_DELAYED_WORK(&adapter->mbx_task, idpf_mbx_task); in idpf_probe()
237 INIT_DELAYED_WORK(&adapter->stats_task, idpf_statistics_task); in idpf_probe()
238 INIT_DELAYED_WORK(&adapter->vc_event_task, idpf_vc_event_task); in idpf_probe()
240 adapter->dev_ops.reg_ops.reset_reg_init(adapter); in idpf_probe()
241 set_bit(IDPF_HR_DRV_LOAD, adapter->flags); in idpf_probe()
242 queue_delayed_work(adapter->vc_event_wq, &adapter->vc_event_task, in idpf_probe()
248 destroy_workqueue(adapter->vc_event_wq); in idpf_probe()
250 destroy_workqueue(adapter->stats_wq); in idpf_probe()
252 destroy_workqueue(adapter->mbx_wq); in idpf_probe()
254 destroy_workqueue(adapter->serv_wq); in idpf_probe()
256 destroy_workqueue(adapter->init_wq); in idpf_probe()
258 kfree(adapter); in idpf_probe()