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 depends on SMP 28 bool 29 30# Support for delayed migration from interrupt context 31config GENERIC_PENDING_IRQ 32 bool 33 34# Support for generic irq migrating off cpu before the cpu is offline. 35config GENERIC_IRQ_MIGRATION 36 bool 37 38# Alpha specific irq affinity mechanism 39config AUTO_IRQ_AFFINITY 40 bool 41 42# Interrupt injection mechanism 43config GENERIC_IRQ_INJECTION 44 bool 45 46# Tasklet based software resend for pending interrupts on enable_irq() 47config HARDIRQS_SW_RESEND 48 bool 49 50# Generic configurable interrupt chip implementation 51config GENERIC_IRQ_CHIP 52 bool 53 select IRQ_DOMAIN 54 55# Generic irq_domain hw <--> linux irq number translation 56config IRQ_DOMAIN 57 bool 58 59# Support for simulated interrupts 60config IRQ_SIM 61 bool 62 select IRQ_WORK 63 select IRQ_DOMAIN 64 65# Support for hierarchical irq domains 66config IRQ_DOMAIN_HIERARCHY 67 bool 68 select IRQ_DOMAIN 69 70# Support for obsolete non-mapping irq domains 71config IRQ_DOMAIN_NOMAP 72 bool 73 select IRQ_DOMAIN 74 75# Support for hierarchical fasteoi+edge and fasteoi+level handlers 76config IRQ_FASTEOI_HIERARCHY_HANDLERS 77 bool 78 79# Generic IRQ IPI support 80config GENERIC_IRQ_IPI 81 bool 82 depends on SMP 83 select IRQ_DOMAIN_HIERARCHY 84 85# Generic IRQ IPI Mux support 86config GENERIC_IRQ_IPI_MUX 87 bool 88 depends on SMP 89 90# Generic MSI hierarchical interrupt domain support 91config GENERIC_MSI_IRQ 92 bool 93 select IRQ_DOMAIN_HIERARCHY 94 95# irqchip drivers should select this if they call iommu_dma_prepare_msi() 96config IRQ_MSI_IOMMU 97 bool 98 99config IRQ_TIMINGS 100 bool 101 102config GENERIC_IRQ_MATRIX_ALLOCATOR 103 bool 104 105config GENERIC_IRQ_RESERVATION_MODE 106 bool 107 108# Snapshot for interrupt statistics 109config GENERIC_IRQ_STAT_SNAPSHOT 110 bool 111 112# Support forced irq threading 113config IRQ_FORCED_THREADING 114 bool 115 116config SPARSE_IRQ 117 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ 118 help 119 120 Sparse irq numbering is useful for distro kernels that want 121 to define a high CONFIG_NR_CPUS value but still want to have 122 low kernel memory footprint on smaller machines. 123 124 ( Sparse irqs can also be beneficial on NUMA boxes, as they spread 125 out the interrupt descriptors in a more NUMA-friendly way. ) 126 127 If you don't know what to do here, say N. 128 129config GENERIC_IRQ_DEBUGFS 130 bool "Expose irq internals in debugfs" 131 depends on DEBUG_FS 132 select GENERIC_IRQ_INJECTION 133 default n 134 help 135 136 Exposes internal state information through debugfs. Mostly for 137 developers and debugging of hard to diagnose interrupt problems. 138 139 If you don't know what to do here, say N. 140 141# Clear forwarded VM interrupts during kexec. 142# This option ensures the kernel clears active states for interrupts 143# forwarded to virtual machines (VMs) during a machine kexec. 144config GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD 145 bool 146 147endmenu 148 149config GENERIC_IRQ_MULTI_HANDLER 150 bool 151 help 152 Allow to specify the low level IRQ handler at run time. 153 154# Cavium Octeon is the last system to use this deprecated option 155# Do not even think of enabling this on any new platform 156config DEPRECATED_IRQ_CPU_ONOFFLINE 157 bool 158 depends on CAVIUM_OCTEON_SOC 159 default CAVIUM_OCTEON_SOC 160