Lines Matching refs:iov

91 	struct pci_sriov *iov = dev->sriov;  in pci_iov_set_numvfs()  local
93 pci_write_config_word(dev, iov->pos + PCI_SRIOV_NUM_VF, nr_virtfn); in pci_iov_set_numvfs()
94 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_OFFSET, &iov->offset); in pci_iov_set_numvfs()
95 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_STRIDE, &iov->stride); in pci_iov_set_numvfs()
107 struct pci_sriov *iov = dev->sriov; in compute_max_vf_buses() local
110 for (nr_virtfn = iov->total_VFs; nr_virtfn; nr_virtfn--) { in compute_max_vf_buses()
112 if (!iov->offset || (nr_virtfn > 1 && !iov->stride)) { in compute_max_vf_buses()
118 if (busnr > iov->max_VF_buses) in compute_max_vf_buses()
119 iov->max_VF_buses = busnr; in compute_max_vf_buses()
317 struct pci_sriov *iov = dev->sriov; in pci_iov_scan_device() local
327 virtfn->device = iov->vf_device; in pci_iov_scan_device()
657 struct pci_sriov *iov = dev->sriov; in sriov_enable() local
664 if (iov->num_VFs) in sriov_enable()
667 pci_read_config_word(dev, iov->pos + PCI_SRIOV_INITIAL_VF, &initial); in sriov_enable()
668 if (initial > iov->total_VFs || in sriov_enable()
669 (!(iov->cap & PCI_SRIOV_CAP_VFM) && (initial != iov->total_VFs))) in sriov_enable()
672 if (nr_virtfn < 0 || nr_virtfn > iov->total_VFs || in sriov_enable()
673 (!(iov->cap & PCI_SRIOV_CAP_VFM) && (nr_virtfn > initial))) in sriov_enable()
688 if (nres != iov->nres) { in sriov_enable()
705 if (iov->link != dev->devfn) { in sriov_enable()
706 pdev = pci_get_slot(dev->bus, iov->link); in sriov_enable()
722 iov->initial_VFs = initial; in sriov_enable()
733 iov->ctrl |= PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE; in sriov_enable()
735 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_enable()
744 iov->num_VFs = nr_virtfn; in sriov_enable()
749 iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); in sriov_enable()
751 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_enable()
757 if (iov->link != dev->devfn) in sriov_enable()
766 struct pci_sriov *iov = dev->sriov; in sriov_del_vfs() local
769 for (i = 0; i < iov->num_VFs; i++) in sriov_del_vfs()
775 struct pci_sriov *iov = dev->sriov; in sriov_disable() local
777 if (!iov->num_VFs) in sriov_disable()
781 iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); in sriov_disable()
783 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_disable()
789 if (iov->link != dev->devfn) in sriov_disable()
792 iov->num_VFs = 0; in sriov_disable()
803 struct pci_sriov *iov; in sriov_init() local
840 iov = kzalloc_obj(*iov); in sriov_init()
841 if (!iov) in sriov_init()
871 iov->barsz[i] = resource_size(res); in sriov_init()
879 iov->pos = pos; in sriov_init()
880 iov->nres = nres; in sriov_init()
881 iov->ctrl = ctrl; in sriov_init()
882 iov->total_VFs = total; in sriov_init()
883 iov->driver_max_VFs = total; in sriov_init()
884 pci_read_config_word(dev, pos + PCI_SRIOV_VF_DID, &iov->vf_device); in sriov_init()
885 iov->pgsz = pgsz; in sriov_init()
886 iov->self = dev; in sriov_init()
887 iov->drivers_autoprobe = true; in sriov_init()
888 pci_read_config_dword(dev, pos + PCI_SRIOV_CAP, &iov->cap); in sriov_init()
889 pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link); in sriov_init()
891 iov->link = PCI_DEVFN(PCI_SLOT(dev->devfn), iov->link); in sriov_init()
892 iov->vf_rebar_cap = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_VF_REBAR); in sriov_init()
895 iov->dev = pci_dev_get(pdev); in sriov_init()
897 iov->dev = dev; in sriov_init()
899 dev->sriov = iov; in sriov_init()
916 kfree(iov); in sriov_init()
959 struct pci_sriov *iov = dev->sriov; in sriov_restore_state() local
961 pci_read_config_word(dev, iov->pos + PCI_SRIOV_CTRL, &ctrl); in sriov_restore_state()
970 ctrl |= iov->ctrl & PCI_SRIOV_CTRL_ARI; in sriov_restore_state()
971 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, ctrl); in sriov_restore_state()
976 pci_write_config_dword(dev, iov->pos + PCI_SRIOV_SYS_PGSIZE, iov->pgsz); in sriov_restore_state()
977 pci_iov_set_numvfs(dev, iov->num_VFs); in sriov_restore_state()
978 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_restore_state()
979 if (iov->ctrl & PCI_SRIOV_CTRL_VFE) in sriov_restore_state()
1019 struct pci_sriov *iov = dev->sriov; in pci_iov_remove() local
1024 iov->driver_max_VFs = iov->total_VFs; in pci_iov_remove()
1025 if (iov->num_VFs) in pci_iov_remove()
1038 struct pci_sriov *iov = dev->is_physfn ? dev->sriov : NULL; in pci_iov_update_resource() local
1051 if (!iov) in pci_iov_update_resource()
1054 pci_read_config_word(dev, iov->pos + PCI_SRIOV_CTRL, &cmd); in pci_iov_update_resource()
1079 reg = iov->pos + PCI_SRIOV_BAR + 4 * vf_bar; in pci_iov_update_resource()