2 * Copyright (C) 2012 Regents of the University of California
3 * Copyright (C) 2017 SiFive
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation, version 2.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
15 #include <linux/interrupt.h>
16 #include <linux/irqchip.h>
17 #include <linux/irqdomain.h>
19 #ifdef CONFIG_RISCV_INTC
20 #include <linux/irqchip/irq-riscv-intc.h>
23 void __init
init_IRQ(void)
28 asmlinkage
void __irq_entry
do_IRQ(unsigned int cause
, struct pt_regs
*regs
)
30 #ifdef CONFIG_RISCV_INTC
32 * FIXME: We don't want a direct call to riscv_intc_irq here. The plan
33 * is to put an IRQ domain here and let the interrupt controller
34 * register with that, but I poked around the arm64 code a bit and
35 * there might be a better way to do it (ie, something fully generic).
37 riscv_intc_irq(cause
, regs
);