blob: 10929eda9825829b14352ab68b82d3b4fd9bae3b [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +00002menu "IRQ subsystem"
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +00003# Options selectable by the architecture code
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +01004
5# Make sparse irq Kconfig switch below available
Rob Herring2ed86b12012-01-25 20:02:40 -06006config MAY_HAVE_SPARSE_IRQ
Jan Beulichfd4afaf2011-02-17 13:39:05 +00007 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +00008
Thomas Gleixnerc940e012014-05-07 15:44:22 +00009# Legacy support, required for itanic
10config GENERIC_IRQ_LEGACY
11 bool
12
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010013# Enable the generic irq autoprobe mechanism
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000014config GENERIC_IRQ_PROBE
Jan Beulichfd4afaf2011-02-17 13:39:05 +000015 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000016
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010017# Use the generic /proc/interrupts implementation
Thomas Gleixnerc78b9b62010-12-16 17:21:47 +010018config GENERIC_IRQ_SHOW
Jan Beulichfd4afaf2011-02-17 13:39:05 +000019 bool
Thomas Gleixnerc78b9b62010-12-16 17:21:47 +010020
Thomas Gleixnerab7798f2011-03-25 16:48:50 +010021# Print level/edge extra information
22config GENERIC_IRQ_SHOW_LEVEL
23 bool
24
Thomas Gleixner0d3f5422017-06-20 01:37:38 +020025# Supports effective affinity mask
26config GENERIC_IRQ_EFFECTIVE_AFF_MASK
27 bool
28
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010029# Support for delayed migration from interrupt context
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000030config GENERIC_PENDING_IRQ
Jan Beulichfd4afaf2011-02-17 13:39:05 +000031 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000032
Yang Yingliangf1e0bb02015-09-24 17:32:13 +080033# Support for generic irq migrating off cpu before the cpu is offline.
34config GENERIC_IRQ_MIGRATION
35 bool
36
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010037# Alpha specific irq affinity mechanism
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000038config AUTO_IRQ_AFFINITY
Jan Beulichfd4afaf2011-02-17 13:39:05 +000039 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000040
Thomas Gleixneracd26bc2020-03-06 14:03:47 +010041# Interrupt injection mechanism
42config GENERIC_IRQ_INJECTION
43 bool
44
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010045# Tasklet based software resend for pending interrupts on enable_irq()
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000046config HARDIRQS_SW_RESEND
Jan Beulichfd4afaf2011-02-17 13:39:05 +000047 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000048
Thomas Gleixner0521c8f2011-03-28 16:13:24 +020049# Edge style eoi based handler (cell)
50config IRQ_EDGE_EOI_HANDLER
51 bool
52
Thomas Gleixnerc42321c2011-05-02 18:16:22 +020053# Generic configurable interrupt chip implementation
54config GENERIC_IRQ_CHIP
55 bool
Nitin A Kamble923fa4e2014-01-30 16:50:10 -080056 select IRQ_DOMAIN
Thomas Gleixnerc42321c2011-05-02 18:16:22 +020057
Grant Likely08a543a2011-07-26 03:19:06 -060058# Generic irq_domain hw <--> linux irq number translation
59config IRQ_DOMAIN
60 bool
61
Bartosz Golaszewskib19af512017-08-14 16:53:16 +020062# Support for simulated interrupts
63config IRQ_SIM
64 bool
65 select IRQ_WORK
Bartosz Golaszewski337cbeb2020-05-14 10:39:01 +020066 select IRQ_DOMAIN
Bartosz Golaszewskib19af512017-08-14 16:53:16 +020067
Jiang Liuf8264e32014-11-06 22:20:14 +080068# Support for hierarchical irq domains
69config IRQ_DOMAIN_HIERARCHY
70 bool
71 select IRQ_DOMAIN
72
Marc Zyngiere37af802021-04-04 13:06:39 +010073# Support for obsolete non-mapping irq domains
74config IRQ_DOMAIN_NOMAP
75 bool
76 select IRQ_DOMAIN
77
David Daney7703b082017-08-17 17:53:31 -070078# Support for hierarchical fasteoi+edge and fasteoi+level handlers
79config IRQ_FASTEOI_HIERARCHY_HANDLERS
80 bool
81
Qais Yousef379b6562015-12-08 13:20:14 +000082# Generic IRQ IPI support
83config GENERIC_IRQ_IPI
84 bool
Marc Zyngier151a5352020-10-15 21:41:44 +010085 select IRQ_DOMAIN_HIERARCHY
Qais Yousef379b6562015-12-08 13:20:14 +000086
Jiang Liuf3cf8bb2014-11-12 11:39:03 +010087# Generic MSI interrupt support
88config GENERIC_MSI_IRQ
89 bool
90
91# Generic MSI hierarchical interrupt domain support
92config GENERIC_MSI_IRQ_DOMAIN
93 bool
94 select IRQ_DOMAIN_HIERARCHY
95 select GENERIC_MSI_IRQ
96
Julien Grallaaebdf82019-05-01 14:58:18 +010097config IRQ_MSI_IOMMU
98 bool
99
Daniel Lezcanob2d3d612017-06-23 16:11:07 +0200100config IRQ_TIMINGS
101 bool
102
Thomas Gleixner2f75d9e2017-09-13 23:29:14 +0200103config GENERIC_IRQ_MATRIX_ALLOCATOR
104 bool
105
Thomas Gleixner2b5175c2017-10-17 09:54:57 +0200106config GENERIC_IRQ_RESERVATION_MODE
107 bool
108
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +0100109# Support forced irq threading
Thomas Gleixner8d32a302011-02-23 23:52:23 +0000110config IRQ_FORCED_THREADING
111 bool
112
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +0000113config SPARSE_IRQ
Rob Herring2ed86b12012-01-25 20:02:40 -0600114 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900115 help
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +0000116
117 Sparse irq numbering is useful for distro kernels that want
118 to define a high CONFIG_NR_CPUS value but still want to have
119 low kernel memory footprint on smaller machines.
120
121 ( Sparse irqs can also be beneficial on NUMA boxes, as they spread
122 out the interrupt descriptors in a more NUMA-friendly way. )
123
124 If you don't know what to do here, say N.
125
Thomas Gleixner087cdfb2017-06-20 01:37:17 +0200126config GENERIC_IRQ_DEBUGFS
127 bool "Expose irq internals in debugfs"
128 depends on DEBUG_FS
Thomas Gleixneracd26bc2020-03-06 14:03:47 +0100129 select GENERIC_IRQ_INJECTION
Thomas Gleixner087cdfb2017-06-20 01:37:17 +0200130 default n
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900131 help
Thomas Gleixner087cdfb2017-06-20 01:37:17 +0200132
133 Exposes internal state information through debugfs. Mostly for
134 developers and debugging of hard to diagnose interrupt problems.
135
136 If you don't know what to do here, say N.
137
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +0000138endmenu
Palmer Dabbeltcaacdbf2018-03-07 15:57:27 -0800139
140config GENERIC_IRQ_MULTI_HANDLER
141 bool
142 help
143 Allow to specify the low level IRQ handler at run time.
Marc Zyngier8d15a722021-10-21 18:04:14 +0100144
145# Cavium Octeon is the last system to use this deprecated option
146# Do not even think of enabling this on any new platform
147config DEPRECATED_IRQ_CPU_ONOFFLINE
148 bool
149 depends on CAVIUM_OCTEON_SOC
150 default CAVIUM_OCTEON_SOC