Home
last modified time | relevance | path

Searched full:irq_domain (Results 1 – 25 of 958) sorted by relevance

12345678910>>...39

/kernel/linux/linux-6.6/include/linux/
Dirqdomain.h3 * irq_domain - IRQ translation domains
26 * a unique identifier for an interrupt controller, the irq_domain
42 struct irq_domain;
74 * struct irq_domain_ops - Methods for irq_domain objects
89 int (*match)(struct irq_domain *d, struct device_node *node,
91 int (*select)(struct irq_domain *d, struct irq_fwspec *fwspec,
93 int (*map)(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw);
94 void (*unmap)(struct irq_domain *d, unsigned int virq);
95 int (*xlate)(struct irq_domain *d, struct device_node *node,
100 int (*alloc)(struct irq_domain *d, unsigned int virq,
[all …]
Dmsi.h86 struct irq_domain;
233 struct irq_domain *domain;
403 struct irq_domain;
442 int (*msi_init)(struct irq_domain *domain,
446 void (*msi_free)(struct irq_domain *domain,
449 int (*msi_prepare)(struct irq_domain *domain,
452 void (*prepare_desc)(struct irq_domain *domain, msi_alloc_info_t *arg,
456 int (*domain_alloc_irqs)(struct irq_domain *domain,
458 void (*domain_free_irqs)(struct irq_domain *domain,
460 void (*msi_post_free)(struct irq_domain *domain,
[all …]
/kernel/linux/linux-5.10/include/linux/
Dirqdomain.h3 * irq_domain - IRQ translation domains
26 * a unique identifier for an interrupt controller, the irq_domain
40 struct irq_domain;
91 * struct irq_domain_ops - Methods for irq_domain objects
106 int (*match)(struct irq_domain *d, struct device_node *node,
108 int (*select)(struct irq_domain *d, struct irq_fwspec *fwspec,
110 int (*map)(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw);
111 void (*unmap)(struct irq_domain *d, unsigned int virq);
112 int (*xlate)(struct irq_domain *d, struct device_node *node,
117 int (*alloc)(struct irq_domain *d, unsigned int virq,
[all …]
Dmsi.h245 struct irq_domain;
293 int (*msi_init)(struct irq_domain *domain,
297 void (*msi_free)(struct irq_domain *domain,
300 int (*msi_check)(struct irq_domain *domain,
303 int (*msi_prepare)(struct irq_domain *domain,
309 int (*handle_error)(struct irq_domain *domain,
311 int (*domain_alloc_irqs)(struct irq_domain *domain,
313 void (*domain_free_irqs)(struct irq_domain *domain,
369 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
371 struct irq_domain *parent);
[all …]
/kernel/linux/linux-5.10/drivers/irqchip/
DKconfig66 select IRQ_DOMAIN
94 select IRQ_DOMAIN
101 select IRQ_DOMAIN
108 select IRQ_DOMAIN
114 select IRQ_DOMAIN
119 select IRQ_DOMAIN
125 select IRQ_DOMAIN
131 select IRQ_DOMAIN
136 select IRQ_DOMAIN
141 select IRQ_DOMAIN
[all …]
Dirq-loongarch-cpu.c16 static struct irq_domain *irq_domain; variable
41 handle_domain_irq(irq_domain, hwirq - 1, regs); in handle_cpu_irq()
47 return irq_create_mapping(irq_domain, INT_IPI); in get_ipi_irq()
52 return irq_create_mapping(irq_domain, INT_PCOV); in get_pmc_irq()
57 return irq_create_mapping(irq_domain, INT_TI); in get_timer_irq()
60 static int loongarch_cpu_intc_map(struct irq_domain *d, unsigned int irq, in loongarch_cpu_intc_map()
74 struct irq_domain * __init loongarch_cpu_irq_init(void) in loongarch_cpu_irq_init()
83 irq_domain = irq_domain_create_linear(domain_handle, EXCCODE_INT_NUM, in loongarch_cpu_irq_init()
86 if (!irq_domain) in loongarch_cpu_irq_init()
91 return irq_domain; in loongarch_cpu_irq_init()
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()
/kernel/linux/linux-6.6/drivers/irqchip/
DKconfig66 select IRQ_DOMAIN
94 select IRQ_DOMAIN
101 select IRQ_DOMAIN
107 select IRQ_DOMAIN
112 select IRQ_DOMAIN
117 select IRQ_DOMAIN
125 select IRQ_DOMAIN
133 select IRQ_DOMAIN
140 select IRQ_DOMAIN
145 select IRQ_DOMAIN
[all …]
Dirq-loongarch-cpu.c16 static struct irq_domain *irq_domain; variable
79 generic_handle_domain_irq(irq_domain, hwirq - 1); in handle_cpu_irq()
83 static int loongarch_cpu_intc_map(struct irq_domain *d, unsigned int irq, in loongarch_cpu_intc_map()
103 irq_domain = irq_domain_create_linear(cpuintc_handle, EXCCODE_INT_NUM, in cpuintc_of_init()
105 if (!irq_domain) in cpuintc_of_init()
120 return liointc_acpi_init(irq_domain, liointc_entry); in liointc_parse_madt()
128 return eiointc_acpi_init(irq_domain, eiointc_entry); in eiointc_parse_madt()
151 if (irq_domain) in cpuintc_acpi_init()
159 irq_domain = irq_domain_create_linear(cpuintc_handle, EXCCODE_INT_NUM, in cpuintc_acpi_init()
162 if (!irq_domain) in cpuintc_acpi_init()
Dirq-aspeed-i2c-ic.c24 struct irq_domain *irq_domain; member
41 generic_handle_domain_irq(i2c_ic->irq_domain, bit); in aspeed_i2c_ic_irq_handler()
50 static int aspeed_i2c_ic_map_irq_domain(struct irq_domain *domain, in aspeed_i2c_ic_map_irq_domain()
85 i2c_ic->irq_domain = irq_domain_add_linear(node, ASPEED_I2C_IC_NUM_BUS, in aspeed_i2c_ic_of_init()
88 if (!i2c_ic->irq_domain) { in aspeed_i2c_ic_of_init()
93 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;
139 struct irq_domain *d; in plat_irq_dispatch()
145 d = irq_domain; in plat_irq_dispatch()
152 static int mips_cpu_intc_map(struct irq_domain *d, unsigned int irq, in mips_cpu_intc_map()
183 static int mips_cpu_ipi_alloc(struct irq_domain *domain, unsigned int virq, in mips_cpu_ipi_alloc()
217 static int mips_cpu_ipi_match(struct irq_domain *d, struct device_node *node, in mips_cpu_ipi_match()
241 ipi_domain = irq_domain_add_hierarchy(irq_domain, in mips_cpu_register_ipi_domain()
263 irq_domain = irq_domain_add_legacy(of_node, 8, MIPS_CPU_IRQ_BASE, 0, in __mips_cpu_irq_init()
266 if (!irq_domain) in __mips_cpu_irq_init()
/kernel/linux/linux-5.10/arch/loongarch/include/asm/mach-loongson64/
Dirq.h57 struct irq_domain *liointc_acpi_init(struct irq_domain *parent,
59 struct irq_domain *eiointc_acpi_init(struct irq_domain *parent,
62 struct irq_domain *htvec_acpi_init(struct irq_domain *parent,
64 struct irq_domain *pch_lpc_acpi_init(struct irq_domain *parent,
66 struct irq_domain *pch_msi_acpi_init(struct irq_domain *parent,
68 struct irq_domain *pch_pic_acpi_init(struct irq_domain *parent,
79 extern struct irq_domain *cpu_domain;
80 extern struct irq_domain *liointc_domain;
81 extern struct irq_domain *pch_lpc_domain;
82 extern struct irq_domain *pch_msi_domain[MAX_IO_PICS];
[all …]
/kernel/linux/linux-5.10/Documentation/core-api/irq/
Dirq-domain.rst2 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 …]
/kernel/linux/linux-6.6/Documentation/core-api/irq/
Dirq-domain.rst2 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 The function will return a pointer to the irq_domain on success. The caller
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 …]
/kernel/linux/linux-6.6/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()
124 struct irq_domain *irq_domain = irq_desc_get_handler_data(desc); in hlwd_pic_irq_cascade() local
131 hwirq = __hlwd_pic_get_irq(irq_domain); in hlwd_pic_irq_cascade()
133 generic_handle_domain_irq(irq_domain, hwirq); in hlwd_pic_irq_cascade()
156 static struct irq_domain *__init hlwd_pic_init(struct device_node *np) in hlwd_pic_init()
158 struct irq_domain *irq_domain; in hlwd_pic_init() local
178 irq_domain = irq_domain_add_linear(np, HLWD_NR_IRQS, in hlwd_pic_init()
180 if (!irq_domain) { in hlwd_pic_init()
[all …]
/kernel/linux/linux-5.10/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()
183 pr_err("failed to allocate irq_domain\n"); 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()
154 pr_err("failed to allocate irq_domain\n"); in flipper_pic_init()
159 return irq_domain; in flipper_pic_init()
/kernel/linux/linux-6.6/arch/x86/include/asm/
Dirqdomain.h16 extern struct irq_domain *x86_vector_domain;
43 extern int mp_irqdomain_alloc(struct irq_domain *domain, unsigned int virq,
45 extern void mp_irqdomain_free(struct irq_domain *domain, unsigned int virq,
47 extern int mp_irqdomain_activate(struct irq_domain *domain,
49 extern void mp_irqdomain_deactivate(struct irq_domain *domain,
51 extern int mp_irqdomain_ioapic_idx(struct irq_domain *domain);
56 struct irq_domain *native_create_pci_msi_domain(void);
57 extern struct irq_domain *x86_pci_msi_default_domain;
/kernel/linux/linux-5.10/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);
55 struct irq_domain *native_create_pci_msi_domain(void);
56 extern struct irq_domain *x86_pci_msi_default_domain;
/kernel/linux/linux-5.10/kernel/irq/
Dirqdomain.c26 static struct irq_domain *irq_default_domain;
28 static int irq_domain_alloc_irqs_locked(struct irq_domain *domain, int irq_base,
31 static void irq_domain_check_hierarchy(struct irq_domain *domain);
41 static void debugfs_add_domain_dir(struct irq_domain *d);
42 static void debugfs_remove_domain_dir(struct irq_domain *d);
44 static inline void debugfs_add_domain_dir(struct irq_domain *d) { } in debugfs_add_domain_dir()
45 static inline void debugfs_remove_domain_dir(struct irq_domain *d) { } in debugfs_remove_domain_dir()
120 static struct irq_domain *__irq_domain_create(struct fwnode_handle *fwnode, in __irq_domain_create()
128 struct irq_domain *domain; in __irq_domain_create()
205 static void __irq_domain_publish(struct irq_domain *domain) in __irq_domain_publish()
[all …]
Dirq_sim.c18 struct irq_domain *domain;
28 struct irq_domain *domain;
121 static int irq_sim_domain_map(struct irq_domain *domain, in irq_sim_domain_map()
140 static void irq_sim_domain_unmap(struct irq_domain *domain, unsigned int virq) in irq_sim_domain_unmap()
159 * irq_domain_create_sim - Create a new interrupt simulator irq_domain and
165 * On success: return a new irq_domain object.
168 struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode, in irq_domain_create_sim()
207 void irq_domain_remove_sim(struct irq_domain *domain) in irq_domain_remove_sim()
234 * On success: return a new irq_domain object.
237 struct irq_domain *devm_irq_domain_create_sim(struct device *dev, in devm_irq_domain_create_sim()
/kernel/linux/linux-6.6/kernel/irq/
Dirqdomain.c26 static struct irq_domain *irq_default_domain;
28 static int irq_domain_alloc_irqs_locked(struct irq_domain *domain, int irq_base,
31 static void irq_domain_check_hierarchy(struct irq_domain *domain);
41 static void debugfs_add_domain_dir(struct irq_domain *d);
42 static void debugfs_remove_domain_dir(struct irq_domain *d);
44 static inline void debugfs_add_domain_dir(struct irq_domain *d) { } in debugfs_add_domain_dir()
45 static inline void debugfs_remove_domain_dir(struct irq_domain *d) { } in debugfs_remove_domain_dir()
129 static struct irq_domain *__irq_domain_create(struct fwnode_handle *fwnode, in __irq_domain_create()
137 struct irq_domain *domain; in __irq_domain_create()
229 static void __irq_domain_publish(struct irq_domain *domain) in __irq_domain_publish()
[all …]
Dirq_sim.c18 struct irq_domain *domain;
117 static int irq_sim_domain_map(struct irq_domain *domain, in irq_sim_domain_map()
136 static void irq_sim_domain_unmap(struct irq_domain *domain, unsigned int virq) in irq_sim_domain_unmap()
155 * irq_domain_create_sim - Create a new interrupt simulator irq_domain and
161 * On success: return a new irq_domain object.
164 struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode, in irq_domain_create_sim()
203 void irq_domain_remove_sim(struct irq_domain *domain) in irq_domain_remove_sim()
217 struct irq_domain *domain = data; in devm_irq_domain_remove_sim()
230 * On success: return a new irq_domain object.
233 struct irq_domain *devm_irq_domain_create_sim(struct device *dev, in devm_irq_domain_create_sim()
[all …]
/kernel/linux/linux-5.10/arch/x86/kernel/apic/
Dmsi.c24 struct irq_domain *x86_pci_msi_default_domain __ro_after_init;
187 int pci_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec, in pci_msi_prepare()
218 struct irq_domain * __init native_create_pci_msi_domain(void) in native_create_pci_msi_domain()
221 struct irq_domain *d; in native_create_pci_msi_domain()
266 struct irq_domain *arch_create_remap_msi_irq_domain(struct irq_domain *parent, in arch_create_remap_msi_irq_domain()
270 struct irq_domain *d; in arch_create_remap_msi_irq_domain()
300 static int dmar_msi_init(struct irq_domain *domain, in dmar_msi_init()
320 static struct irq_domain *dmar_get_irq_domain(void) in dmar_get_irq_domain()
322 static struct irq_domain *dmar_domain; in dmar_get_irq_domain()
344 struct irq_domain *domain = dmar_get_irq_domain(); in dmar_alloc_hwirq()
[all …]
/kernel/linux/linux-5.10/drivers/mailbox/
Dqcom-ipcc.c45 * @irq_domain: The irq_domain associated with this instance
54 struct irq_domain *irq_domain; member
83 virq = irq_find_mapping(ipcc->irq_domain, hwirq); in qcom_ipcc_irq_fn()
114 static int qcom_ipcc_domain_map(struct irq_domain *d, unsigned int irq, in qcom_ipcc_domain_map()
126 static int qcom_ipcc_domain_xlate(struct irq_domain *d, in qcom_ipcc_domain_xlate()
231 ipcc->irq_domain = irq_domain_add_tree(pdev->dev.of_node, in qcom_ipcc_probe()
233 if (!ipcc->irq_domain) in qcom_ipcc_probe()
253 irq_domain_remove(ipcc->irq_domain); in qcom_ipcc_probe()
263 irq_domain_remove(ipcc->irq_domain); in qcom_ipcc_remove()

12345678910>>...39