Lines Matching full:domid
40 * @domid: ID of the domain on which management operations should be done
47 unsigned int domid; member
59 static unsigned int msi_domain_get_hwsize(struct device *dev, unsigned int domid);
101 unsigned int domid, unsigned int index) in msi_insert_desc() argument
104 struct xarray *xa = &md->__domains[domid].store; in msi_insert_desc()
108 hwsize = msi_domain_get_hwsize(dev, domid); in msi_insert_desc()
143 * @domid: The id of the interrupt domain to which the desriptor is added
148 int msi_domain_insert_msi_desc(struct device *dev, unsigned int domid, in msi_domain_insert_msi_desc() argument
162 return msi_insert_desc(dev, desc, domid, init_desc->msi_index); in msi_domain_insert_msi_desc()
183 if (WARN_ON_ONCE(ctrl->domid >= MSI_MAX_DEVICE_IRQDOMAINS || in msi_ctrl_valid()
185 !dev->msi.data->__domains[ctrl->domid].domain))) in msi_ctrl_valid()
188 hwsize = msi_domain_get_hwsize(dev, ctrl->domid); in msi_ctrl_valid()
207 xa = &dev->msi.data->__domains[ctrl->domid].store; in msi_domain_free_descs()
221 * @domid: Id of the domain to operate on
225 void msi_domain_free_msi_descs_range(struct device *dev, unsigned int domid, in msi_domain_free_msi_descs_range() argument
229 .domid = domid, in msi_domain_free_msi_descs_range()
259 ret = msi_insert_desc(dev, desc, ctrl->domid, idx); in msi_domain_add_simple_msi_descs()
366 static struct msi_desc *msi_find_desc(struct msi_device_data *md, unsigned int domid, in msi_find_desc() argument
369 struct xarray *xa = &md->__domains[domid].store; in msi_find_desc()
383 * @domid: The id of the interrupt domain which should be walked.
392 struct msi_desc *msi_domain_first_desc(struct device *dev, unsigned int domid, in msi_domain_first_desc() argument
397 if (WARN_ON_ONCE(!md || domid >= MSI_MAX_DEVICE_IRQDOMAINS)) in msi_domain_first_desc()
403 return msi_find_desc(md, domid, filter); in msi_domain_first_desc()
410 * @domid: The id of the interrupt domain which should be walked.
421 struct msi_desc *msi_next_desc(struct device *dev, unsigned int domid, in msi_next_desc() argument
426 if (WARN_ON_ONCE(!md || domid >= MSI_MAX_DEVICE_IRQDOMAINS)) in msi_next_desc()
435 return msi_find_desc(md, domid, filter); in msi_next_desc()
442 * @domid: Domain ID of the interrupt domain associated to the device
447 unsigned int msi_domain_get_virq(struct device *dev, unsigned int domid, unsigned int index) in msi_domain_get_virq() argument
457 if (WARN_ON_ONCE(index > MSI_MAX_INDEX || domid >= MSI_MAX_DEVICE_IRQDOMAINS)) in msi_domain_get_virq()
461 if (dev_is_pci(dev) && domid == MSI_DEFAULT_DOMAIN) in msi_domain_get_virq()
465 xa = &dev->msi.data->__domains[domid].store; in msi_domain_get_virq()
600 static struct irq_domain *msi_get_device_domain(struct device *dev, unsigned int domid) in msi_get_device_domain() argument
606 if (WARN_ON_ONCE(domid >= MSI_MAX_DEVICE_IRQDOMAINS)) in msi_get_device_domain()
609 domain = dev->msi.data->__domains[domid].domain; in msi_get_device_domain()
619 static unsigned int msi_domain_get_hwsize(struct device *dev, unsigned int domid) in msi_domain_get_hwsize() argument
624 domain = msi_get_device_domain(dev, domid); in msi_domain_get_hwsize()
932 * @domid: Domain id
976 bool msi_create_device_irq_domain(struct device *dev, unsigned int domid, in msi_create_device_irq_domain() argument
989 if (domid >= MSI_MAX_DEVICE_IRQDOMAINS) in msi_create_device_irq_domain()
1028 if (WARN_ON_ONCE(msi_get_device_domain(dev, domid))) in msi_create_device_irq_domain()
1039 dev->msi.data->__domains[domid].domain = domain; in msi_create_device_irq_domain()
1055 * @domid: Domain id
1057 void msi_remove_device_irq_domain(struct device *dev, unsigned int domid) in msi_remove_device_irq_domain() argument
1065 domain = msi_get_device_domain(dev, domid); in msi_remove_device_irq_domain()
1070 dev->msi.data->__domains[domid].domain = NULL; in msi_remove_device_irq_domain()
1085 * @domid: Domain id
1090 bool msi_match_device_irq_domain(struct device *dev, unsigned int domid, in msi_match_device_irq_domain() argument
1098 domain = msi_get_device_domain(dev, domid); in msi_match_device_irq_domain()
1225 struct xarray *xa = &dev->msi.data->__domains[ctrl->domid].store; in __msi_domain_alloc_irqs()
1309 domain = msi_get_device_domain(dev, ctrl->domid); in __msi_domain_alloc_locked()
1339 * @domid: Id of the interrupt domain to operate on
1349 int msi_domain_alloc_irqs_range_locked(struct device *dev, unsigned int domid, in msi_domain_alloc_irqs_range_locked() argument
1353 .domid = domid, in msi_domain_alloc_irqs_range_locked()
1366 * @domid: Id of the interrupt domain to operate on
1372 int msi_domain_alloc_irqs_range(struct device *dev, unsigned int domid, in msi_domain_alloc_irqs_range() argument
1378 ret = msi_domain_alloc_irqs_range_locked(dev, domid, first, last); in msi_domain_alloc_irqs_range()
1389 * @domid: Id of the interrupt domain to operate on
1398 int msi_domain_alloc_irqs_all_locked(struct device *dev, unsigned int domid, int nirqs) in msi_domain_alloc_irqs_all_locked() argument
1401 .domid = domid, in msi_domain_alloc_irqs_all_locked()
1403 .last = msi_domain_get_hwsize(dev, domid) - 1, in msi_domain_alloc_irqs_all_locked()
1410 static struct msi_map __msi_domain_alloc_irq_at(struct device *dev, unsigned int domid, in __msi_domain_alloc_irq_at() argument
1415 struct msi_ctrl ctrl = { .domid = domid, .nirqs = 1, }; in __msi_domain_alloc_irq_at()
1421 domain = msi_get_device_domain(dev, domid); in __msi_domain_alloc_irq_at()
1436 ret = msi_insert_desc(dev, desc, domid, index); in __msi_domain_alloc_irq_at()
1461 * @domid: Id of the interrupt domain to operate on
1480 struct msi_map msi_domain_alloc_irq_at(struct device *dev, unsigned int domid, unsigned int index, in msi_domain_alloc_irq_at() argument
1487 map = __msi_domain_alloc_irq_at(dev, domid, index, affdesc, icookie); in msi_domain_alloc_irq_at()
1516 unsigned int domid = MSI_DEFAULT_DOMAIN; in msi_device_domain_alloc_wired() local
1527 if (WARN_ON_ONCE(msi_get_device_domain(dev, domid) != domain)) in msi_device_domain_alloc_wired()
1530 map = __msi_domain_alloc_irq_at(dev, domid, MSI_ANY_INDEX, NULL, &icookie); in msi_device_domain_alloc_wired()
1539 struct xarray *xa = &dev->msi.data->__domains[ctrl->domid].store; in __msi_domain_free_irqs()
1574 domain = msi_get_device_domain(dev, ctrl->domid); in msi_domain_free_locked()
1598 * @domid: Id of the interrupt domain to operate on
1602 void msi_domain_free_irqs_range_locked(struct device *dev, unsigned int domid, in msi_domain_free_irqs_range_locked() argument
1606 .domid = domid, in msi_domain_free_irqs_range_locked()
1618 * @domid: Id of the interrupt domain to operate on
1622 void msi_domain_free_irqs_range(struct device *dev, unsigned int domid, in msi_domain_free_irqs_range() argument
1626 msi_domain_free_irqs_range_locked(dev, domid, first, last); in msi_domain_free_irqs_range()
1636 * @domid: The id of the domain to operate on
1642 void msi_domain_free_irqs_all_locked(struct device *dev, unsigned int domid) in msi_domain_free_irqs_all_locked() argument
1644 msi_domain_free_irqs_range_locked(dev, domid, 0, in msi_domain_free_irqs_all_locked()
1645 msi_domain_get_hwsize(dev, domid) - 1); in msi_domain_free_irqs_all_locked()
1653 * @domid: The id of the domain to operate on
1655 void msi_domain_free_irqs_all(struct device *dev, unsigned int domid) in msi_domain_free_irqs_all() argument
1658 msi_domain_free_irqs_all_locked(dev, domid); in msi_domain_free_irqs_all()