Lines Matching refs:vf
22 struct ifcvf_hw *vf = arg; in ifcvf_config_changed() local
24 if (vf->config_cb.callback) in ifcvf_config_changed()
25 return vf->config_cb.callback(vf->config_cb.private); in ifcvf_config_changed()
48 struct ifcvf_hw *vf = &adapter->vf; in ifcvf_free_irq() local
53 devm_free_irq(&pdev->dev, vf->vring[i].irq, &vf->vring[i]); in ifcvf_free_irq()
54 vf->vring[i].irq = -EINVAL; in ifcvf_free_irq()
57 devm_free_irq(&pdev->dev, vf->config_irq, vf); in ifcvf_free_irq()
64 struct ifcvf_hw *vf = &adapter->vf; in ifcvf_request_irq() local
69 max_intr = vf->nr_vring + 1; in ifcvf_request_irq()
78 snprintf(vf->config_msix_name, 256, "ifcvf[%s]-config\n", in ifcvf_request_irq()
81 vf->config_irq = pci_irq_vector(pdev, vector); in ifcvf_request_irq()
82 ret = devm_request_irq(&pdev->dev, vf->config_irq, in ifcvf_request_irq()
84 vf->config_msix_name, vf); in ifcvf_request_irq()
90 for (i = 0; i < vf->nr_vring; i++) { in ifcvf_request_irq()
91 snprintf(vf->vring[i].msix_name, 256, "ifcvf[%s]-%d\n", in ifcvf_request_irq()
97 vf->vring[i].msix_name, in ifcvf_request_irq()
98 &vf->vring[i]); in ifcvf_request_irq()
107 vf->vring[i].irq = irq; in ifcvf_request_irq()
115 struct ifcvf_hw *vf = ifcvf_private_to_vf(private); in ifcvf_start_datapath() local
119 ret = ifcvf_start_hw(vf); in ifcvf_start_datapath()
121 status = ifcvf_get_status(vf); in ifcvf_start_datapath()
123 ifcvf_set_status(vf, status); in ifcvf_start_datapath()
131 struct ifcvf_hw *vf = ifcvf_private_to_vf(private); in ifcvf_stop_datapath() local
134 for (i = 0; i < vf->nr_vring; i++) in ifcvf_stop_datapath()
135 vf->vring[i].cb.callback = NULL; in ifcvf_stop_datapath()
137 ifcvf_stop_hw(vf); in ifcvf_stop_datapath()
144 struct ifcvf_hw *vf = ifcvf_private_to_vf(adapter); in ifcvf_reset_vring() local
147 for (i = 0; i < vf->nr_vring; i++) { in ifcvf_reset_vring()
148 vf->vring[i].last_avail_idx = 0; in ifcvf_reset_vring()
149 vf->vring[i].desc = 0; in ifcvf_reset_vring()
150 vf->vring[i].avail = 0; in ifcvf_reset_vring()
151 vf->vring[i].used = 0; in ifcvf_reset_vring()
152 vf->vring[i].ready = 0; in ifcvf_reset_vring()
153 vf->vring[i].cb.callback = NULL; in ifcvf_reset_vring()
154 vf->vring[i].cb.private = NULL; in ifcvf_reset_vring()
157 ifcvf_reset(vf); in ifcvf_reset_vring()
169 return &adapter->vf; in vdpa_to_vf()
175 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_features() local
177 u32 type = vf->dev_type; in ifcvf_vdpa_get_features()
181 features = ifcvf_get_features(vf); in ifcvf_vdpa_get_features()
184 IFCVF_ERR(pdev, "VIRTIO ID %u not supported\n", vf->dev_type); in ifcvf_vdpa_get_features()
192 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_features() local
195 ret = ifcvf_verify_min_features(vf, features); in ifcvf_vdpa_set_features()
199 vf->req_features = features; in ifcvf_vdpa_set_features()
206 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_status() local
208 return ifcvf_get_status(vf); in ifcvf_vdpa_get_status()
214 struct ifcvf_hw *vf; in ifcvf_vdpa_set_status() local
218 vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_status()
220 status_old = ifcvf_get_status(vf); in ifcvf_vdpa_set_status()
229 status = ifcvf_get_status(vf); in ifcvf_vdpa_set_status()
231 ifcvf_set_status(vf, status); in ifcvf_vdpa_set_status()
241 ifcvf_set_status(vf, status); in ifcvf_vdpa_set_status()
247 struct ifcvf_hw *vf; in ifcvf_vdpa_reset() local
250 vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_reset()
252 status_old = ifcvf_get_status(vf); in ifcvf_vdpa_reset()
259 ifcvf_free_irq(adapter, vf->nr_vring); in ifcvf_vdpa_reset()
275 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_vq_state() local
277 state->split.avail_index = ifcvf_get_vq_state(vf, qid); in ifcvf_vdpa_get_vq_state()
284 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_vq_state() local
286 return ifcvf_set_vq_state(vf, qid, state->split.avail_index); in ifcvf_vdpa_set_vq_state()
292 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_vq_cb() local
294 vf->vring[qid].cb = *cb; in ifcvf_vdpa_set_vq_cb()
300 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_vq_ready() local
302 vf->vring[qid].ready = ready; in ifcvf_vdpa_set_vq_ready()
307 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_vq_ready() local
309 return vf->vring[qid].ready; in ifcvf_vdpa_get_vq_ready()
315 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_vq_num() local
317 vf->vring[qid].size = num; in ifcvf_vdpa_set_vq_num()
324 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_vq_address() local
326 vf->vring[qid].desc = desc_area; in ifcvf_vdpa_set_vq_address()
327 vf->vring[qid].avail = driver_area; in ifcvf_vdpa_set_vq_address()
328 vf->vring[qid].used = device_area; in ifcvf_vdpa_set_vq_address()
335 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_kick_vq() local
337 ifcvf_notify_queue(vf, qid); in ifcvf_vdpa_kick_vq()
342 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_generation() local
344 return ioread8(&vf->common_cfg->config_generation); in ifcvf_vdpa_get_generation()
349 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_device_id() local
351 return vf->dev_type; in ifcvf_vdpa_get_device_id()
370 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_config_size() local
374 switch (vf->dev_type) { in ifcvf_vdpa_get_config_size()
383 IFCVF_ERR(pdev, "VIRTIO ID %u not supported\n", vf->dev_type); in ifcvf_vdpa_get_config_size()
393 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_config() local
396 ifcvf_read_net_config(vf, offset, buf, len); in ifcvf_vdpa_get_config()
403 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_config() local
406 ifcvf_write_net_config(vf, offset, buf, len); in ifcvf_vdpa_set_config()
412 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_set_config_cb() local
414 vf->config_cb.callback = cb->callback; in ifcvf_vdpa_set_config_cb()
415 vf->config_cb.private = cb->private; in ifcvf_vdpa_set_config_cb()
421 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_vdpa_get_vq_irq() local
423 return vf->vring[qid].irq; in ifcvf_vdpa_get_vq_irq()
429 struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev); in ifcvf_get_vq_notification() local
432 area.addr = vf->vring[idx].notify_pa; in ifcvf_get_vq_notification()
433 if (!vf->notify_off_multiplier) in ifcvf_get_vq_notification()
436 area.size = vf->notify_off_multiplier; in ifcvf_get_vq_notification()
508 struct ifcvf_hw *vf; in ifcvf_vdpa_dev_add() local
528 vf = &adapter->vf; in ifcvf_vdpa_dev_add()
529 vf->dev_type = get_dev_type(pdev); in ifcvf_vdpa_dev_add()
530 vf->base = pcim_iomap_table(pdev); in ifcvf_vdpa_dev_add()
535 ret = ifcvf_init_hw(vf, pdev); in ifcvf_vdpa_dev_add()
541 for (i = 0; i < vf->nr_vring; i++) in ifcvf_vdpa_dev_add()
542 vf->vring[i].irq = -EINVAL; in ifcvf_vdpa_dev_add()
544 vf->hw_features = ifcvf_get_hw_features(vf); in ifcvf_vdpa_dev_add()
547 ret = _vdpa_register_device(&adapter->vdpa, vf->nr_vring); in ifcvf_vdpa_dev_add()