1# SPDX-License-Identifier: GPL-2.0-only 2menu "IRQ subsystem" 3# Options selectable by the architecture code 4 5# Make sparse irq Kconfig switch below available 6config MAY_HAVE_SPARSE_IRQ 7 bool 8 9# Legacy support, required for itanic 10config GENERIC_IRQ_LEGACY 11 bool 12 13# Enable the generic irq autoprobe mechanism 14config GENERIC_IRQ_PROBE 15 bool 16 17# Use the generic /proc/interrupts implementation 18config GENERIC_IRQ_SHOW 19 bool 20 21# Print level/edge extra information 22config GENERIC_IRQ_SHOW_LEVEL 23 bool 24 25# Supports effective affinity mask 26config GENERIC_IRQ_EFFECTIVE_AFF_MASK 27 bool 28 29# Facility to allocate a hardware interrupt. This is legacy support 30# and should not be used in new code. Use irq domains instead. 31config GENERIC_IRQ_LEGACY_ALLOC_HWIRQ 32 bool 33 34# Support for delayed migration from interrupt context 35config GENERIC_PENDING_IRQ 36 bool 37 38# Support for generic irq migrating off cpu before the cpu is offline. 39config GENERIC_IRQ_MIGRATION 40 bool 41 42# Alpha specific irq affinity mechanism 43config AUTO_IRQ_AFFINITY 44 bool 45 46# Interrupt injection mechanism 47config GENERIC_IRQ_INJECTION 48 bool 49 50# Tasklet based software resend for pending interrupts on enable_irq() 51config HARDIRQS_SW_RESEND 52 bool 53 54# Preflow handler support for fasteoi (sparc64) 55config IRQ_PREFLOW_FASTEOI 56 bool 57 58# Edge style eoi based handler (cell) 59config IRQ_EDGE_EOI_HANDLER 60 bool 61 62# Generic configurable interrupt chip implementation 63config GENERIC_IRQ_CHIP 64 bool 65 select IRQ_DOMAIN 66 67# Generic irq_domain hw <--> linux irq number translation 68config IRQ_DOMAIN 69 bool 70 71# Support for simulated interrupts 72config IRQ_SIM 73 bool 74 select IRQ_WORK 75 76# Support for hierarchical irq domains 77config IRQ_DOMAIN_HIERARCHY 78 bool 79 select IRQ_DOMAIN 80 81# Support for hierarchical fasteoi+edge and fasteoi+level handlers 82config IRQ_FASTEOI_HIERARCHY_HANDLERS 83 bool 84 85# Generic IRQ IPI support 86config GENERIC_IRQ_IPI 87 bool 88 89# Generic MSI interrupt support 90config GENERIC_MSI_IRQ 91 bool 92 93# Generic MSI hierarchical interrupt domain support 94config GENERIC_MSI_IRQ_DOMAIN 95 bool 96 select IRQ_DOMAIN_HIERARCHY 97 select GENERIC_MSI_IRQ 98 99config IRQ_MSI_IOMMU 100 bool 101 102config HANDLE_DOMAIN_IRQ 103 bool 104 105config IRQ_TIMINGS 106 bool 107 108config GENERIC_IRQ_MATRIX_ALLOCATOR 109 bool 110 111config GENERIC_IRQ_RESERVATION_MODE 112 bool 113 114# Support forced irq threading 115config IRQ_FORCED_THREADING 116 bool 117 118config SPARSE_IRQ 119 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ 120 ---help--- 121 122 Sparse irq numbering is useful for distro kernels that want 123 to define a high CONFIG_NR_CPUS value but still want to have 124 low kernel memory footprint on smaller machines. 125 126 ( Sparse irqs can also be beneficial on NUMA boxes, as they spread 127 out the interrupt descriptors in a more NUMA-friendly way. ) 128 129 If you don't know what to do here, say N. 130 131config GENERIC_IRQ_DEBUGFS 132 bool "Expose irq internals in debugfs" 133 depends on DEBUG_FS 134 select GENERIC_IRQ_INJECTION 135 default n 136 ---help--- 137 138 Exposes internal state information through debugfs. Mostly for 139 developers and debugging of hard to diagnose interrupt problems. 140 141 If you don't know what to do here, say N. 142 143endmenu 144 145config GENERIC_IRQ_MULTI_HANDLER 146 bool 147 help 148 Allow to specify the low level IRQ handler at run time. 149