Home
last modified time | relevance | path

Searched refs:irq_domain (Results 1 – 25 of 378) sorted by relevance

12345678910>>...16

/Linux-v5.4/include/linux/
Dirqdomain.h40 struct irq_domain;
104 int (*match)(struct irq_domain *d, struct device_node *node,
106 int (*select)(struct irq_domain *d, struct irq_fwspec *fwspec,
108 int (*map)(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw);
109 void (*unmap)(struct irq_domain *d, unsigned int virq);
110 int (*xlate)(struct irq_domain *d, struct device_node *node,
115 int (*alloc)(struct irq_domain *d, unsigned int virq,
117 void (*free)(struct irq_domain *d, unsigned int virq,
119 int (*activate)(struct irq_domain *d, struct irq_data *irqd, bool reserve);
120 void (*deactivate)(struct irq_domain *d, struct irq_data *irq_data);
[all …]
Dmsi.h227 struct irq_domain;
255 int (*msi_init)(struct irq_domain *domain,
259 void (*msi_free)(struct irq_domain *domain,
262 int (*msi_check)(struct irq_domain *domain,
265 int (*msi_prepare)(struct irq_domain *domain,
271 int (*handle_error)(struct irq_domain *domain,
327 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
329 struct irq_domain *parent);
330 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
332 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
[all …]
/Linux-v5.4/kernel/irq/
Dirqdomain.c26 static struct irq_domain *irq_default_domain;
28 static void irq_domain_check_hierarchy(struct irq_domain *domain);
38 static void debugfs_add_domain_dir(struct irq_domain *d);
39 static void debugfs_remove_domain_dir(struct irq_domain *d);
41 static inline void debugfs_add_domain_dir(struct irq_domain *d) { } in debugfs_add_domain_dir()
42 static inline void debugfs_remove_domain_dir(struct irq_domain *d) { } in debugfs_remove_domain_dir()
130 struct irq_domain *__irq_domain_add(struct fwnode_handle *fwnode, int size, in __irq_domain_add()
137 struct irq_domain *domain; in __irq_domain_add()
243 void irq_domain_remove(struct irq_domain *domain) in irq_domain_remove()
269 void irq_domain_update_bus_token(struct irq_domain *domain, in irq_domain_update_bus_token()
[all …]
Dmsi.c79 static void msi_check_level(struct irq_domain *domain, struct msi_msg *msg) in msi_check_level()
118 static int msi_domain_activate(struct irq_domain *domain, in msi_domain_activate()
129 static void msi_domain_deactivate(struct irq_domain *domain, in msi_domain_deactivate()
138 static int msi_domain_alloc(struct irq_domain *domain, unsigned int virq, in msi_domain_alloc()
170 static void msi_domain_free(struct irq_domain *domain, unsigned int virq, in msi_domain_free()
197 static int msi_domain_ops_prepare(struct irq_domain *domain, struct device *dev, in msi_domain_ops_prepare()
215 static int msi_domain_ops_init(struct irq_domain *domain, in msi_domain_ops_init()
230 static int msi_domain_ops_check(struct irq_domain *domain, in msi_domain_ops_check()
281 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode, in msi_create_irq_domain()
283 struct irq_domain *parent) in msi_create_irq_domain()
[all …]
/Linux-v5.4/arch/x86/include/asm/
Dirqdomain.h15 extern struct irq_domain *x86_vector_domain;
42 extern int mp_irqdomain_alloc(struct irq_domain *domain, unsigned int virq,
44 extern void mp_irqdomain_free(struct irq_domain *domain, unsigned int virq,
46 extern int mp_irqdomain_activate(struct irq_domain *domain,
48 extern void mp_irqdomain_deactivate(struct irq_domain *domain,
50 extern int mp_irqdomain_ioapic_idx(struct irq_domain *domain);
54 extern void arch_init_msi_domain(struct irq_domain *domain);
56 static inline void arch_init_msi_domain(struct irq_domain *domain) { } in arch_init_msi_domain()
Dirq_remapping.h47 extern struct irq_domain *
49 extern struct irq_domain *
53 extern struct irq_domain *
54 arch_create_remap_msi_irq_domain(struct irq_domain *par, const char *n, int id);
57 static inline struct irq_domain *arch_get_ir_parent_domain(void) in arch_get_ir_parent_domain()
76 static inline struct irq_domain *
82 static inline struct irq_domain *
/Linux-v5.4/arch/powerpc/platforms/embedded6xx/
Dhlwd-pic.c93 static struct irq_domain *hlwd_irq_host;
95 static int hlwd_pic_map(struct irq_domain *h, unsigned int virq, in hlwd_pic_map()
108 static unsigned int __hlwd_pic_get_irq(struct irq_domain *h) in __hlwd_pic_get_irq()
126 struct irq_domain *irq_domain = irq_desc_get_handler_data(desc); in hlwd_pic_irq_cascade() local
133 virq = __hlwd_pic_get_irq(irq_domain); in hlwd_pic_irq_cascade()
158 static struct irq_domain *hlwd_pic_init(struct device_node *np) in hlwd_pic_init()
160 struct irq_domain *irq_domain; in hlwd_pic_init() local
180 irq_domain = irq_domain_add_linear(np, HLWD_NR_IRQS, in hlwd_pic_init()
182 if (!irq_domain) { in hlwd_pic_init()
188 return irq_domain; in hlwd_pic_init()
[all …]
Dflipper-pic.c95 static struct irq_domain *flipper_irq_host;
97 static int flipper_pic_map(struct irq_domain *h, unsigned int virq, in flipper_pic_map()
122 static struct irq_domain * __init flipper_pic_init(struct device_node *np) in flipper_pic_init()
125 struct irq_domain *irq_domain = NULL; in flipper_pic_init() local
151 irq_domain = irq_domain_add_linear(np, FLIPPER_NR_IRQS, in flipper_pic_init()
153 if (!irq_domain) { in flipper_pic_init()
159 return irq_domain; in flipper_pic_init()
/Linux-v5.4/arch/x86/kernel/apic/
Dmsi.c24 static struct irq_domain *msi_default_domain;
66 struct irq_domain *domain; in native_setup_msi_irqs()
93 int pci_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec, in pci_msi_prepare()
133 void __init arch_init_msi_domain(struct irq_domain *parent) in arch_init_msi_domain()
171 struct irq_domain *arch_create_remap_msi_irq_domain(struct irq_domain *parent, in arch_create_remap_msi_irq_domain()
175 struct irq_domain *d; in arch_create_remap_msi_irq_domain()
210 static int dmar_msi_init(struct irq_domain *domain, in dmar_msi_init()
230 static struct irq_domain *dmar_get_irq_domain(void) in dmar_get_irq_domain()
232 static struct irq_domain *dmar_domain; in dmar_get_irq_domain()
253 struct irq_domain *domain = dmar_get_irq_domain(); in dmar_alloc_hwirq()
[all …]
/Linux-v5.4/drivers/irqchip/
Dirq-aspeed-i2c-ic.c24 struct irq_domain *irq_domain; member
42 bus_irq = irq_find_mapping(i2c_ic->irq_domain, bit); in aspeed_i2c_ic_irq_handler()
52 static int aspeed_i2c_ic_map_irq_domain(struct irq_domain *domain, in aspeed_i2c_ic_map_irq_domain()
87 i2c_ic->irq_domain = irq_domain_add_linear(node, ASPEED_I2C_IC_NUM_BUS, in aspeed_i2c_ic_of_init()
90 if (!i2c_ic->irq_domain) { in aspeed_i2c_ic_of_init()
95 i2c_ic->irq_domain->name = "aspeed-i2c-domain"; in aspeed_i2c_ic_of_init()
Dirq-mips-cpu.c37 static struct irq_domain *irq_domain; variable
38 static struct irq_domain *ipi_domain;
144 virq = irq_linear_revmap(irq_domain, irq); in plat_irq_dispatch()
150 static int mips_cpu_intc_map(struct irq_domain *d, unsigned int irq, in mips_cpu_intc_map()
181 static int mips_cpu_ipi_alloc(struct irq_domain *domain, unsigned int virq, in mips_cpu_ipi_alloc()
208 static int mips_cpu_ipi_match(struct irq_domain *d, struct device_node *node, in mips_cpu_ipi_match()
232 ipi_domain = irq_domain_add_hierarchy(irq_domain, in mips_cpu_register_ipi_domain()
254 irq_domain = irq_domain_add_legacy(of_node, 8, MIPS_CPU_IRQ_BASE, 0, in __mips_cpu_irq_init()
257 if (!irq_domain) in __mips_cpu_irq_init()
Dirq-gic-v3-mbi.c41 static int mbi_irq_gic_domain_alloc(struct irq_domain *domain, in mbi_irq_gic_domain_alloc()
84 static int mbi_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in mbi_irq_domain_alloc()
130 static void mbi_irq_domain_free(struct irq_domain *domain, in mbi_irq_domain_free()
183 static int mbi_allocate_pci_domain(struct irq_domain *nexus_domain, in mbi_allocate_pci_domain()
184 struct irq_domain **pci_domain) in mbi_allocate_pci_domain()
195 static int mbi_allocate_pci_domain(struct irq_domain *nexus_domain, in mbi_allocate_pci_domain()
196 struct irq_domain **pci_domain) in mbi_allocate_pci_domain()
232 static int mbi_allocate_domains(struct irq_domain *parent) in mbi_allocate_domains()
234 struct irq_domain *nexus_domain, *pci_domain, *plat_domain; in mbi_allocate_domains()
263 int __init mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent) in mbi_init()
Dirq-renesas-irqc.c52 struct irq_domain *irq_domain; member
118 generic_handle_irq(irq_find_mapping(p->irq_domain, i->hw_irq)); in irqc_irq_handler()
170 p->irq_domain = irq_domain_add_linear(dev->of_node, p->number_of_irqs, in irqc_probe()
172 if (!p->irq_domain) { in irqc_probe()
178 ret = irq_alloc_domain_generic_chips(p->irq_domain, p->number_of_irqs, in irqc_probe()
186 p->gc = irq_get_domain_generic_chip(p->irq_domain, 0); in irqc_probe()
212 irq_domain_remove(p->irq_domain); in irqc_probe()
223 irq_domain_remove(p->irq_domain); in irqc_remove()
Dirq-atmel-aic5.c68 static struct irq_domain *aic5_domain;
88 struct irq_domain *domain = d->domain; in aic5_mask()
105 struct irq_domain *domain = d->domain; in aic5_unmask()
122 struct irq_domain *domain = d->domain; in aic5_retrigger()
136 struct irq_domain *domain = d->domain; in aic5_set_type()
157 struct irq_domain *domain = d->domain; in aic5_suspend()
187 struct irq_domain *domain = d->domain; in aic5_resume()
223 struct irq_domain *domain = d->domain; in aic5_pm_shutdown()
243 static void __init aic5_hw_init(struct irq_domain *domain) in aic5_hw_init()
274 static int aic5_irq_domain_xlate(struct irq_domain *d, in aic5_irq_domain_xlate()
[all …]
Dirq-goldfish-pic.c30 struct irq_domain *irq_domain; member
44 virq = irq_linear_revmap(gfpic->irq_domain, hwirq); in goldfish_pic_cascade()
105 gfpic->irq_domain = irq_domain_add_legacy(of_node, GFPIC_NR_IRQS, in goldfish_pic_of_init()
109 if (!gfpic->irq_domain) { in goldfish_pic_of_init()
Dirq-renesas-rza1.c45 struct irq_domain *irq_domain; member
102 static int rza1_irqc_alloc(struct irq_domain *domain, unsigned int virq, in rza1_irqc_alloc()
125 static int rza1_irqc_translate(struct irq_domain *domain, in rza1_irqc_translate()
194 struct irq_domain *parent = NULL; in rza1_irqc_probe()
234 priv->irq_domain = irq_domain_add_hierarchy(parent, 0, IRQC_NUM_IRQ, in rza1_irqc_probe()
237 if (!priv->irq_domain) { in rza1_irqc_probe()
251 irq_domain_remove(priv->irq_domain); in rza1_irqc_remove()
Dirq-sun4i.c40 struct irq_domain *irq_domain; member
93 static int sun4i_irq_map(struct irq_domain *d, unsigned int virq, in sun4i_irq_map()
136 irq_ic_data->irq_domain = irq_domain_add_linear(node, 3 * 32, in sun4i_of_init()
138 if (!irq_ic_data->irq_domain) in sun4i_of_init()
202 handle_domain_irq(irq_ic_data->irq_domain, hwirq, regs); in sun4i_handle_irq()
/Linux-v5.4/Documentation/
DIRQ-domain.txt2 The irq_domain interrupt number mapping library
32 The irq_domain library adds mapping between hwirq and IRQ numbers on
33 top of the irq_alloc_desc*() API. An irq_domain to manage mapping is
37 irq_domain also implements translation from an abstract irq_fwspec
41 irq_domain usage
44 An interrupt controller driver creates and registers an irq_domain by
47 will return a pointer to the irq_domain on success. The caller must
50 In most cases, the irq_domain will begin empty without any mappings
51 between hwirq and IRQ numbers. Mappings are added to the irq_domain
52 by calling irq_create_mapping() which accepts the irq_domain and a
[all …]
/Linux-v5.4/include/linux/mfd/
Dcore.h15 struct irq_domain;
119 int irq_base, struct irq_domain *irq_domain);
133 int irq_base, struct irq_domain *irq_domain);
/Linux-v5.4/drivers/gpio/
Dgpio-xgene-sb.c52 struct irq_domain *irq_domain; member
129 static int xgene_gpio_sb_domain_activate(struct irq_domain *d, in xgene_gpio_sb_domain_activate()
150 static void xgene_gpio_sb_domain_deactivate(struct irq_domain *d, in xgene_gpio_sb_domain_deactivate()
161 static int xgene_gpio_sb_domain_translate(struct irq_domain *d, in xgene_gpio_sb_domain_translate()
176 static int xgene_gpio_sb_domain_alloc(struct irq_domain *domain, in xgene_gpio_sb_domain_alloc()
222 struct irq_domain *parent_domain = NULL; in xgene_gpio_sb_probe()
275 priv->irq_domain = irq_domain_create_hierarchy(parent_domain, in xgene_gpio_sb_probe()
278 if (!priv->irq_domain) in xgene_gpio_sb_probe()
281 priv->gc.irq.domain = priv->irq_domain; in xgene_gpio_sb_probe()
287 irq_domain_remove(priv->irq_domain); in xgene_gpio_sb_probe()
[all …]
/Linux-v5.4/drivers/ssb/
Ddriver_gpio.c31 return irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_to_irq()
150 bus->irq_domain = irq_domain_add_linear(NULL, chip->ngpio, in ssb_gpio_irq_chipco_domain_init()
152 if (!bus->irq_domain) { in ssb_gpio_irq_chipco_domain_init()
157 int irq = irq_create_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_chipco_domain_init()
177 int irq = irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_chipco_domain_init()
181 irq_domain_remove(bus->irq_domain); in ssb_gpio_irq_chipco_domain_init()
198 int irq = irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_chipco_domain_exit()
202 irq_domain_remove(bus->irq_domain); in ssb_gpio_irq_chipco_domain_exit()
347 bus->irq_domain = irq_domain_add_linear(NULL, chip->ngpio, in ssb_gpio_irq_extif_domain_init()
349 if (!bus->irq_domain) { in ssb_gpio_irq_extif_domain_init()
[all …]
/Linux-v5.4/arch/powerpc/platforms/cell/
Daxon_msi.c67 struct irq_domain *irq_domain; member
152 struct irq_domain *irq_domain; in find_msi_translator() local
184 irq_domain = irq_find_host(dn); in find_msi_translator()
185 if (!irq_domain) { in find_msi_translator()
191 msic = irq_domain->host_data; in find_msi_translator()
269 virq = irq_create_direct_mapping(msic->irq_domain); in axon_msi_setup_msi_irqs()
307 static int msic_host_map(struct irq_domain *h, unsigned int virq, in msic_host_map()
326 irq_domain_get_of_node(msic->irq_domain)); in axon_msi_shutdown()
382 msic->irq_domain = irq_domain_add_nomap(dn, 65536, &msic_host_ops, msic); in axon_msi_probe()
383 if (!msic->irq_domain) { in axon_msi_probe()
/Linux-v5.4/arch/x86/platform/uv/
Duv_irq.c75 static int uv_domain_alloc(struct irq_domain *domain, unsigned int virq, in uv_domain_alloc()
109 static void uv_domain_free(struct irq_domain *domain, unsigned int virq, in uv_domain_free()
125 static int uv_domain_activate(struct irq_domain *domain, in uv_domain_activate()
136 static void uv_domain_deactivate(struct irq_domain *domain, in uv_domain_deactivate()
155 static struct irq_domain *uv_get_irq_domain(void) in uv_get_irq_domain()
157 static struct irq_domain *uv_domain; in uv_get_irq_domain()
188 struct irq_domain *domain = uv_get_irq_domain(); in uv_setup_irq()
/Linux-v5.4/drivers/bus/fsl-mc/
Dfsl-mc-msi.c160 struct irq_domain *fsl_mc_msi_create_irq_domain(struct fwnode_handle *fwnode, in fsl_mc_msi_create_irq_domain()
162 struct irq_domain *parent) in fsl_mc_msi_create_irq_domain()
164 struct irq_domain *domain; in fsl_mc_msi_create_irq_domain()
181 struct irq_domain **mc_msi_domain) in fsl_mc_find_msi_domain()
183 struct irq_domain *msi_domain; in fsl_mc_find_msi_domain()
239 struct irq_domain *msi_domain; in fsl_mc_msi_domain_alloc_irqs()
275 struct irq_domain *msi_domain; in fsl_mc_msi_domain_free_irqs()
/Linux-v5.4/drivers/mfd/
Dtwl6030-irq.c113 struct irq_domain *irq_domain; member
190 irq_find_mapping(pdata->irq_domain, in twl6030_irq_thread()
303 return irq_find_mapping(twl6030_irq->irq_domain, in twl6030_mmc_card_detect_config()
333 static int twl6030_irq_map(struct irq_domain *d, unsigned int virq, in twl6030_irq_map()
347 static void twl6030_irq_unmap(struct irq_domain *d, unsigned int virq) in twl6030_irq_unmap()
414 twl6030_irq->irq_domain = in twl6030_init_irq()
417 if (!twl6030_irq->irq_domain) { in twl6030_init_irq()
437 irq_domain_remove(twl6030_irq->irq_domain); in twl6030_init_irq()

12345678910>>...16