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