mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 14:05:39 +00:00
genirq/msi: Provide MSI_FLAG_PARENT_PM_DEV
Some platform-MSI implementations require that power management is redirected to the underlying interrupt chip device. To make this work with per device MSI domains provide a new feature flag and let the core code handle the setup of dev->pm_dev when set during device MSI domain creation. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Anup Patel <apatel@ventanamicro.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20240127161753.114685-14-apatel@ventanamicro.com
This commit is contained in:
parent
e49312fe09
commit
9bbe13a5d4
@ -554,6 +554,8 @@ enum {
|
||||
MSI_FLAG_FREE_MSI_DESCS = (1 << 6),
|
||||
/* Use dev->fwnode for MSI device domain creation */
|
||||
MSI_FLAG_USE_DEV_FWNODE = (1 << 7),
|
||||
/* Set parent->dev into domain->pm_dev on device domain creation */
|
||||
MSI_FLAG_PARENT_PM_DEV = (1 << 8),
|
||||
|
||||
/* Mask for the generic functionality */
|
||||
MSI_GENERIC_FLAGS_MASK = GENMASK(15, 0),
|
||||
|
@ -845,8 +845,11 @@ static struct irq_domain *__msi_create_irq_domain(struct fwnode_handle *fwnode,
|
||||
domain = irq_domain_create_hierarchy(parent, flags | IRQ_DOMAIN_FLAG_MSI, 0,
|
||||
fwnode, &msi_domain_ops, info);
|
||||
|
||||
if (domain)
|
||||
if (domain) {
|
||||
irq_domain_update_bus_token(domain, info->bus_token);
|
||||
if (info->flags & MSI_FLAG_PARENT_PM_DEV)
|
||||
domain->pm_dev = parent->pm_dev;
|
||||
}
|
||||
|
||||
return domain;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user