在 linux kernel 编译的时候,你可以配置多个 irq chip 进入内核,编译系统会把所有的 IRQCHIP_DECLARE 宏定义的数据放入到一个特殊的 section 中(section name 是__irqchip_of_table),我们称这个特殊的 section 叫做irq chip table。这个 table 也就保存了 kernel 支持的所有的中断控制器的 ID 信息(最重要的是...
IRQCHIP_DECLARE(loongson_liointc_2_0, "loongson,liointc-2.0", liointc_of_init);#endif#ifdef CONFIG_ACPI int __init liointc_acpi_init(struct irq_domain *parent, struct acpi_madt_lio_pic *acpi_liointc) { int ret; struct fwnode_handle *domain_handle;parent...
(irq_base, 16); #endif set_handle_irq(hip04_handle_irq); hip04_irq_dist_init(&hip04_data); cpuhp_setup_state(CPUHP_AP_IRQ_HIP04_STARTING, "irqchip/hip04:starting", hip04_irq_starting_cpu, NULL); return 0; } IRQCHIP_DECLARE(hip04_intc, "hisilicon,hip04-intc", hip04_of_...
("%s: Incorrect IRQ map for slaved controller\n", __func__); return -EINVAL; } for (i = 0; i < 8; i++) { irq = irq_of_parse_and_map(np, i); enable_irq(irq); } pr_info("vt8500-irq: Enabled slave->parent interrupts\n"); } out: return 0; } IRQCHIP_DECLARE(vt8500...