/Linux-v4.19/include/linux/ |
D | irqdomain.h | 40 struct irq_domain; 101 int (*match)(struct irq_domain *d, struct device_node *node, 103 int (*select)(struct irq_domain *d, struct irq_fwspec *fwspec, 105 int (*map)(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw); 106 void (*unmap)(struct irq_domain *d, unsigned int virq); 107 int (*xlate)(struct irq_domain *d, struct device_node *node, 112 int (*alloc)(struct irq_domain *d, unsigned int virq, 114 void (*free)(struct irq_domain *d, unsigned int virq, 116 int (*activate)(struct irq_domain *d, struct irq_data *irqd, bool reserve); 117 void (*deactivate)(struct irq_domain *d, struct irq_data *irq_data); [all …]
|
D | msi.h | 199 struct irq_domain; 227 int (*msi_init)(struct irq_domain *domain, 231 void (*msi_free)(struct irq_domain *domain, 234 int (*msi_check)(struct irq_domain *domain, 237 int (*msi_prepare)(struct irq_domain *domain, 243 int (*handle_error)(struct irq_domain *domain, 299 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode, 301 struct irq_domain *parent); 302 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, 304 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev); [all …]
|
/Linux-v4.19/arch/x86/include/asm/ |
D | irqdomain.h | 15 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()
|
D | irq_remapping.h | 57 extern struct irq_domain * 59 extern struct irq_domain * 63 extern struct irq_domain * 64 arch_create_remap_msi_irq_domain(struct irq_domain *par, const char *n, int id); 67 static inline struct irq_domain *arch_get_ir_parent_domain(void) in arch_get_ir_parent_domain() 86 static inline struct irq_domain * 92 static inline struct irq_domain *
|
/Linux-v4.19/kernel/irq/ |
D | irqdomain.c | 26 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() 129 struct irq_domain *__irq_domain_add(struct fwnode_handle *fwnode, int size, in __irq_domain_add() 136 struct irq_domain *domain; in __irq_domain_add() 241 void irq_domain_remove(struct irq_domain *domain) in irq_domain_remove() 267 void irq_domain_update_bus_token(struct irq_domain *domain, in irq_domain_update_bus_token() [all …]
|
D | msi.c | 79 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-v4.19/arch/powerpc/platforms/embedded6xx/ |
D | hlwd-pic.c | 98 static struct irq_domain *hlwd_irq_host; 100 static int hlwd_pic_map(struct irq_domain *h, unsigned int virq, in hlwd_pic_map() 113 static unsigned int __hlwd_pic_get_irq(struct irq_domain *h) in __hlwd_pic_get_irq() 131 struct irq_domain *irq_domain = irq_desc_get_handler_data(desc); in hlwd_pic_irq_cascade() local 138 virq = __hlwd_pic_get_irq(irq_domain); in hlwd_pic_irq_cascade() 163 static struct irq_domain *hlwd_pic_init(struct device_node *np) in hlwd_pic_init() 165 struct irq_domain *irq_domain; in hlwd_pic_init() local 185 irq_domain = irq_domain_add_linear(np, HLWD_NR_IRQS, in hlwd_pic_init() 187 if (!irq_domain) { in hlwd_pic_init() 193 return irq_domain; in hlwd_pic_init() [all …]
|
D | flipper-pic.c | 100 static struct irq_domain *flipper_irq_host; 102 static int flipper_pic_map(struct irq_domain *h, unsigned int virq, in flipper_pic_map() 127 static struct irq_domain * __init flipper_pic_init(struct device_node *np) in flipper_pic_init() 130 struct irq_domain *irq_domain = NULL; in flipper_pic_init() local 156 irq_domain = irq_domain_add_linear(np, FLIPPER_NR_IRQS, in flipper_pic_init() 158 if (!irq_domain) { in flipper_pic_init() 164 return irq_domain; in flipper_pic_init()
|
/Linux-v4.19/arch/x86/kernel/apic/ |
D | msi.c | 27 static struct irq_domain *msi_default_domain; 69 struct irq_domain *domain; in native_setup_msi_irqs() 96 int pci_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec, in pci_msi_prepare() 136 void __init arch_init_msi_domain(struct irq_domain *parent) in arch_init_msi_domain() 174 struct irq_domain *arch_create_remap_msi_irq_domain(struct irq_domain *parent, in arch_create_remap_msi_irq_domain() 178 struct irq_domain *d; in arch_create_remap_msi_irq_domain() 213 static int dmar_msi_init(struct irq_domain *domain, in dmar_msi_init() 233 static struct irq_domain *dmar_get_irq_domain(void) in dmar_get_irq_domain() 235 static struct irq_domain *dmar_domain; in dmar_get_irq_domain() 256 struct irq_domain *domain = dmar_get_irq_domain(); in dmar_alloc_hwirq() [all …]
|
/Linux-v4.19/drivers/irqchip/ |
D | irq-aspeed-i2c-ic.c | 27 struct irq_domain *irq_domain; member 45 bus_irq = irq_find_mapping(i2c_ic->irq_domain, bit); in aspeed_i2c_ic_irq_handler() 55 static int aspeed_i2c_ic_map_irq_domain(struct irq_domain *domain, in aspeed_i2c_ic_map_irq_domain() 90 i2c_ic->irq_domain = irq_domain_add_linear(node, ASPEED_I2C_IC_NUM_BUS, in aspeed_i2c_ic_of_init() 93 if (!i2c_ic->irq_domain) { in aspeed_i2c_ic_of_init() 98 i2c_ic->irq_domain->name = "aspeed-i2c-domain"; in aspeed_i2c_ic_of_init()
|
D | irq-mips-cpu.c | 41 static struct irq_domain *irq_domain; variable 42 static struct irq_domain *ipi_domain; 148 virq = irq_linear_revmap(irq_domain, irq); in plat_irq_dispatch() 154 static int mips_cpu_intc_map(struct irq_domain *d, unsigned int irq, in mips_cpu_intc_map() 185 static int mips_cpu_ipi_alloc(struct irq_domain *domain, unsigned int virq, in mips_cpu_ipi_alloc() 212 static int mips_cpu_ipi_match(struct irq_domain *d, struct device_node *node, in mips_cpu_ipi_match() 236 ipi_domain = irq_domain_add_hierarchy(irq_domain, in mips_cpu_register_ipi_domain() 258 irq_domain = irq_domain_add_legacy(of_node, 8, MIPS_CPU_IRQ_BASE, 0, in __mips_cpu_irq_init() 261 if (!irq_domain) in __mips_cpu_irq_init()
|
D | irq-gic-v3-mbi.c | 41 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() 124 static void mbi_irq_domain_free(struct irq_domain *domain, in mbi_irq_domain_free() 177 static int mbi_allocate_pci_domain(struct irq_domain *nexus_domain, in mbi_allocate_pci_domain() 178 struct irq_domain **pci_domain) in mbi_allocate_pci_domain() 189 static int mbi_allocate_pci_domain(struct irq_domain *nexus_domain, in mbi_allocate_pci_domain() 190 struct irq_domain **pci_domain) in mbi_allocate_pci_domain() 226 static int mbi_allocate_domains(struct irq_domain *parent) in mbi_allocate_domains() 228 struct irq_domain *nexus_domain, *pci_domain, *plat_domain; in mbi_allocate_domains() 257 int __init mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent) in mbi_init()
|
D | irq-atmel-aic5.c | 68 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 …]
|
D | irq-goldfish-pic.c | 34 struct irq_domain *irq_domain; member 48 virq = irq_linear_revmap(gfpic->irq_domain, hwirq); in goldfish_pic_cascade() 109 gfpic->irq_domain = irq_domain_add_legacy(of_node, GFPIC_NR_IRQS, in goldfish_pic_of_init() 113 if (!gfpic->irq_domain) { in goldfish_pic_of_init()
|
D | irq-renesas-irqc.c | 65 struct irq_domain *irq_domain; member 132 generic_handle_irq(irq_find_mapping(p->irq_domain, i->hw_irq)); in irqc_irq_handler() 196 p->irq_domain = irq_domain_add_linear(pdev->dev.of_node, in irqc_probe() 199 if (!p->irq_domain) { in irqc_probe() 205 ret = irq_alloc_domain_generic_chips(p->irq_domain, p->number_of_irqs, in irqc_probe() 213 p->gc = irq_get_domain_generic_chip(p->irq_domain, 0); in irqc_probe() 241 irq_domain_remove(p->irq_domain); in irqc_probe() 260 irq_domain_remove(p->irq_domain); in irqc_remove()
|
/Linux-v4.19/Documentation/ |
D | IRQ-domain.txt | 2 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-v4.19/include/linux/mfd/ |
D | core.h | 19 struct irq_domain; 123 int irq_base, struct irq_domain *irq_domain); 137 int irq_base, struct irq_domain *irq_domain);
|
/Linux-v4.19/drivers/gpio/ |
D | gpio-xgene-sb.c | 63 struct irq_domain *irq_domain; member 140 static int xgene_gpio_sb_domain_activate(struct irq_domain *d, in xgene_gpio_sb_domain_activate() 161 static void xgene_gpio_sb_domain_deactivate(struct irq_domain *d, in xgene_gpio_sb_domain_deactivate() 172 static int xgene_gpio_sb_domain_translate(struct irq_domain *d, in xgene_gpio_sb_domain_translate() 187 static int xgene_gpio_sb_domain_alloc(struct irq_domain *domain, in xgene_gpio_sb_domain_alloc() 234 struct irq_domain *parent_domain = NULL; in xgene_gpio_sb_probe() 288 priv->irq_domain = irq_domain_create_hierarchy(parent_domain, in xgene_gpio_sb_probe() 291 if (!priv->irq_domain) in xgene_gpio_sb_probe() 294 priv->gc.irq.domain = priv->irq_domain; in xgene_gpio_sb_probe() 300 irq_domain_remove(priv->irq_domain); in xgene_gpio_sb_probe() [all …]
|
/Linux-v4.19/drivers/ssb/ |
D | driver_gpio.c | 31 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-v4.19/arch/powerpc/platforms/cell/ |
D | axon_msi.c | 71 struct irq_domain *irq_domain; member 156 struct irq_domain *irq_domain; in find_msi_translator() local 188 irq_domain = irq_find_host(dn); in find_msi_translator() 189 if (!irq_domain) { in find_msi_translator() 195 msic = irq_domain->host_data; in find_msi_translator() 273 virq = irq_create_direct_mapping(msic->irq_domain); in axon_msi_setup_msi_irqs() 311 static int msic_host_map(struct irq_domain *h, unsigned int virq, in msic_host_map() 330 irq_domain_get_of_node(msic->irq_domain)); in axon_msi_shutdown() 386 msic->irq_domain = irq_domain_add_nomap(dn, 65536, &msic_host_ops, msic); in axon_msi_probe() 387 if (!msic->irq_domain) { in axon_msi_probe()
|
/Linux-v4.19/arch/x86/platform/uv/ |
D | uv_irq.c | 75 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-v4.19/drivers/bus/fsl-mc/ |
D | fsl-mc-msi.c | 160 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-v4.19/drivers/mfd/ |
D | twl6030-irq.c | 126 struct irq_domain *irq_domain; member 203 irq_find_mapping(pdata->irq_domain, in twl6030_irq_thread() 316 return irq_find_mapping(twl6030_irq->irq_domain, in twl6030_mmc_card_detect_config() 346 static int twl6030_irq_map(struct irq_domain *d, unsigned int virq, in twl6030_irq_map() 360 static void twl6030_irq_unmap(struct irq_domain *d, unsigned int virq) in twl6030_irq_unmap() 427 twl6030_irq->irq_domain = in twl6030_init_irq() 430 if (!twl6030_irq->irq_domain) { in twl6030_init_irq() 450 irq_domain_remove(twl6030_irq->irq_domain); in twl6030_init_irq()
|
/Linux-v4.19/drivers/iommu/ |
D | irq_remapping.h | 29 struct irq_domain; 59 struct irq_domain *(*get_ir_irq_domain)(struct irq_alloc_info *); 62 struct irq_domain *(*get_irq_domain)(struct irq_alloc_info *);
|
/Linux-v4.19/drivers/base/ |
D | platform-msi.c | 54 static int platform_msi_init(struct irq_domain *domain, in platform_msi_init() 177 struct irq_domain *platform_msi_create_irq_domain(struct fwnode_handle *fwnode, in platform_msi_create_irq_domain() 179 struct irq_domain *parent) in platform_msi_create_irq_domain() 181 struct irq_domain *domain; in platform_msi_create_irq_domain() 306 void *platform_msi_get_host_data(struct irq_domain *domain) in platform_msi_get_host_data() 323 struct irq_domain * 331 struct irq_domain *domain; in platform_msi_create_device_domain() 365 void platform_msi_domain_free(struct irq_domain *domain, unsigned int virq, in platform_msi_domain_free() 392 int platform_msi_domain_alloc(struct irq_domain *domain, unsigned int virq, in platform_msi_domain_alloc()
|