| # SPDX-License-Identifier: GPL-2.0-only |
| menu "IRQ subsystem" |
| # Options selectable by the architecture code |
| |
| # Make sparse irq Kconfig switch below available |
| config MAY_HAVE_SPARSE_IRQ |
| bool |
| |
| # Legacy support, required for itanic |
| config GENERIC_IRQ_LEGACY |
| bool |
| |
| # Enable the generic irq autoprobe mechanism |
| config GENERIC_IRQ_PROBE |
| bool |
| |
| # Use the generic /proc/interrupts implementation |
| config GENERIC_IRQ_SHOW |
| bool |
| |
| # Print level/edge extra information |
| config GENERIC_IRQ_SHOW_LEVEL |
| bool |
| |
| # Supports effective affinity mask |
| config GENERIC_IRQ_EFFECTIVE_AFF_MASK |
| bool |
| |
| # Support for delayed migration from interrupt context |
| config GENERIC_PENDING_IRQ |
| bool |
| |
| # Support for generic irq migrating off cpu before the cpu is offline. |
| config GENERIC_IRQ_MIGRATION |
| bool |
| |
| # Alpha specific irq affinity mechanism |
| config AUTO_IRQ_AFFINITY |
| bool |
| |
| # Interrupt injection mechanism |
| config GENERIC_IRQ_INJECTION |
| bool |
| |
| # Tasklet based software resend for pending interrupts on enable_irq() |
| config HARDIRQS_SW_RESEND |
| bool |
| |
| # Edge style eoi based handler (cell) |
| config IRQ_EDGE_EOI_HANDLER |
| bool |
| |
| # Generic configurable interrupt chip implementation |
| config GENERIC_IRQ_CHIP |
| bool |
| select IRQ_DOMAIN |
| |
| # Generic irq_domain hw <--> linux irq number translation |
| config IRQ_DOMAIN |
| bool |
| |
| # Support for simulated interrupts |
| config IRQ_SIM |
| bool |
| select IRQ_WORK |
| select IRQ_DOMAIN |
| |
| # Support for hierarchical irq domains |
| config IRQ_DOMAIN_HIERARCHY |
| bool |
| select IRQ_DOMAIN |
| |
| # Support for hierarchical fasteoi+edge and fasteoi+level handlers |
| config IRQ_FASTEOI_HIERARCHY_HANDLERS |
| bool |
| |
| # Generic IRQ IPI support |
| config GENERIC_IRQ_IPI |
| bool |
| select IRQ_DOMAIN_HIERARCHY |
| |
| # Generic MSI interrupt support |
| config GENERIC_MSI_IRQ |
| bool |
| |
| # Generic MSI hierarchical interrupt domain support |
| config GENERIC_MSI_IRQ_DOMAIN |
| bool |
| select IRQ_DOMAIN_HIERARCHY |
| select GENERIC_MSI_IRQ |
| |
| config IRQ_MSI_IOMMU |
| bool |
| |
| config HANDLE_DOMAIN_IRQ |
| bool |
| |
| config IRQ_TIMINGS |
| bool |
| |
| config GENERIC_IRQ_MATRIX_ALLOCATOR |
| bool |
| |
| config GENERIC_IRQ_RESERVATION_MODE |
| bool |
| |
| # Support forced irq threading |
| config IRQ_FORCED_THREADING |
| bool |
| |
| config SPARSE_IRQ |
| bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ |
| help |
| |
| Sparse irq numbering is useful for distro kernels that want |
| to define a high CONFIG_NR_CPUS value but still want to have |
| low kernel memory footprint on smaller machines. |
| |
| ( Sparse irqs can also be beneficial on NUMA boxes, as they spread |
| out the interrupt descriptors in a more NUMA-friendly way. ) |
| |
| If you don't know what to do here, say N. |
| |
| config GENERIC_IRQ_DEBUGFS |
| bool "Expose irq internals in debugfs" |
| depends on DEBUG_FS |
| select GENERIC_IRQ_INJECTION |
| default n |
| help |
| |
| Exposes internal state information through debugfs. Mostly for |
| developers and debugging of hard to diagnose interrupt problems. |
| |
| If you don't know what to do here, say N. |
| |
| endmenu |
| |
| config GENERIC_IRQ_MULTI_HANDLER |
| bool |
| help |
| Allow to specify the low level IRQ handler at run time. |