root/arch/arc/kernel/irq.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. init_IRQ
  2. arch_do_IRQ

   1 // SPDX-License-Identifier: GPL-2.0-only
   2 /*
   3  * Copyright (C) 2011-12 Synopsys, Inc. (www.synopsys.com)
   4  */
   5 
   6 #include <linux/interrupt.h>
   7 #include <linux/irqchip.h>
   8 #include <asm/mach_desc.h>
   9 #include <asm/smp.h>
  10 
  11 /*
  12  * Late Interrupt system init called from start_kernel for Boot CPU only
  13  *
  14  * Since slab must already be initialized, platforms can start doing any
  15  * needed request_irq( )s
  16  */
  17 void __init init_IRQ(void)
  18 {
  19         /*
  20          * process the entire interrupt tree in one go
  21          * Any external intc will be setup provided DT chains them
  22          * properly
  23          */
  24         irqchip_init();
  25 
  26 #ifdef CONFIG_SMP
  27         /* a SMP H/w block could do IPI IRQ request here */
  28         if (plat_smp_ops.init_per_cpu)
  29                 plat_smp_ops.init_per_cpu(smp_processor_id());
  30 #endif
  31 
  32         if (machine_desc->init_per_cpu)
  33                 machine_desc->init_per_cpu(smp_processor_id());
  34 }
  35 
  36 /*
  37  * "C" Entry point for any ARC ISR, called from low level vector handler
  38  * @irq is the vector number read from ICAUSE reg of on-chip intc
  39  */
  40 void arch_do_IRQ(unsigned int hwirq, struct pt_regs *regs)
  41 {
  42         handle_domain_irq(NULL, hwirq, regs);
  43 }

/* [<][>][^][v][top][bottom][index][help] */