aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/irqdomain.h
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2019-02-20 08:59:23 +0000
committerMarc Zyngier <marc.zyngier@arm.com>2019-02-21 10:32:28 +0000
commit9f199dd34ce06f603df365ab18bd84eefc5f7c2b (patch)
treed0d7569dbdb9d4ebead9cefa5e21a8973cf4090e /include/linux/irqdomain.h
parentirqchip/sifive-plic: Implement irq_set_affinity() for SMP host (diff)
downloadwireguard-linux-9f199dd34ce06f603df365ab18bd84eefc5f7c2b.tar.xz
wireguard-linux-9f199dd34ce06f603df365ab18bd84eefc5f7c2b.zip
irqdomain: Allow the default irq domain to be retrieved
The default irq domain allows legacy code to create irqdomain mappings without having to track the domain it is allocating from. Setting the default domain is a one shot, fire and forget operation, and no effort was made to be able to retrieve this information at a later point in time. Newer irqdomain APIs (the hierarchical stuff) relies on both the irqchip code to track the irqdomain it is allocating from, as well as some form of firmware abstraction to easily identify which piece of HW maps to which irq domain (DT, ACPI). For systems without such firmware (or legacy platform that are getting dragged into the 21st century), things are a bit harder. For these cases (and these cases only!), let's provide a way to retrieve the default domain, allowing the use of the v2 API without having to resort to platform-specific hacks. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'include/linux/irqdomain.h')
-rw-r--r--include/linux/irqdomain.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index 35965f41d7be..d2130dc7c0e6 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -265,6 +265,7 @@ extern struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec,
enum irq_domain_bus_token bus_token);
extern bool irq_domain_check_msi_remap(void);
extern void irq_set_default_host(struct irq_domain *host);
+extern struct irq_domain *irq_get_default_host(void);
extern int irq_domain_alloc_descs(int virq, unsigned int nr_irqs,
irq_hw_number_t hwirq, int node,
const struct irq_affinity_desc *affinity);