cdev_info
static int i40iw_open(struct i40e_info *cdev_info, struct i40e_client *client)
i40iw_fill_device_info(iwdev, cdev_info);
l2params.mtu = (cdev_info->params.mtu) ? cdev_info->params.mtu : IRDMA_DEFAULT_MTU;
qset = cdev_info->params.qos.prio_qos[i].qs_handle;
l2params.up2tc[i] = cdev_info->params.qos.prio_qos[i].tc;
static void i40iw_l2param_change(struct i40e_info *cdev_info,
struct i40e_info *cdev_info = i40e_adev->ldev;
i40e_client_device_register(cdev_info, &i40iw_client);
struct i40e_info *cdev_info = i40e_adev->ldev;
i40e_client_device_unregister(cdev_info);
ibdev = ib_device_get_by_netdev(cdev_info->netdev, RDMA_DRIVER_IRDMA);
static void i40iw_close(struct i40e_info *cdev_info, struct i40e_client *client,
ibdev = ib_device_get_by_netdev(cdev_info->netdev, RDMA_DRIVER_IRDMA);
pr_debug("INIT: Gen1 PF[%d] close complete\n", PCI_FUNC(cdev_info->pcidev->devfn));
struct i40e_info *cdev_info = rf->cdev;
cdev_info->ops->request_reset(cdev_info, &i40iw_client, 1);
static void i40iw_fill_device_info(struct irdma_device *iwdev, struct i40e_info *cdev_info)
rf->pcidev = cdev_info->pcidev;
rf->pf_id = cdev_info->fid;
rf->hw.hw_addr = cdev_info->hw_addr;
rf->cdev = cdev_info;
rf->msix_count = cdev_info->msix_count;
rf->msix_entries = cdev_info->msix_entries;
iwdev->netdev = cdev_info->netdev;
struct iidc_rdma_core_dev_info *cdev_info = iwdev->rf->cdev;
ret = ice_add_rdma_qset(cdev_info, &qset);
struct iidc_rdma_core_dev_info *cdev_info = iwdev->rf->cdev;
if (ice_del_rdma_qset(cdev_info, &qset))
struct iidc_rdma_core_dev_info *cdev_info)
struct iidc_rdma_priv_dev_info *idc_priv = cdev_info->iidc_priv;
rf->cdev = cdev_info;
rf->pcidev = cdev_info->pdev;
cdev_info->rdma_protocol == IIDC_RDMA_PROTOCOL_ROCEV2 ?
struct iidc_rdma_core_dev_info *cdev_info;
cdev_info = iidc_adev->cdev_info;
idc_priv = cdev_info->iidc_priv;
icrdma_fill_device_info(iwdev, cdev_info);
err = icrdma_init_interrupts(rf, cdev_info);
ice_rdma_update_vsi_filter(cdev_info, iwdev->vsi_num, true);
icrdma_deinit_interrupts(rf, cdev_info);
struct iidc_rdma_core_dev_info *cdev_info = idc_adev->cdev_info;
ice_rdma_update_vsi_filter(cdev_info, iwdev->vsi_num, false);
icrdma_deinit_interrupts(iwdev->rf, cdev_info);
rdma_ver, PCI_FUNC(cdev_info->pdev->devfn));
static void icrdma_iidc_event_handler(struct iidc_rdma_core_dev_info *cdev_info,
struct irdma_device *iwdev = dev_get_drvdata(&cdev_info->adev->dev);
struct iidc_rdma_priv_dev_info *idc_priv = cdev_info->iidc_priv;
struct irdma_pci_f *rf = auxiliary_get_drvdata(cdev_info->adev);
struct iidc_rdma_core_dev_info *cdev_info)
struct iidc_rdma_priv_dev_info *idc_priv = cdev_info->iidc_priv;
rf->cdev = cdev_info;
rf->pcidev = cdev_info->pdev;
err = ig3rdma_vchnl_init(rf, cdev_info, &rf->rdma_ver);
err = ig3rdma_cfg_regions(&rf->hw, cdev_info);
struct iidc_rdma_core_dev_info *cdev_info = idc_adev->cdev_info;
err = ig3rdma_cfg_rf(rf, cdev_info);
err = idpf_idc_vport_dev_ctrl(cdev_info, true);
struct iidc_rdma_core_dev_info *cdev_info = idc_adev->cdev_info;
idpf_idc_vport_dev_ctrl(cdev_info, false);
struct iidc_rdma_core_dev_info *cdev_info = dev_to_rf(dev)->cdev;
ret = idpf_idc_rdma_vc_send_sync(cdev_info, msg, len, recv_msg,
struct iidc_rdma_core_dev_info *cdev_info,
struct iidc_rdma_priv_dev_info *idc_priv = cdev_info->iidc_priv;
struct iidc_rdma_core_dev_info *cdev_info)
static void ig3rdma_idc_core_event_handler(struct iidc_rdma_core_dev_info *cdev_info,
struct iidc_rdma_priv_dev_info *idc_priv = cdev_info->iidc_priv;
struct pci_dev *pdev = cdev_info->pdev;
static void ig3rdma_idc_vport_event_handler(struct iidc_rdma_vport_dev_info *cdev_info,
struct irdma_device *iwdev = auxiliary_get_drvdata(cdev_info->adev);
cdev = pf->cdev_info;
cdev = pf->cdev_info;
cdev = pf->cdev_info;
cdev = pf->cdev_info;
cdev = pf->cdev_info;
if (pf->cdev_info->rdma_protocol & IIDC_RDMA_PROTOCOL_ROCEV2) {
struct iidc_rdma_core_dev_info *cdev_info;
cdev = pf->cdev_info;
if (pf->cdev_info && pf->cdev_info->adev) {
device_lock(&pf->cdev_info->adev->dev);
if (pf->cdev_info->adev->dev.driver) {
device_unlock(&pf->cdev_info->adev->dev);
cdev = pf->cdev_info;
iadev->cdev_info = cdev;
adev = pf->cdev_info->adev;
pf->cdev_info->adev = NULL;
if (!ice_is_rdma_ena(pf) || !pf->cdev_info)
privd = pf->cdev_info->iidc_priv;
pf->cdev_info = cdev;
pf->cdev_info->rdma_protocol |= IIDC_RDMA_PROTOCOL_ROCEV2;
pf->cdev_info = NULL;
cdev = pf->cdev_info;
kfree(pf->cdev_info->iidc_priv);
kfree(pf->cdev_info);
pf->cdev_info = NULL;
cdev = pf->cdev_info;
void idpf_idc_issue_reset_event(struct iidc_rdma_core_dev_info *cdev_info);
struct iidc_rdma_core_dev_info *cdev_info;
struct iidc_rdma_core_dev_info *cdev_info;
cdev_info = vport->adapter->cdev_info;
vdev_info->core_adev = cdev_info->adev;
err = idpf_plug_vport_aux_dev(cdev_info, vdev_info);
static int idpf_plug_core_aux_dev(struct iidc_rdma_core_dev_info *cdev_info)
cdev_info->adev = adev;
iadev->cdev_info = cdev_info;
adev->dev.parent = &cdev_info->pdev->dev;
sprintf(name, "%04x.rdma.core", cdev_info->pdev->vendor);
cdev_info->adev = NULL;
void idpf_idc_issue_reset_event(struct iidc_rdma_core_dev_info *cdev_info)
if (!cdev_info)
device_lock(&cdev_info->adev->dev);
adev = cdev_info->adev;
iadrv->event_handler(cdev_info, &event);
device_unlock(&cdev_info->adev->dev);
err = idpf_plug_vport_aux_dev(vport->adapter->cdev_info,
int idpf_idc_vport_dev_ctrl(struct iidc_rdma_core_dev_info *cdev_info, bool up)
struct idpf_adapter *adapter = pci_get_drvdata(cdev_info->pdev);
int idpf_idc_request_reset(struct iidc_rdma_core_dev_info *cdev_info,
struct idpf_adapter *adapter = pci_get_drvdata(cdev_info->pdev);
struct iidc_rdma_core_dev_info *cdev_info;
cdev_info = adapter->cdev_info;
privd = cdev_info->iidc_priv;
struct iidc_rdma_core_dev_info *cdev_info;
adapter->cdev_info = kzalloc_obj(*cdev_info);
if (!adapter->cdev_info)
cdev_info = adapter->cdev_info;
cdev_info->iidc_priv = privd;
cdev_info->pdev = adapter->pdev;
cdev_info->rdma_protocol = IIDC_RDMA_PROTOCOL_ROCEV2;
err = idpf_plug_core_aux_dev(cdev_info);
kfree(cdev_info);
adapter->cdev_info = NULL;
struct iidc_rdma_core_dev_info *cdev_info = adapter->cdev_info;
if (!cdev_info)
idpf_unplug_aux_dev(cdev_info->adev);
privd = cdev_info->iidc_priv;
kfree(cdev_info);
adapter->cdev_info = NULL;
static int idpf_plug_vport_aux_dev(struct iidc_rdma_core_dev_info *cdev_info,
adev->dev.parent = &cdev_info->pdev->dev;
sprintf(name, "%04x.rdma.vdev", cdev_info->pdev->vendor);
idpf_idc_issue_reset_event(adapter->cdev_info);
int idpf_idc_rdma_vc_send_sync(struct iidc_rdma_core_dev_info *cdev_info,
struct idpf_adapter *adapter = pci_get_drvdata(cdev_info->pdev);
int idpf_idc_rdma_vc_send_sync(struct iidc_rdma_core_dev_info *cdev_info,
struct iidc_rdma_core_dev_info *cdev_info;
int idpf_idc_vport_dev_ctrl(struct iidc_rdma_core_dev_info *cdev_info, bool up);
int idpf_idc_request_reset(struct iidc_rdma_core_dev_info *cdev_info,
int idpf_idc_rdma_vc_send_sync(struct iidc_rdma_core_dev_info *cdev_info,
sizeof(struct cdev_info));
static int probe_cdev(struct cdev_info *cdi, char *path)
struct cdev_info *cdi;