From 855d4ca4bdb366aab3d43408b74e02ab629d1d55 Mon Sep 17 00:00:00 2001 From: Liu Peibao Date: Mon, 14 Nov 2022 19:38:23 +0800 Subject: irqchip: loongarch-cpu: add DT support LoongArch is coming to support booting with FDT, so DT support of this driver is desired. Signed-off-by: Liu Peibao Signed-off-by: Marc Zyngier Link: https://lore.kernel.org/r/20221114113824.1880-2-liupeibao@loongson.cn --- drivers/irqchip/irq-loongarch-cpu.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'drivers/irqchip') diff --git a/drivers/irqchip/irq-loongarch-cpu.c b/drivers/irqchip/irq-loongarch-cpu.c index 741612ba6a52..a28b7c549654 100644 --- a/drivers/irqchip/irq-loongarch-cpu.c +++ b/drivers/irqchip/irq-loongarch-cpu.c @@ -92,6 +92,25 @@ static const struct irq_domain_ops loongarch_cpu_intc_irq_domain_ops = { .xlate = irq_domain_xlate_onecell, }; +#ifdef CONFIG_OF +int __init loongarch_cpu_irq_of_init(struct device_node *of_node, + struct device_node *parent) +{ + cpuintc_handle = of_node_to_fwnode(of_node); + + irq_domain = irq_domain_create_linear(cpuintc_handle, EXCCODE_INT_NUM, + &loongarch_cpu_intc_irq_domain_ops, NULL); + if (!irq_domain) + panic("Failed to add irqdomain for loongarch CPU"); + + set_handle_irq(&handle_cpu_irq); + + return 0; +} +IRQCHIP_DECLARE(cpu_intc, "loongson,cpu-interrupt-controller", + loongarch_cpu_irq_of_init); +#endif + static int __init liointc_parse_madt(union acpi_subtable_headers *header, const unsigned long end) -- cgit v1.2.3 From 065abd13a63f40318162eeca6c0215fc5cbb9b0a Mon Sep 17 00:00:00 2001 From: Huacai Chen Date: Mon, 5 Dec 2022 12:47:08 +0800 Subject: irqchip/loongarch-cpu: Fix a missing prototype warning 1, Rename loongarch_cpu_irq_of_init() to cpuintc_of_init() in order to keep the same style as the ACPI version. 2, Fix a missing prototype warning by adding a "static" modifier. Fixes: 855d4ca4bdb366aab3d4 ("irqchip: loongarch-cpu: add DT support") Reported-by: kernel test robot Cc: Peibao Liu Signed-off-by: Huacai Chen Signed-off-by: Marc Zyngier Link: https://lore.kernel.org/r/20221205044708.2054022-1-chenhuacai@loongson.cn --- drivers/irqchip/irq-loongarch-cpu.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'drivers/irqchip') diff --git a/drivers/irqchip/irq-loongarch-cpu.c b/drivers/irqchip/irq-loongarch-cpu.c index a28b7c549654..738d69c4d4a3 100644 --- a/drivers/irqchip/irq-loongarch-cpu.c +++ b/drivers/irqchip/irq-loongarch-cpu.c @@ -93,7 +93,7 @@ static const struct irq_domain_ops loongarch_cpu_intc_irq_domain_ops = { }; #ifdef CONFIG_OF -int __init loongarch_cpu_irq_of_init(struct device_node *of_node, +static int __init cpuintc_of_init(struct device_node *of_node, struct device_node *parent) { cpuintc_handle = of_node_to_fwnode(of_node); @@ -107,8 +107,7 @@ int __init loongarch_cpu_irq_of_init(struct device_node *of_node, return 0; } -IRQCHIP_DECLARE(cpu_intc, "loongson,cpu-interrupt-controller", - loongarch_cpu_irq_of_init); +IRQCHIP_DECLARE(cpu_intc, "loongson,cpu-interrupt-controller", cpuintc_of_init); #endif static int __init -- cgit v1.2.3