root/arch/alpha/include/asm/irq.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. irq_canonicalize

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _ALPHA_IRQ_H
   3 #define _ALPHA_IRQ_H
   4 
   5 /*
   6  *      linux/include/alpha/irq.h
   7  *
   8  *      (C) 1994 Linus Torvalds
   9  */
  10 
  11 #include <linux/linkage.h>
  12 
  13 #if   defined(CONFIG_ALPHA_GENERIC)
  14 
  15 /* Here NR_IRQS is not exact, but rather an upper bound.  This is used
  16    many places throughout the kernel to size static arrays.  That's ok,
  17    we'll use alpha_mv.nr_irqs when we want the real thing.  */
  18 
  19 /* When LEGACY_START_ADDRESS is selected, we leave out:
  20      TITAN
  21      WILDFIRE
  22      MARVEL
  23 
  24    This helps keep the kernel object size reasonable for the majority
  25    of machines.
  26 */
  27 
  28 # if defined(CONFIG_ALPHA_LEGACY_START_ADDRESS)
  29 #  define NR_IRQS      (128)           /* max is RAWHIDE/TAKARA */
  30 # else
  31 #  define NR_IRQS      (32768 + 16)    /* marvel - 32 pids */
  32 # endif
  33 
  34 #elif defined(CONFIG_ALPHA_CABRIOLET) || \
  35       defined(CONFIG_ALPHA_EB66P)     || \
  36       defined(CONFIG_ALPHA_EB164)     || \
  37       defined(CONFIG_ALPHA_PC164)     || \
  38       defined(CONFIG_ALPHA_LX164)
  39 # define NR_IRQS        35
  40 
  41 #elif defined(CONFIG_ALPHA_EB66)      || \
  42       defined(CONFIG_ALPHA_EB64P)     || \
  43       defined(CONFIG_ALPHA_MIKASA)
  44 # define NR_IRQS        32
  45 
  46 #elif defined(CONFIG_ALPHA_ALCOR)     || \
  47       defined(CONFIG_ALPHA_MIATA)     || \
  48       defined(CONFIG_ALPHA_RUFFIAN)   || \
  49       defined(CONFIG_ALPHA_RX164)     || \
  50       defined(CONFIG_ALPHA_NORITAKE)
  51 # define NR_IRQS        48
  52 
  53 #elif defined(CONFIG_ALPHA_SABLE)     || \
  54       defined(CONFIG_ALPHA_SX164)
  55 # define NR_IRQS        40
  56 
  57 #elif defined(CONFIG_ALPHA_DP264) || \
  58       defined(CONFIG_ALPHA_LYNX)  || \
  59       defined(CONFIG_ALPHA_SHARK)
  60 # define NR_IRQS        64
  61 
  62 #elif defined(CONFIG_ALPHA_TITAN)
  63 #define NR_IRQS         80
  64 
  65 #elif defined(CONFIG_ALPHA_RAWHIDE) || \
  66       defined(CONFIG_ALPHA_TAKARA) || \
  67       defined(CONFIG_ALPHA_EIGER)
  68 # define NR_IRQS        128
  69 
  70 #elif defined(CONFIG_ALPHA_WILDFIRE)
  71 # define NR_IRQS        2048 /* enuff for 8 QBBs */
  72 
  73 #elif defined(CONFIG_ALPHA_MARVEL)
  74 # define NR_IRQS        (32768 + 16)    /* marvel - 32 pids*/
  75 
  76 #else /* everyone else */
  77 # define NR_IRQS        16
  78 #endif
  79 
  80 static __inline__ int irq_canonicalize(int irq)
  81 {
  82         /*
  83          * XXX is this true for all Alpha's?  The old serial driver
  84          * did it this way for years without any complaints, so....
  85          */
  86         return ((irq == 2) ? 9 : irq);
  87 }
  88 
  89 struct pt_regs;
  90 extern void (*perf_irq)(unsigned long, struct pt_regs *);
  91 
  92 #endif /* _ALPHA_IRQ_H */

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