Lines Matching refs:dev

30 int pci_enable_msi(struct pci_dev *dev)  in pci_enable_msi()  argument
32 int rc = __pci_enable_msi_range(dev, 1, 1, NULL); in pci_enable_msi()
51 void pci_disable_msi(struct pci_dev *dev) in pci_disable_msi() argument
53 if (!pci_msi_enabled() || !dev || !dev->msi_enabled) in pci_disable_msi()
56 msi_lock_descs(&dev->dev); in pci_disable_msi()
57 pci_msi_shutdown(dev); in pci_disable_msi()
58 pci_free_msi_irqs(dev); in pci_disable_msi()
59 msi_unlock_descs(&dev->dev); in pci_disable_msi()
71 int pci_msix_vec_count(struct pci_dev *dev) in pci_msix_vec_count() argument
75 if (!dev->msix_cap) in pci_msix_vec_count()
78 pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control); in pci_msix_vec_count()
108 int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries, in pci_enable_msix_range() argument
111 return __pci_enable_msix_range(dev, entries, minvec, maxvec, NULL, 0); in pci_enable_msix_range()
123 bool pci_msix_can_alloc_dyn(struct pci_dev *dev) in pci_msix_can_alloc_dyn() argument
125 if (!dev->msix_cap) in pci_msix_can_alloc_dyn()
128 return pci_msi_domain_supports(dev, MSI_FLAG_PCI_MSIX_ALLOC_DYN, DENY_LEGACY); in pci_msix_can_alloc_dyn()
149 struct msi_map pci_msix_alloc_irq_at(struct pci_dev *dev, unsigned int index, in pci_msix_alloc_irq_at() argument
154 if (!dev->msix_enabled) in pci_msix_alloc_irq_at()
157 if (!pci_msix_can_alloc_dyn(dev)) in pci_msix_alloc_irq_at()
160 return msi_domain_alloc_irq_at(&dev->dev, MSI_DEFAULT_DOMAIN, index, affdesc, NULL); in pci_msix_alloc_irq_at()
172 void pci_msix_free_irq(struct pci_dev *dev, struct msi_map map) in pci_msix_free_irq() argument
176 if (WARN_ON_ONCE(!pci_msix_can_alloc_dyn(dev))) in pci_msix_free_irq()
178 msi_domain_free_irqs_range(&dev->dev, MSI_DEFAULT_DOMAIN, map.index, map.index); in pci_msix_free_irq()
194 void pci_disable_msix(struct pci_dev *dev) in pci_disable_msix() argument
196 if (!pci_msi_enabled() || !dev || !dev->msix_enabled) in pci_disable_msix()
199 msi_lock_descs(&dev->dev); in pci_disable_msix()
200 pci_msix_shutdown(dev); in pci_disable_msix()
201 pci_free_msi_irqs(dev); in pci_disable_msix()
202 msi_unlock_descs(&dev->dev); in pci_disable_msix()
234 int pci_alloc_irq_vectors(struct pci_dev *dev, unsigned int min_vecs, in pci_alloc_irq_vectors() argument
237 return pci_alloc_irq_vectors_affinity(dev, min_vecs, max_vecs, in pci_alloc_irq_vectors()
254 int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs, in pci_alloc_irq_vectors_affinity() argument
270 nvecs = __pci_enable_msix_range(dev, NULL, min_vecs, max_vecs, in pci_alloc_irq_vectors_affinity()
277 nvecs = __pci_enable_msi_range(dev, min_vecs, max_vecs, affd); in pci_alloc_irq_vectors_affinity()
284 if (min_vecs == 1 && dev->irq) { in pci_alloc_irq_vectors_affinity()
292 pci_intx(dev, 1); in pci_alloc_irq_vectors_affinity()
313 int pci_irq_vector(struct pci_dev *dev, unsigned int nr) in pci_irq_vector() argument
317 if (!dev->msi_enabled && !dev->msix_enabled) in pci_irq_vector()
318 return !nr ? dev->irq : -EINVAL; in pci_irq_vector()
320 irq = msi_get_virq(&dev->dev, nr); in pci_irq_vector()
342 const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr) in pci_irq_get_affinity() argument
344 int idx, irq = pci_irq_vector(dev, nr); in pci_irq_get_affinity()
363 idx = dev->msi_enabled ? nr : 0; in pci_irq_get_affinity()
395 struct msi_map pci_ims_alloc_irq(struct pci_dev *dev, union msi_instance_cookie *icookie, in pci_ims_alloc_irq() argument
398 return msi_domain_alloc_irq_at(&dev->dev, MSI_SECONDARY_DOMAIN, MSI_ANY_INDEX, in pci_ims_alloc_irq()
410 void pci_ims_free_irq(struct pci_dev *dev, struct msi_map map) in pci_ims_free_irq() argument
414 msi_domain_free_irqs_range(&dev->dev, MSI_SECONDARY_DOMAIN, map.index, map.index); in pci_ims_free_irq()
426 void pci_free_irq_vectors(struct pci_dev *dev) in pci_free_irq_vectors() argument
428 pci_disable_msix(dev); in pci_free_irq_vectors()
429 pci_disable_msi(dev); in pci_free_irq_vectors()
441 void pci_restore_msi_state(struct pci_dev *dev) in pci_restore_msi_state() argument
443 __pci_restore_msi_state(dev); in pci_restore_msi_state()
444 __pci_restore_msix_state(dev); in pci_restore_msi_state()