Lines Matching refs:iov

46 	struct pci_sriov *iov = dev->sriov;  in pci_iov_set_numvfs()  local
48 pci_write_config_word(dev, iov->pos + PCI_SRIOV_NUM_VF, nr_virtfn); in pci_iov_set_numvfs()
49 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_OFFSET, &iov->offset); in pci_iov_set_numvfs()
50 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_STRIDE, &iov->stride); in pci_iov_set_numvfs()
62 struct pci_sriov *iov = dev->sriov; in virtfn_max_buses() local
67 for (nr_virtfn = 1; nr_virtfn <= iov->total_VFs; nr_virtfn++) { in virtfn_max_buses()
119 struct pci_sriov *iov = dev->sriov; in virtfn_add() local
122 mutex_lock(&iov->dev->sriov->lock); in virtfn_add()
133 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_DID, &virtfn->device); in virtfn_add()
157 mutex_unlock(&iov->dev->sriov->lock); in virtfn_add()
176 mutex_lock(&iov->dev->sriov->lock); in virtfn_add()
181 mutex_unlock(&iov->dev->sriov->lock); in virtfn_add()
190 struct pci_sriov *iov = dev->sriov; in virtfn_remove() local
213 mutex_lock(&iov->dev->sriov->lock); in virtfn_remove()
216 mutex_unlock(&iov->dev->sriov->lock); in virtfn_remove()
236 struct pci_sriov *iov = dev->sriov; in sriov_enable() local
244 if (iov->num_VFs) in sriov_enable()
247 pci_read_config_word(dev, iov->pos + PCI_SRIOV_INITIAL_VF, &initial); in sriov_enable()
248 if (initial > iov->total_VFs || in sriov_enable()
249 (!(iov->cap & PCI_SRIOV_CAP_VFM) && (initial != iov->total_VFs))) in sriov_enable()
252 if (nr_virtfn < 0 || nr_virtfn > iov->total_VFs || in sriov_enable()
253 (!(iov->cap & PCI_SRIOV_CAP_VFM) && (nr_virtfn > initial))) in sriov_enable()
256 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_OFFSET, &offset); in sriov_enable()
257 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_STRIDE, &stride); in sriov_enable()
268 if (nres != iov->nres) { in sriov_enable()
273 iov->offset = offset; in sriov_enable()
274 iov->stride = stride; in sriov_enable()
288 if (iov->link != dev->devfn) { in sriov_enable()
289 pdev = pci_get_slot(dev->bus, iov->link); in sriov_enable()
306 iov->ctrl |= PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE; in sriov_enable()
308 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_enable()
312 iov->initial_VFs = initial; in sriov_enable()
329 iov->num_VFs = nr_virtfn; in sriov_enable()
337 iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); in sriov_enable()
339 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_enable()
344 if (iov->link != dev->devfn) in sriov_enable()
358 struct pci_sriov *iov = dev->sriov; in sriov_disable() local
360 if (!iov->num_VFs) in sriov_disable()
363 for (i = 0; i < iov->num_VFs; i++) in sriov_disable()
368 iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); in sriov_disable()
370 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_disable()
374 if (iov->link != dev->devfn) in sriov_disable()
377 iov->num_VFs = 0; in sriov_disable()
388 struct pci_sriov *iov; in sriov_init() local
432 iov = kzalloc(sizeof(*iov), GFP_KERNEL); in sriov_init()
433 if (!iov) in sriov_init()
447 iov->barsz[i] = resource_size(res); in sriov_init()
455 iov->pos = pos; in sriov_init()
456 iov->nres = nres; in sriov_init()
457 iov->ctrl = ctrl; in sriov_init()
458 iov->total_VFs = total; in sriov_init()
459 iov->offset = offset; in sriov_init()
460 iov->stride = stride; in sriov_init()
461 iov->pgsz = pgsz; in sriov_init()
462 iov->self = dev; in sriov_init()
463 pci_read_config_dword(dev, pos + PCI_SRIOV_CAP, &iov->cap); in sriov_init()
464 pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link); in sriov_init()
466 iov->link = PCI_DEVFN(PCI_SLOT(dev->devfn), iov->link); in sriov_init()
469 iov->dev = pci_dev_get(pdev); in sriov_init()
471 iov->dev = dev; in sriov_init()
473 mutex_init(&iov->lock); in sriov_init()
475 dev->sriov = iov; in sriov_init()
477 iov->max_VF_buses = virtfn_max_buses(dev); in sriov_init()
487 kfree(iov); in sriov_init()
508 struct pci_sriov *iov = dev->sriov; in sriov_restore_state() local
510 pci_read_config_word(dev, iov->pos + PCI_SRIOV_CTRL, &ctrl); in sriov_restore_state()
517 pci_write_config_dword(dev, iov->pos + PCI_SRIOV_SYS_PGSIZE, iov->pgsz); in sriov_restore_state()
518 pci_iov_set_numvfs(dev, iov->num_VFs); in sriov_restore_state()
519 pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); in sriov_restore_state()
520 if (iov->ctrl & PCI_SRIOV_CTRL_VFE) in sriov_restore_state()