Lines Matching refs:adapter

19 	struct idpf_adapter *adapter = pci_get_drvdata(pdev);
22 set_bit(IDPF_REMOVE_IN_PROG, adapter->flags);
29 cancel_delayed_work_sync(&adapter->vc_event_task);
30 if (adapter->num_vfs)
33 idpf_vc_core_deinit(adapter);
36 adapter->dev_ops.reg_ops.trigger_reset(adapter, IDPF_HR_FUNC_RESET);
37 idpf_deinit_dflt_mbx(adapter);
39 if (!adapter->netdevs)
47 for (i = 0; i < adapter->max_vports; i++) {
48 if (!adapter->netdevs[i])
50 if (adapter->netdevs[i]->reg_state != NETREG_UNINITIALIZED)
51 unregister_netdev(adapter->netdevs[i]);
52 free_netdev(adapter->netdevs[i]);
53 adapter->netdevs[i] = NULL;
57 destroy_workqueue(adapter->init_wq);
58 destroy_workqueue(adapter->serv_wq);
59 destroy_workqueue(adapter->mbx_wq);
60 destroy_workqueue(adapter->stats_wq);
61 destroy_workqueue(adapter->vc_event_wq);
63 for (i = 0; i < adapter->max_vports; i++) {
64 kfree(adapter->vport_config[i]);
65 adapter->vport_config[i] = NULL;
67 kfree(adapter->vport_config);
68 adapter->vport_config = NULL;
69 kfree(adapter->netdevs);
70 adapter->netdevs = NULL;
71 kfree(adapter->vcxn_mngr);
72 adapter->vcxn_mngr = NULL;
74 mutex_destroy(&adapter->vport_ctrl_lock);
75 mutex_destroy(&adapter->vector_lock);
76 mutex_destroy(&adapter->queue_lock);
77 mutex_destroy(&adapter->vc_buf_lock);
80 kfree(adapter);
97 * @adapter: adapter to setup hw struct for
101 static int idpf_cfg_hw(struct idpf_adapter *adapter)
103 struct pci_dev *pdev = adapter->pdev;
104 struct idpf_hw *hw = &adapter->hw;
113 hw->back = adapter;
128 struct idpf_adapter *adapter;
131 adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
132 if (!adapter)
135 adapter->req_tx_splitq = true;
136 adapter->req_rx_splitq = true;
140 idpf_dev_ops_init(adapter);
143 idpf_vf_dev_ops_init(adapter);
144 adapter->crc_enable = true;
153 adapter->pdev = pdev;
174 pci_set_drvdata(pdev, adapter);
176 adapter->init_wq = alloc_workqueue("%s-%s-init", 0, 0,
179 if (!adapter->init_wq) {
185 adapter->serv_wq = alloc_workqueue("%s-%s-service", 0, 0,
188 if (!adapter->serv_wq) {
194 adapter->mbx_wq = alloc_workqueue("%s-%s-mbx", 0, 0,
197 if (!adapter->mbx_wq) {
203 adapter->stats_wq = alloc_workqueue("%s-%s-stats", 0, 0,
206 if (!adapter->stats_wq) {
212 adapter->vc_event_wq = alloc_workqueue("%s-%s-vc_event", 0, 0,
215 if (!adapter->vc_event_wq) {
222 adapter->msg_enable = netif_msg_init(-1, IDPF_AVAIL_NETIF_M);
224 err = idpf_cfg_hw(adapter);
226 dev_err(dev, "Failed to configure HW structure for adapter: %d\n",
231 mutex_init(&adapter->vport_ctrl_lock);
232 mutex_init(&adapter->vector_lock);
233 mutex_init(&adapter->queue_lock);
234 mutex_init(&adapter->vc_buf_lock);
236 INIT_DELAYED_WORK(&adapter->init_task, idpf_init_task);
237 INIT_DELAYED_WORK(&adapter->serv_task, idpf_service_task);
238 INIT_DELAYED_WORK(&adapter->mbx_task, idpf_mbx_task);
239 INIT_DELAYED_WORK(&adapter->stats_task, idpf_statistics_task);
240 INIT_DELAYED_WORK(&adapter->vc_event_task, idpf_vc_event_task);
242 adapter->dev_ops.reg_ops.reset_reg_init(adapter);
243 set_bit(IDPF_HR_DRV_LOAD, adapter->flags);
244 queue_delayed_work(adapter->vc_event_wq, &adapter->vc_event_task,
250 destroy_workqueue(adapter->vc_event_wq);
252 destroy_workqueue(adapter->stats_wq);
254 destroy_workqueue(adapter->mbx_wq);
256 destroy_workqueue(adapter->serv_wq);
258 destroy_workqueue(adapter->init_wq);
260 kfree(adapter);