Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0-only
menu "IRQ subsystem"
# Options selectable by the architecture code

# Make sparse irq Kconfig switch below available
config CONFIG_MAY_HAVE_SPARSE_IRQ
       bool

# Legacy support, required for itanic
config CONFIG_GENERIC_IRQ_LEGACY
       bool

# Enable the generic irq autoprobe mechanism
config CONFIG_GENERIC_IRQ_PROBE
	bool

# Use the generic /proc/interrupts implementation
config CONFIG_GENERIC_IRQ_SHOW
       bool

# Print level/edge extra information
config CONFIG_GENERIC_IRQ_SHOW_LEVEL
       bool

# Supports effective affinity mask
config CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK
       bool

# Facility to allocate a hardware interrupt. This is legacy support
# and should not be used in new code. Use irq domains instead.
config CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
       bool

# Support for delayed migration from interrupt context
config CONFIG_GENERIC_PENDING_IRQ
	bool

# Support for generic irq migrating off cpu before the cpu is offline.
config CONFIG_GENERIC_IRQ_MIGRATION
	bool

# Alpha specific irq affinity mechanism
config CONFIG_AUTO_IRQ_AFFINITY
       bool

# Tasklet based software resend for pending interrupts on enable_irq()
config CONFIG_HARDIRQS_SW_RESEND
       bool

# Preflow handler support for fasteoi (sparc64)
config CONFIG_IRQ_PREFLOW_FASTEOI
       bool

# Edge style eoi based handler (cell)
config CONFIG_IRQ_EDGE_EOI_HANDLER
       bool

# Generic configurable interrupt chip implementation
config CONFIG_GENERIC_IRQ_CHIP
       bool
       select CONFIG_IRQ_DOMAIN

# Generic irq_domain hw <--> linux irq number translation
config CONFIG_IRQ_DOMAIN
	bool

# Support for simulated interrupts
config CONFIG_IRQ_SIM
	bool
	select CONFIG_IRQ_WORK

# Support for hierarchical irq domains
config CONFIG_IRQ_DOMAIN_HIERARCHY
	bool
	select CONFIG_IRQ_DOMAIN

# Support for hierarchical fasteoi+edge and fasteoi+level handlers
config CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS
	bool

# Generic IRQ IPI support
config CONFIG_GENERIC_IRQ_IPI
	bool

# Generic MSI interrupt support
config CONFIG_GENERIC_MSI_IRQ
	bool

# Generic MSI hierarchical interrupt domain support
config CONFIG_GENERIC_MSI_IRQ_DOMAIN
	bool
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	select CONFIG_GENERIC_MSI_IRQ

config CONFIG_IRQ_MSI_IOMMU
	bool

config CONFIG_HANDLE_DOMAIN_IRQ
	bool

config CONFIG_IRQ_TIMINGS
	bool

config CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR
	bool

config CONFIG_GENERIC_IRQ_RESERVATION_MODE
	bool

# Support forced irq threading
config CONFIG_IRQ_FORCED_THREADING
       bool

config CONFIG_SPARSE_IRQ
	bool "Support sparse irq numbering" if CONFIG_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 CONFIG_NUMA boxes, as they spread
	    out the interrupt descriptors in a more CONFIG_NUMA-friendly way. )

	  If you don't know what to do here, say N.

config CONFIG_GENERIC_IRQ_DEBUGFS
	bool "Expose irq internals in debugfs"
	depends on CONFIG_DEBUG_FS
	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 CONFIG_GENERIC_IRQ_MULTI_HANDLER
	bool
	help
	  Allow to specify the low level IRQ handler at run time.