blob: 3bbfd6a9c475610cef70ac32a928f79e50db60e8 [file] [log] [blame]
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +00001menu "IRQ subsystem"
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +00002# Options selectable by the architecture code
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +01003
4# Make sparse irq Kconfig switch below available
Rob Herring2ed86b12012-01-25 20:02:40 -06005config MAY_HAVE_SPARSE_IRQ
Jan Beulichfd4afaf2011-02-17 13:39:05 +00006 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +00007
Thomas Gleixnerc940e012014-05-07 15:44:22 +00008# Legacy support, required for itanic
9config GENERIC_IRQ_LEGACY
10 bool
11
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010012# Enable the generic irq autoprobe mechanism
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000013config GENERIC_IRQ_PROBE
Jan Beulichfd4afaf2011-02-17 13:39:05 +000014 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000015
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010016# Use the generic /proc/interrupts implementation
Thomas Gleixnerc78b9b62010-12-16 17:21:47 +010017config GENERIC_IRQ_SHOW
Jan Beulichfd4afaf2011-02-17 13:39:05 +000018 bool
Thomas Gleixnerc78b9b62010-12-16 17:21:47 +010019
Thomas Gleixnerab7798f2011-03-25 16:48:50 +010020# Print level/edge extra information
21config GENERIC_IRQ_SHOW_LEVEL
22 bool
23
Thomas Gleixner7b6ef122014-05-07 15:44:05 +000024# Facility to allocate a hardware interrupt. This is legacy support
25# and should not be used in new code. Use irq domains instead.
26config GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
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 Gleixnerc68fd4f2011-03-08 19:52:55 +010041# Tasklet based software resend for pending interrupts on enable_irq()
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000042config HARDIRQS_SW_RESEND
Jan Beulichfd4afaf2011-02-17 13:39:05 +000043 bool
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000044
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010045# Preflow handler support for fasteoi (sparc64)
Thomas Gleixner78129572011-02-10 15:14:20 +010046config IRQ_PREFLOW_FASTEOI
Jan Beulichfd4afaf2011-02-17 13:39:05 +000047 bool
Thomas Gleixner78129572011-02-10 15:14:20 +010048
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
Jiang Liuf8264e32014-11-06 22:20:14 +080062# Support for hierarchical irq domains
63config IRQ_DOMAIN_HIERARCHY
64 bool
65 select IRQ_DOMAIN
66
Qais Yousef379b6562015-12-08 13:20:14 +000067# Generic IRQ IPI support
68config GENERIC_IRQ_IPI
69 bool
70
Jiang Liuf3cf8bb2014-11-12 11:39:03 +010071# Generic MSI interrupt support
72config GENERIC_MSI_IRQ
73 bool
74
75# Generic MSI hierarchical interrupt domain support
76config GENERIC_MSI_IRQ_DOMAIN
77 bool
78 select IRQ_DOMAIN_HIERARCHY
79 select GENERIC_MSI_IRQ
80
Marc Zyngier76ba59f2014-08-26 11:03:16 +010081config HANDLE_DOMAIN_IRQ
82 bool
83
Grant Likely092b2fb2012-03-29 14:10:30 -060084config IRQ_DOMAIN_DEBUG
85 bool "Expose hardware/virtual IRQ mapping via debugfs"
86 depends on IRQ_DOMAIN && DEBUG_FS
87 help
88 This option will show the mapping relationship between hardware irq
89 numbers and Linux irq numbers. The mapping is exposed via debugfs
Mika Westerbergac5830a2012-04-10 15:25:42 +030090 in the file "irq_domain_mapping".
Grant Likely092b2fb2012-03-29 14:10:30 -060091
92 If you don't know what this means you don't need it.
93
Thomas Gleixnerc68fd4f2011-03-08 19:52:55 +010094# Support forced irq threading
Thomas Gleixner8d32a302011-02-23 23:52:23 +000095config IRQ_FORCED_THREADING
96 bool
97
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +000098config SPARSE_IRQ
Rob Herring2ed86b12012-01-25 20:02:40 -060099 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ
Thomas Gleixnerd9817eb2010-09-27 12:45:59 +0000100 ---help---
101
102 Sparse irq numbering is useful for distro kernels that want
103 to define a high CONFIG_NR_CPUS value but still want to have
104 low kernel memory footprint on smaller machines.
105
106 ( Sparse irqs can also be beneficial on NUMA boxes, as they spread
107 out the interrupt descriptors in a more NUMA-friendly way. )
108
109 If you don't know what to do here, say N.
110
111endmenu