Lines Matching refs:dinfo

96 static int	pci_iov_delete_iov_children(struct pci_devinfo *dinfo);
118 struct pci_devinfo *dinfo;
125 dinfo = device_get_ivars(dev);
143 iov = malloc(sizeof(*dinfo->cfg.iov), M_SRIOV, M_WAITOK | M_ZERO);
146 if (dinfo->cfg.iov != NULL) {
172 dinfo->cfg.iov = iov;
173 iov->iov_cdev->si_drv1 = dinfo;
190 struct pci_devinfo *dinfo;
195 dinfo = device_get_ivars(dev);
196 iov = dinfo->cfg.iov;
208 error = pci_iov_delete_iov_children(dinfo);
214 dinfo->cfg.iov = NULL;
338 pci_iov_alloc_bar(struct pci_devinfo *dinfo, int bar, pci_addr_t bar_shift)
347 iov = dinfo->cfg.iov;
348 dev = dinfo->cfg.dev;
369 pci_iov_add_bars(struct pcicfg_iov *iov, struct pci_devinfo *dinfo)
379 dinfo->cfg.vf.index * bar->bar_size;
381 pci_add_bar(dinfo->cfg.dev, PCIR_BAR(i), bar_start,
490 pci_iov_config_page_size(struct pci_devinfo *dinfo)
494 page_cap = IOV_READ(dinfo, PCIR_SRIOV_PAGE_CAP, 4);
509 IOV_WRITE(dinfo, PCIR_SRIOV_PAGE_SIZE, page_size, 4);
544 pci_iov_alloc_bar_ea(struct pci_devinfo *dinfo, int bar)
552 rl = &dinfo->resources;
553 iov = dinfo->cfg.iov;
575 pci_iov_setup_bars(struct pci_devinfo *dinfo)
582 iov = dinfo->cfg.iov;
583 dev = dinfo->cfg.dev;
590 error = pci_iov_alloc_bar_ea(dinfo, i);
610 error = pci_iov_alloc_bar(dinfo, i,
623 pci_iov_enumerate_vfs(struct pci_devinfo *dinfo, const nvlist_t *config,
634 iov = dinfo->cfg.iov;
635 dev = dinfo->cfg.dev;
639 did = IOV_READ(dinfo, PCIR_SRIOV_VF_DID, 2);
680 struct pci_devinfo *dinfo;
692 dinfo = cdev->si_drv1;
693 iov = dinfo->cfg.iov;
694 dev = dinfo->cfg.dev;
710 total_vfs = IOV_READ(dinfo, PCIR_SRIOV_TOTAL_VFS, 2);
716 error = pci_iov_config_page_size(dinfo);
729 IOV_WRITE(dinfo, PCIR_SRIOV_NUM_VFS, num_vfs, 2);
731 rid_off = IOV_READ(dinfo, PCIR_SRIOV_VF_OFF, 2);
732 rid_stride = IOV_READ(dinfo, PCIR_SRIOV_VF_STRIDE, 2);
749 iov_ctl = IOV_READ(dinfo, PCIR_SRIOV_CTL, 2);
751 IOV_WRITE(dinfo, PCIR_SRIOV_CTL, iov_ctl, 2);
759 error = pci_iov_setup_bars(dinfo);
763 iov_ctl = IOV_READ(dinfo, PCIR_SRIOV_CTL, 2);
765 IOV_WRITE(dinfo, PCIR_SRIOV_CTL, iov_ctl, 2);
769 pci_iov_enumerate_vfs(dinfo, config, first_rid, rid_stride);
802 pci_iov_cfg_restore(device_t dev, struct pci_devinfo *dinfo)
806 iov = dinfo->cfg.iov;
808 IOV_WRITE(dinfo, PCIR_SRIOV_PAGE_SIZE, iov->iov_page_size, 4);
809 IOV_WRITE(dinfo, PCIR_SRIOV_NUM_VFS, iov->iov_num_vfs, 2);
810 IOV_WRITE(dinfo, PCIR_SRIOV_CTL, iov->iov_ctl, 2);
814 pci_iov_cfg_save(device_t dev, struct pci_devinfo *dinfo)
818 iov = dinfo->cfg.iov;
820 iov->iov_page_size = IOV_READ(dinfo, PCIR_SRIOV_PAGE_SIZE, 4);
821 iov->iov_ctl = IOV_READ(dinfo, PCIR_SRIOV_CTL, 2);
839 pci_iov_delete_iov_children(struct pci_devinfo *dinfo)
848 iov = dinfo->cfg.iov;
849 dev = dinfo->cfg.dev;
883 iov_ctl = IOV_READ(dinfo, PCIR_SRIOV_CTL, 2);
885 IOV_WRITE(dinfo, PCIR_SRIOV_CTL, iov_ctl, 2);
886 IOV_WRITE(dinfo, PCIR_SRIOV_NUM_VFS, 0, 2);
914 struct pci_devinfo *dinfo;
919 dinfo = cdev->si_drv1;
920 iov = dinfo->cfg.iov;
931 error = pci_iov_delete_iov_children(dinfo);
941 struct pci_devinfo *dinfo;
949 dinfo = cdev->si_drv1;
950 packed = nvlist_pack(dinfo->cfg.iov->iov_schema, &size);
1005 struct pci_devinfo *dinfo;
1014 dinfo = device_get_ivars(child);
1015 iov = dinfo->cfg.iov;
1041 rle = resource_list_add(&dinfo->resources, SYS_RES_MEMORY, *rid,
1054 resource_list_delete(&dinfo->resources, SYS_RES_MEMORY,
1068 struct pci_devinfo *dinfo;
1072 dinfo = device_get_ivars(child);
1076 KASSERT(rman_is_region_manager(r, &dinfo->cfg.iov->rman),
1078 &dinfo->cfg.iov->rman, r));
1087 rle = resource_list_find(&dinfo->resources, SYS_RES_MEMORY, rid);
1090 resource_list_delete(&dinfo->resources, SYS_RES_MEMORY,
1101 struct pci_devinfo *dinfo = device_get_ivars(child);
1108 KASSERT(rman_is_region_manager(r, &dinfo->cfg.iov->rman),
1110 &dinfo->cfg.iov->rman, r));
1132 struct pci_devinfo *dinfo = device_get_ivars(child);
1139 KASSERT(rman_is_region_manager(r, &dinfo->cfg.iov->rman),
1141 &dinfo->cfg.iov->rman, r));
1159 struct pci_devinfo *dinfo = device_get_ivars(child);
1164 KASSERT(rman_is_region_manager(r, &dinfo->cfg.iov->rman),
1166 &dinfo->cfg.iov->rman, r));
1191 struct pci_devinfo *dinfo = device_get_ivars(child);
1192 struct pcicfg_iov *iov = dinfo->cfg.iov;
1202 &dinfo->cfg.iov->rman, r));
1213 pres = pci_vf_find_parent_resource(dinfo->cfg.iov, r);
1226 struct pci_devinfo *dinfo = device_get_ivars(child);
1227 struct pcicfg_iov *iov = dinfo->cfg.iov;
1234 &dinfo->cfg.iov->rman, r));