Commit 399a946e authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull generic hardirq option removal from Martin Schwidefsky:
 "All architectures now use generic hardirqs, s390 has been last to
  switch.

  With that the code under !CONFIG_GENERIC_HARDIRQS and the related
  HAVE_GENERIC_HARDIRQS and GENERIC_HARDIRQS config options can be
  removed.  Yay!"

* 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  Remove GENERIC_HARDIRQ config option
parents 183c4203 0244ad00
...@@ -7,7 +7,6 @@ config ALPHA ...@@ -7,7 +7,6 @@ config ALPHA
select HAVE_PCSPKR_PLATFORM select HAVE_PCSPKR_PLATFORM
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select HAVE_DMA_ATTRS select HAVE_DMA_ATTRS
select HAVE_GENERIC_HARDIRQS
select VIRT_TO_BUS select VIRT_TO_BUS
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select AUTO_IRQ_AFFINITY if SMP select AUTO_IRQ_AFFINITY if SMP
......
...@@ -20,7 +20,6 @@ config ARC ...@@ -20,7 +20,6 @@ config ARC
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select HAVE_ARCH_KGDB select HAVE_ARCH_KGDB
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_GENERIC_HARDIRQS
select HAVE_IOREMAP_PROT select HAVE_IOREMAP_PROT
select HAVE_KPROBES select HAVE_KPROBES
select HAVE_KRETPROBES select HAVE_KRETPROBES
......
...@@ -37,7 +37,6 @@ config ARM ...@@ -37,7 +37,6 @@ config ARM
select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
select HAVE_GENERIC_DMA_COHERENT select HAVE_GENERIC_DMA_COHERENT
select HAVE_GENERIC_HARDIRQS
select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
select HAVE_IDE if PCI || ISA || PCMCIA select HAVE_IDE if PCI || ISA || PCMCIA
select HAVE_IRQ_TIME_ACCOUNTING select HAVE_IRQ_TIME_ACCOUNTING
......
...@@ -23,7 +23,6 @@ config ARM64 ...@@ -23,7 +23,6 @@ config ARM64
select HAVE_DMA_API_DEBUG select HAVE_DMA_API_DEBUG
select HAVE_DMA_ATTRS select HAVE_DMA_ATTRS
select HAVE_GENERIC_DMA_COHERENT select HAVE_GENERIC_DMA_COHERENT
select HAVE_GENERIC_HARDIRQS
select HAVE_HW_BREAKPOINT if PERF_EVENTS select HAVE_HW_BREAKPOINT if PERF_EVENTS
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
......
...@@ -6,7 +6,6 @@ config AVR32 ...@@ -6,7 +6,6 @@ config AVR32
select HAVE_CLK select HAVE_CLK
select HAVE_OPROFILE select HAVE_OPROFILE
select HAVE_KPROBES select HAVE_KPROBES
select HAVE_GENERIC_HARDIRQS
select VIRT_TO_BUS select VIRT_TO_BUS
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
......
...@@ -32,7 +32,6 @@ config BLACKFIN ...@@ -32,7 +32,6 @@ config BLACKFIN
select HAVE_UNDERSCORE_SYMBOL_PREFIX select HAVE_UNDERSCORE_SYMBOL_PREFIX
select VIRT_TO_BUS select VIRT_TO_BUS
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select HAVE_GENERIC_HARDIRQS
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select USE_GENERIC_SMP_HELPERS if SMP select USE_GENERIC_SMP_HELPERS if SMP
......
...@@ -10,7 +10,6 @@ config C6X ...@@ -10,7 +10,6 @@ config C6X
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_DMA_API_DEBUG select HAVE_DMA_API_DEBUG
select HAVE_GENERIC_HARDIRQS
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select SPARSE_IRQ select SPARSE_IRQ
select IRQ_DOMAIN select IRQ_DOMAIN
......
...@@ -41,7 +41,6 @@ config CRIS ...@@ -41,7 +41,6 @@ config CRIS
default y default y
select HAVE_IDE select HAVE_IDE
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select HAVE_GENERIC_HARDIRQS
select HAVE_UID16 select HAVE_UID16
select VIRT_TO_BUS select VIRT_TO_BUS
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
......
...@@ -5,7 +5,6 @@ config FRV ...@@ -5,7 +5,6 @@ config FRV
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select HAVE_UID16 select HAVE_UID16
select HAVE_GENERIC_HARDIRQS
select VIRT_TO_BUS select VIRT_TO_BUS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select HAVE_DEBUG_BUGVERBOSE select HAVE_DEBUG_BUGVERBOSE
......
...@@ -2,7 +2,6 @@ config H8300 ...@@ -2,7 +2,6 @@ config H8300
bool bool
default y default y
select HAVE_IDE select HAVE_IDE
select HAVE_GENERIC_HARDIRQS
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select HAVE_UID16 select HAVE_UID16
select VIRT_TO_BUS select VIRT_TO_BUS
......
...@@ -15,7 +15,6 @@ config HEXAGON ...@@ -15,7 +15,6 @@ config HEXAGON
# select GENERIC_PENDING_IRQ if SMP # select GENERIC_PENDING_IRQ if SMP
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select HAVE_GENERIC_HARDIRQS
# GENERIC_ALLOCATOR is used by dma_alloc_coherent() # GENERIC_ALLOCATOR is used by dma_alloc_coherent()
select GENERIC_ALLOCATOR select GENERIC_ALLOCATOR
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -21,7 +21,6 @@ config IA64 ...@@ -21,7 +21,6 @@ config IA64
select HAVE_KVM select HAVE_KVM
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_DMA_API_DEBUG select HAVE_DMA_API_DEBUG
select HAVE_GENERIC_HARDIRQS
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_MEMBLOCK_NODE_MAP select HAVE_MEMBLOCK_NODE_MAP
select HAVE_VIRT_CPU_ACCOUNTING select HAVE_VIRT_CPU_ACCOUNTING
......
...@@ -9,7 +9,6 @@ config M32R ...@@ -9,7 +9,6 @@ config M32R
select HAVE_KERNEL_LZMA select HAVE_KERNEL_LZMA
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select HAVE_DEBUG_BUGVERBOSE select HAVE_DEBUG_BUGVERBOSE
select HAVE_GENERIC_HARDIRQS
select VIRT_TO_BUS select VIRT_TO_BUS
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -4,7 +4,6 @@ config M68K ...@@ -4,7 +4,6 @@ config M68K
select HAVE_IDE select HAVE_IDE
select HAVE_AOUT if MMU select HAVE_AOUT if MMU
select HAVE_DEBUG_BUGVERBOSE select HAVE_DEBUG_BUGVERBOSE
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select HAVE_UID16 select HAVE_UID16
......
...@@ -13,7 +13,6 @@ config METAG ...@@ -13,7 +13,6 @@ config METAG
select HAVE_FTRACE_MCOUNT_RECORD select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_TRACER
select HAVE_FUNCTION_TRACE_MCOUNT_TEST select HAVE_FUNCTION_TRACE_MCOUNT_TEST
select HAVE_GENERIC_HARDIRQS
select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_BZIP2
select HAVE_KERNEL_GZIP select HAVE_KERNEL_GZIP
select HAVE_KERNEL_LZO select HAVE_KERNEL_LZO
......
...@@ -18,7 +18,6 @@ config MICROBLAZE ...@@ -18,7 +18,6 @@ config MICROBLAZE
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select HAVE_DEBUG_KMEMLEAK select HAVE_DEBUG_KMEMLEAK
select IRQ_DOMAIN select IRQ_DOMAIN
select HAVE_GENERIC_HARDIRQS
select VIRT_TO_BUS select VIRT_TO_BUS
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -25,7 +25,6 @@ config MIPS ...@@ -25,7 +25,6 @@ config MIPS
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
select HAVE_DMA_ATTRS select HAVE_DMA_ATTRS
select HAVE_DMA_API_DEBUG select HAVE_DMA_API_DEBUG
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_PCI_IOMAP select GENERIC_PCI_IOMAP
......
config MN10300 config MN10300
def_bool y def_bool y
select HAVE_OPROFILE select HAVE_OPROFILE
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
......
...@@ -11,7 +11,6 @@ config OPENRISC ...@@ -11,7 +11,6 @@ config OPENRISC
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -14,7 +14,6 @@ config PARISC ...@@ -14,7 +14,6 @@ config PARISC
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select GENERIC_ATOMIC64 if !64BIT select GENERIC_ATOMIC64 if !64BIT
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
select HAVE_GENERIC_HARDIRQS
select BROKEN_RODATA select BROKEN_RODATA
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_PCI_IOMAP select GENERIC_PCI_IOMAP
......
...@@ -114,7 +114,6 @@ config PPC ...@@ -114,7 +114,6 @@ config PPC
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64 select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
select HAVE_GENERIC_HARDIRQS
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select SPARSE_IRQ select SPARSE_IRQ
select IRQ_DOMAIN select IRQ_DOMAIN
......
...@@ -116,7 +116,6 @@ config S390 ...@@ -116,7 +116,6 @@ config S390
select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_GRAPH_TRACER
select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_TRACER
select HAVE_FUNCTION_TRACE_MCOUNT_TEST select HAVE_FUNCTION_TRACE_MCOUNT_TEST
select HAVE_GENERIC_HARDIRQS
select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_BZIP2
select HAVE_KERNEL_GZIP select HAVE_KERNEL_GZIP
select HAVE_KERNEL_LZ4 select HAVE_KERNEL_LZ4
......
...@@ -2,7 +2,6 @@ menu "Machine selection" ...@@ -2,7 +2,6 @@ menu "Machine selection"
config SCORE config SCORE
def_bool y def_bool y
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_IOMAP select GENERIC_IOMAP
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
......
...@@ -26,7 +26,6 @@ config SUPERH ...@@ -26,7 +26,6 @@ config SUPERH
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS
select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_GENERIC_HARDIRQS
select MAY_HAVE_SPARSE_IRQ select MAY_HAVE_SPARSE_IRQ
select IRQ_FORCED_THREADING select IRQ_FORCED_THREADING
select RTC_LIB select RTC_LIB
......
...@@ -26,7 +26,6 @@ config SPARC ...@@ -26,7 +26,6 @@ config SPARC
select HAVE_DMA_ATTRS select HAVE_DMA_ATTRS
select HAVE_DMA_API_DEBUG select HAVE_DMA_API_DEBUG
select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_JUMP_LABEL
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select USE_GENERIC_SMP_HELPERS if SMP select USE_GENERIC_SMP_HELPERS if SMP
......
...@@ -11,7 +11,6 @@ config TILE ...@@ -11,7 +11,6 @@ config TILE
select USE_GENERIC_SMP_HELPERS select USE_GENERIC_SMP_HELPERS
select CC_OPTIMIZE_FOR_SIZE select CC_OPTIMIZE_FOR_SIZE
select HAVE_DEBUG_KMEMLEAK select HAVE_DEBUG_KMEMLEAK
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_PENDING_IRQ if SMP select GENERIC_PENDING_IRQ if SMP
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -6,7 +6,6 @@ config DEFCONFIG_LIST ...@@ -6,7 +6,6 @@ config DEFCONFIG_LIST
config UML config UML
bool bool
default y default y
select HAVE_GENERIC_HARDIRQS
select HAVE_UID16 select HAVE_UID16
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
......
...@@ -129,12 +129,10 @@ CONFIG_BSD_PROCESS_ACCT=y ...@@ -129,12 +129,10 @@ CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_FHANDLE is not set # CONFIG_FHANDLE is not set
# CONFIG_TASKSTATS is not set # CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set # CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
# #
# IRQ subsystem # IRQ subsystem
# #
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW=y
# #
......
...@@ -2,7 +2,6 @@ config UNICORE32 ...@@ -2,7 +2,6 @@ config UNICORE32
def_bool y def_bool y
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_GENERIC_DMA_COHERENT select HAVE_GENERIC_DMA_COHERENT
select HAVE_GENERIC_HARDIRQS
select HAVE_DMA_ATTRS select HAVE_DMA_ATTRS
select HAVE_KERNEL_GZIP select HAVE_KERNEL_GZIP
select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_BZIP2
......
...@@ -82,7 +82,6 @@ config X86 ...@@ -82,7 +82,6 @@ config X86
select HAVE_USER_RETURN_NOTIFIER select HAVE_USER_RETURN_NOTIFIER
select ARCH_BINFMT_ELF_RANDOMIZE_PIE select ARCH_BINFMT_ELF_RANDOMIZE_PIE
select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_JUMP_LABEL
select HAVE_GENERIC_HARDIRQS
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
select SPARSE_IRQ select SPARSE_IRQ
select GENERIC_FIND_FIRST_BIT select GENERIC_FIND_FIRST_BIT
......
...@@ -7,7 +7,6 @@ config XTENSA ...@@ -7,7 +7,6 @@ config XTENSA
select HAVE_IDE select HAVE_IDE
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select HAVE_GENERIC_HARDIRQS
select VIRT_TO_BUS select VIRT_TO_BUS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
......
...@@ -8,7 +8,6 @@ CONFIG_XTENSA=y ...@@ -8,7 +8,6 @@ CONFIG_XTENSA=y
# CONFIG_UID16 is not set # CONFIG_UID16 is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_HAVE_DEC_LOCK=y CONFIG_HAVE_DEC_LOCK=y
CONFIG_GENERIC_HARDIRQS=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -9,7 +9,6 @@ CONFIG_XTENSA=y ...@@ -9,7 +9,6 @@ CONFIG_XTENSA=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_HARDIRQS=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_NO_IOPORT=y CONFIG_NO_IOPORT=y
......
...@@ -9,7 +9,6 @@ CONFIG_XTENSA=y ...@@ -9,7 +9,6 @@ CONFIG_XTENSA=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_HARDIRQS=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_NO_IOPORT=y CONFIG_NO_IOPORT=y
......
...@@ -4,6 +4,6 @@ ...@@ -4,6 +4,6 @@
config BLK_DEV_PCIESSD_MTIP32XX config BLK_DEV_PCIESSD_MTIP32XX
tristate "Block Device Driver for Micron PCIe SSDs" tristate "Block Device Driver for Micron PCIe SSDs"
depends on PCI && GENERIC_HARDIRQS depends on PCI
help help
This enables the block driver for Micron PCIe SSDs. This enables the block driver for Micron PCIe SSDs.
...@@ -255,10 +255,7 @@ ...@@ -255,10 +255,7 @@
#include <linux/fips.h> #include <linux/fips.h>
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/kmemcheck.h> #include <linux/kmemcheck.h>
#include <linux/irq.h>
#ifdef CONFIG_GENERIC_HARDIRQS
# include <linux/irq.h>
#endif
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
config DW_DMAC_CORE config DW_DMAC_CORE
tristate "Synopsys DesignWare AHB DMA support" tristate "Synopsys DesignWare AHB DMA support"
depends on GENERIC_HARDIRQS
select DMA_ENGINE select DMA_ENGINE
config DW_DMAC config DW_DMAC
......
...@@ -322,7 +322,7 @@ config GPIO_ICH ...@@ -322,7 +322,7 @@ config GPIO_ICH
config GPIO_VX855 config GPIO_VX855
tristate "VIA VX855/VX875 GPIO" tristate "VIA VX855/VX875 GPIO"
depends on PCI && GENERIC_HARDIRQS depends on PCI
select MFD_CORE select MFD_CORE
select MFD_VX855 select MFD_VX855
help help
...@@ -396,7 +396,7 @@ config GPIO_MAX732X ...@@ -396,7 +396,7 @@ config GPIO_MAX732X
config GPIO_MAX732X_IRQ config GPIO_MAX732X_IRQ
bool "Interrupt controller support for MAX732x" bool "Interrupt controller support for MAX732x"
depends on GPIO_MAX732X=y && GENERIC_HARDIRQS depends on GPIO_MAX732X=y
help help
Say yes here to enable the max732x to be used as an interrupt Say yes here to enable the max732x to be used as an interrupt
controller. It requires the driver to be built in the kernel. controller. It requires the driver to be built in the kernel.
...@@ -661,7 +661,7 @@ config GPIO_TIMBERDALE ...@@ -661,7 +661,7 @@ config GPIO_TIMBERDALE
config GPIO_RDC321X config GPIO_RDC321X
tristate "RDC R-321x GPIO support" tristate "RDC R-321x GPIO support"
depends on PCI && GENERIC_HARDIRQS depends on PCI
select MFD_CORE select MFD_CORE
select MFD_RDC321X select MFD_RDC321X
help help
......
...@@ -773,7 +773,7 @@ config HID_ZYDACRON ...@@ -773,7 +773,7 @@ config HID_ZYDACRON
config HID_SENSOR_HUB config HID_SENSOR_HUB
tristate "HID Sensors framework support" tristate "HID Sensors framework support"
depends on HID && GENERIC_HARDIRQS depends on HID
select MFD_CORE select MFD_CORE
default n default n
---help--- ---help---
......
...@@ -75,7 +75,6 @@ config I2C_HELPER_AUTO ...@@ -75,7 +75,6 @@ config I2C_HELPER_AUTO
config I2C_SMBUS config I2C_SMBUS
tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
depends on GENERIC_HARDIRQS
help help
Say Y here if you want support for SMBus extensions to the I2C Say Y here if you want support for SMBus extensions to the I2C
specification. At the moment, the only supported extension is specification. At the moment, the only supported extension is
......
...@@ -115,7 +115,7 @@ config I2C_I801 ...@@ -115,7 +115,7 @@ config I2C_I801
config I2C_ISCH config I2C_ISCH
tristate "Intel SCH SMBus 1.0" tristate "Intel SCH SMBus 1.0"
depends on PCI && GENERIC_HARDIRQS depends on PCI
select LPC_SCH select LPC_SCH
help help
Say Y here if you want to use SMBus controller on the Intel SCH Say Y here if you want to use SMBus controller on the Intel SCH
...@@ -546,7 +546,6 @@ config I2C_NUC900 ...@@ -546,7 +546,6 @@ config I2C_NUC900
config I2C_OCORES config I2C_OCORES
tristate "OpenCores I2C Controller" tristate "OpenCores I2C Controller"
depends on GENERIC_HARDIRQS
help help
If you say yes to this option, support will be included for the If you say yes to this option, support will be included for the
OpenCores I2C controller. For details see OpenCores I2C controller. For details see
...@@ -791,7 +790,7 @@ config I2C_DIOLAN_U2C ...@@ -791,7 +790,7 @@ config I2C_DIOLAN_U2C
config I2C_PARPORT config I2C_PARPORT
tristate "Parallel port adapter" tristate "Parallel port adapter"
depends on PARPORT && GENERIC_HARDIRQS depends on PARPORT
select I2C_ALGOBIT select I2C_ALGOBIT
select I2C_SMBUS select I2C_SMBUS
help help
...@@ -816,7 +815,6 @@ config I2C_PARPORT ...@@ -816,7 +815,6 @@ config I2C_PARPORT
config I2C_PARPORT_LIGHT config I2C_PARPORT_LIGHT
tristate "Parallel port adapter (light)" tristate "Parallel port adapter (light)"
depends on GENERIC_HARDIRQS
select I2C_ALGOBIT select I2C_ALGOBIT
select I2C_SMBUS select I2C_SMBUS
help help
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
menuconfig IIO menuconfig IIO
tristate "Industrial I/O support" tristate "Industrial I/O support"
depends on GENERIC_HARDIRQS
help help
The industrial I/O subsystem provides a unified framework for The industrial I/O subsystem provides a unified framework for
drivers for many different types of embedded sensors using a drivers for many different types of embedded sensors using a
......
...@@ -8,7 +8,7 @@ config INFINIBAND_QIB ...@@ -8,7 +8,7 @@ config INFINIBAND_QIB
config INFINIBAND_QIB_DCA config INFINIBAND_QIB_DCA
bool "QIB DCA support" bool "QIB DCA support"
depends on INFINIBAND_QIB && DCA && SMP && GENERIC_HARDIRQS && !(INFINIBAND_QIB=y && DCA=m) depends on INFINIBAND_QIB && DCA && SMP && !(INFINIBAND_QIB=y && DCA=m)
default y default y
---help--- ---help---
Setting this enables DCA support on some Intel chip sets Setting this enables DCA support on some Intel chip sets
......
...@@ -224,7 +224,7 @@ config KEYBOARD_TCA6416 ...@@ -224,7 +224,7 @@ config KEYBOARD_TCA6416
config KEYBOARD_TCA8418 config KEYBOARD_TCA8418
tristate "TCA8418 Keypad Support" tristate "TCA8418 Keypad Support"
depends on I2C && GENERIC_HARDIRQS depends on I2C
select INPUT_MATRIXKMAP select INPUT_MATRIXKMAP
help help
This driver implements basic keypad functionality This driver implements basic keypad functionality
...@@ -303,7 +303,7 @@ config KEYBOARD_HP7XX ...@@ -303,7 +303,7 @@ config KEYBOARD_HP7XX
config KEYBOARD_LM8323 config KEYBOARD_LM8323
tristate "LM8323 keypad chip" tristate "LM8323 keypad chip"
depends on I2C && GENERIC_HARDIRQS depends on I2C
depends on LEDS_CLASS depends on LEDS_CLASS
help help
If you say yes here you get support for the National Semiconductor If you say yes here you get support for the National Semiconductor
......
...@@ -239,7 +239,6 @@ config SERIO_PS2MULT ...@@ -239,7 +239,6 @@ config SERIO_PS2MULT
config SERIO_ARC_PS2 config SERIO_ARC_PS2
tristate "ARC PS/2 support" tristate "ARC PS/2 support"
depends on GENERIC_HARDIRQS
help help
Say Y here if you have an ARC FPGA platform with a PS/2 Say Y here if you have an ARC FPGA platform with a PS/2
controller in it. controller in it.
......
...@@ -389,7 +389,7 @@ config TOUCHSCREEN_MCS5000 ...@@ -389,7 +389,7 @@ config TOUCHSCREEN_MCS5000
config TOUCHSCREEN_MMS114 config TOUCHSCREEN_MMS114
tristate "MELFAS MMS114 touchscreen" tristate "MELFAS MMS114 touchscreen"
depends on I2C && GENERIC_HARDIRQS depends on I2C
help help
Say Y here if you have the MELFAS MMS114 touchscreen controller Say Y here if you have the MELFAS MMS114 touchscreen controller
chip in your system. chip in your system.
...@@ -845,7 +845,7 @@ config TOUCHSCREEN_TSC_SERIO ...@@ -845,7 +845,7 @@ config TOUCHSCREEN_TSC_SERIO
config TOUCHSCREEN_TSC2005 config TOUCHSCREEN_TSC2005
tristate "TSC2005 based touchscreens" tristate "TSC2005 based touchscreens"
depends on SPI_MASTER && GENERIC_HARDIRQS depends on SPI_MASTER
help help
Say Y here if you have a TSC2005 based touchscreen. Say Y here if you have a TSC2005 based touchscreen.
......
...@@ -203,7 +203,7 @@ config VIDEO_SAMSUNG_EXYNOS_GSC ...@@ -203,7 +203,7 @@ config VIDEO_SAMSUNG_EXYNOS_GSC
config VIDEO_SH_VEU config VIDEO_SH_VEU
tristate "SuperH VEU mem2mem video processing driver" tristate "SuperH VEU mem2mem video processing driver"
depends on VIDEO_DEV && VIDEO_V4L2 && GENERIC_HARDIRQS && HAS_DMA depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
select VIDEOBUF2_DMA_CONTIG select VIDEOBUF2_DMA_CONTIG
select V4L2_MEM2MEM_DEV select V4L2_MEM2MEM_DEV
help help
......
...@@ -214,7 +214,7 @@ config RADIO_TIMBERDALE ...@@ -214,7 +214,7 @@ config RADIO_TIMBERDALE
config RADIO_WL1273 config RADIO_WL1273
tristate "Texas Instruments WL1273 I2C FM Radio" tristate "Texas Instruments WL1273 I2C FM Radio"
depends on I2C && VIDEO_V4L2 && GENERIC_HARDIRQS depends on I2C && VIDEO_V4L2
select MFD_CORE select MFD_CORE
select MFD_WL1273_CORE select MFD_WL1273_CORE
select FW_LOADER select FW_LOADER
......
This diff is collapsed.
config CB710_CORE config CB710_CORE
tristate "ENE CB710/720 Flash memory card reader support" tristate "ENE CB710/720 Flash memory card reader support"
depends on PCI && GENERIC_HARDIRQS depends on PCI
help help
This option enables support for PCI ENE CB710/720 Flash memory card This option enables support for PCI ENE CB710/720 Flash memory card
reader found in some laptops (ie. some versions of HP Compaq nx9500). reader found in some laptops (ie. some versions of HP Compaq nx9500).
......
...@@ -487,7 +487,7 @@ config MMC_SDHI ...@@ -487,7 +487,7 @@ config MMC_SDHI
config MMC_CB710 config MMC_CB710
tristate "ENE CB710 MMC/SD Interface support" tristate "ENE CB710 MMC/SD Interface support"
depends on PCI && GENERIC_HARDIRQS depends on PCI
select CB710_CORE select CB710_CORE
help help
This option enables support for MMC/SD part of ENE CB710/720 Flash This option enables support for MMC/SD part of ENE CB710/720 Flash
......
...@@ -22,7 +22,7 @@ if NET_CADENCE ...@@ -22,7 +22,7 @@ if NET_CADENCE
config ARM_AT91_ETHER config ARM_AT91_ETHER
tristate "AT91RM9200 Ethernet support" tristate "AT91RM9200 Ethernet support"
depends on GENERIC_HARDIRQS && HAS_DMA depends on HAS_DMA
select MACB select MACB
---help--- ---help---
If you wish to compile a kernel for the AT91RM9200 and enable If you wish to compile a kernel for the AT91RM9200 and enable
......
...@@ -41,7 +41,7 @@ config P54_PCI ...@@ -41,7 +41,7 @@ config P54_PCI
config P54_SPI config P54_SPI
tristate "Prism54 SPI (stlc45xx) support" tristate "Prism54 SPI (stlc45xx) support"
depends on P54_COMMON && SPI_MASTER && GENERIC_HARDIRQS depends on P54_COMMON && SPI_MASTER
---help--- ---help---
This driver is for stlc4550 or stlc4560 based wireless chips This driver is for stlc4550 or stlc4560 based wireless chips
such as Nokia's N800/N810 Portable Internet Tablet. such as Nokia's N800/N810 Portable Internet Tablet.
......
menuconfig WL1251 menuconfig WL1251
tristate "TI wl1251 driver support" tristate "TI wl1251 driver support"
depends on MAC80211 && GENERIC_HARDIRQS depends on MAC80211
select FW_LOADER select FW_LOADER
select CRC7 select CRC7
---help--- ---help---
......
config WLCORE config WLCORE
tristate "TI wlcore support" tristate "TI wlcore support"
depends on WL_TI && GENERIC_HARDIRQS && MAC80211 depends on WL_TI && MAC80211
select FW_LOADER select FW_LOADER
---help--- ---help---
This module contains the main code for TI WLAN chips. It abstracts This module contains the main code for TI WLAN chips. It abstracts
......
...@@ -30,7 +30,6 @@ static int pci_msi_enable = 1; ...@@ -30,7 +30,6 @@ static int pci_msi_enable = 1;
/* Arch hooks */ /* Arch hooks */
#if defined(CONFIG_GENERIC_HARDIRQS)
int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc) int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
{ {
struct msi_chip *chip = dev->bus->msi; struct msi_chip *chip = dev->bus->msi;
...@@ -67,21 +66,6 @@ int __weak arch_msi_check_device(struct pci_dev *dev, int nvec, int type) ...@@ -67,21 +66,6 @@ int __weak arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
return chip->check_device(chip, dev, nvec, type); return chip->check_device(chip, dev, nvec, type);
} }
#else
int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
{
return -ENOSYS;
}
void __weak arch_teardown_msi_irq(unsigned int irq)
{
}
int __weak arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
{
return 0;
}
#endif /* CONFIG_GENERIC_HARDIRQS */
int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
{ {
...@@ -245,8 +229,6 @@ static void msix_mask_irq(struct msi_desc *desc, u32 flag) ...@@ -245,8 +229,6 @@ static void msix_mask_irq(struct msi_desc *desc, u32 flag)
desc->masked = __msix_mask_irq(desc, flag); desc->masked = __msix_mask_irq(desc, flag);
} }
#ifdef CONFIG_GENERIC_HARDIRQS
static void msi_set_mask_bit(struct irq_data *data, u32 flag) static void msi_set_mask_bit(struct irq_data *data, u32 flag)
{ {
struct msi_desc *desc = irq_data_get_msi(data); struct msi_desc *desc = irq_data_get_msi(data);
...@@ -270,8 +252,6 @@ void unmask_msi_irq(struct irq_data *data) ...@@ -270,8 +252,6 @@ void unmask_msi_irq(struct irq_data *data)
msi_set_mask_bit(data, 0); msi_set_mask_bit(data, 0);
} }
#endif /* CONFIG_GENERIC_HARDIRQS */
void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg) void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
{ {
BUG_ON(entry->dev->current_state != PCI_D0); BUG_ON(entry->dev->current_state != PCI_D0);
...@@ -382,10 +362,8 @@ static void free_msi_irqs(struct pci_dev *dev) ...@@ -382,10 +362,8 @@ static void free_msi_irqs(struct pci_dev *dev)
nvec = entry->nvec_used; nvec = entry->nvec_used;
else else
nvec = 1 << entry->msi_attrib.multiple; nvec = 1 << entry->msi_attrib.multiple;
#ifdef CONFIG_GENERIC_HARDIRQS
for (i = 0; i < nvec; i++) for (i = 0; i < nvec; i++)
BUG_ON(irq_has_action(entry->irq + i)); BUG_ON(irq_has_action(entry->irq + i));
#endif
} }
arch_teardown_msi_irqs(dev); arch_teardown_msi_irqs(dev);
......
...@@ -269,7 +269,6 @@ config CHARGER_ISP1704 ...@@ -269,7 +269,6 @@ config CHARGER_ISP1704
config CHARGER_MAX8903 config CHARGER_MAX8903
tristate "MAX8903 Battery DC-DC Charger for USB and Adapter Power" tristate "MAX8903 Battery DC-DC Charger for USB and Adapter Power"
depends on GENERIC_HARDIRQS
help help
Say Y to enable support for the MAX8903 DC-DC charger and sysfs. Say Y to enable support for the MAX8903 DC-DC charger and sysfs.
The driver supports controlling charger-enable and current-limit The driver supports controlling charger-enable and current-limit
...@@ -370,7 +369,7 @@ config AB8500_BM ...@@ -370,7 +369,7 @@ config AB8500_BM
config BATTERY_GOLDFISH config BATTERY_GOLDFISH
tristate "Goldfish battery driver" tristate "Goldfish battery driver"
depends on GENERIC_HARDIRQS && (GOLDFISH || COMPILE_TEST) depends on GOLDFISH || COMPILE_TEST
help help
Say Y to enable support for the battery and AC power in the Say Y to enable support for the battery and AC power in the
Goldfish emulator. Goldfish emulator.
......
...@@ -31,7 +31,7 @@ config PPS_CLIENT_PARPORT ...@@ -31,7 +31,7 @@ config PPS_CLIENT_PARPORT
config PPS_CLIENT_GPIO config PPS_CLIENT_GPIO
tristate "PPS client using GPIO" tristate "PPS client using GPIO"
depends on PPS && GENERIC_HARDIRQS depends on PPS
help help
If you say yes here you get support for a PPS source using If you say yes here you get support for a PPS source using
GPIO. To be useful you must also register a platform device GPIO. To be useful you must also register a platform device
......
...@@ -55,7 +55,6 @@ comment "SPI Master Controller Drivers" ...@@ -55,7 +55,6 @@ comment "SPI Master Controller Drivers"
config SPI_ALTERA config SPI_ALTERA
tristate "Altera SPI Controller" tristate "Altera SPI Controller"
depends on GENERIC_HARDIRQS
select SPI_BITBANG select SPI_BITBANG
help help
This is the driver for the Altera SPI Controller. This is the driver for the Altera SPI Controller.
...@@ -358,7 +357,7 @@ config SPI_PXA2XX_DMA ...@@ -358,7 +357,7 @@ config SPI_PXA2XX_DMA
config SPI_PXA2XX config SPI_PXA2XX
tristate "PXA2xx SSP SPI master" tristate "PXA2xx SSP SPI master"
depends on (ARCH_PXA || PCI || ACPI) && GENERIC_HARDIRQS depends on (ARCH_PXA || PCI || ACPI)
select PXA_SSP if ARCH_PXA select PXA_SSP if ARCH_PXA
help help
This enables using a PXA2xx or Sodaville SSP port as a SPI master This enables using a PXA2xx or Sodaville SSP port as a SPI master
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
if TTY if TTY
menu "Serial drivers" menu "Serial drivers"
depends on HAS_IOMEM && GENERIC_HARDIRQS depends on HAS_IOMEM
source "drivers/tty/serial/8250/Kconfig" source "drivers/tty/serial/8250/Kconfig"
......
config USB_DWC3 config USB_DWC3
tristate "DesignWare USB3 DRD Core Support" tristate "DesignWare USB3 DRD Core Support"
depends on (USB || USB_GADGET) && GENERIC_HARDIRQS && HAS_DMA depends on (USB || USB_GADGET) && HAS_DMA
depends on EXTCON depends on EXTCON
select USB_XHCI_PLATFORM if USB_SUPPORT && USB_XHCI_HCD select USB_XHCI_PLATFORM if USB_SUPPORT && USB_XHCI_HCD
help help
......
...@@ -313,7 +313,7 @@ config USB_S3C_HSUDC ...@@ -313,7 +313,7 @@ config USB_S3C_HSUDC
config USB_MV_UDC config USB_MV_UDC
tristate "Marvell USB2.0 Device Controller" tristate "Marvell USB2.0 Device Controller"
depends on GENERIC_HARDIRQS && HAS_DMA depends on HAS_DMA
help help
Marvell Socs (including PXA and MMP series) include a high speed Marvell Socs (including PXA and MMP series) include a high speed
USB2.0 OTG controller, which can be configured as high speed or USB2.0 OTG controller, which can be configured as high speed or
...@@ -425,7 +425,7 @@ config USB_GOKU ...@@ -425,7 +425,7 @@ config USB_GOKU
config USB_EG20T config USB_EG20T
tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC" tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
depends on PCI && GENERIC_HARDIRQS depends on PCI
help help
This is a USB device driver for EG20T PCH. This is a USB device driver for EG20T PCH.
EG20T PCH is the platform controller hub that is used in Intel's EG20T PCH is the platform controller hub that is used in Intel's
......
...@@ -278,7 +278,6 @@ endif # USB_EHCI_HCD ...@@ -278,7 +278,6 @@ endif # USB_EHCI_HCD
config USB_OXU210HP_HCD config USB_OXU210HP_HCD
tristate "OXU210HP HCD support" tristate "OXU210HP HCD support"
depends on GENERIC_HARDIRQS
---help--- ---help---
The OXU210HP is an USB host/OTG/device controller. Enable this The OXU210HP is an USB host/OTG/device controller. Enable this
option if your board has this chip. If unsure, say N. option if your board has this chip. If unsure, say N.
......
...@@ -71,7 +71,6 @@ config USB_MUSB_DA8XX ...@@ -71,7 +71,6 @@ config USB_MUSB_DA8XX
config USB_MUSB_TUSB6010 config USB_MUSB_TUSB6010
tristate "TUSB6010" tristate "TUSB6010"
depends on GENERIC_HARDIRQS
config USB_MUSB_OMAP2PLUS config USB_MUSB_OMAP2PLUS
tristate "OMAP2430 and onwards" tristate "OMAP2430 and onwards"
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
config USB_RENESAS_USBHS config USB_RENESAS_USBHS
tristate 'Renesas USBHS controller' tristate 'Renesas USBHS controller'
depends on USB_GADGET && GENERIC_HARDIRQS depends on USB_GADGET
default n default n
help help
Renesas USBHS is a discrete USB host and peripheral controller chip Renesas USBHS is a discrete USB host and peripheral controller chip
......
...@@ -42,7 +42,7 @@ config W1_MASTER_MXC ...@@ -42,7 +42,7 @@ config W1_MASTER_MXC
config W1_MASTER_DS1WM config W1_MASTER_DS1WM
tristate "Maxim DS1WM 1-wire busmaster" tristate "Maxim DS1WM 1-wire busmaster"
depends on W1 && GENERIC_HARDIRQS depends on W1
help help
Say Y here to enable the DS1WM 1-wire driver, such as that Say Y here to enable the DS1WM 1-wire driver, such as that
in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like
......
...@@ -52,8 +52,6 @@ static inline void *cpu_rmap_lookup_obj(struct cpu_rmap *rmap, unsigned int cpu) ...@@ -52,8 +52,6 @@ static inline void *cpu_rmap_lookup_obj(struct cpu_rmap *rmap, unsigned int cpu)
return rmap->obj[rmap->near[cpu].index]; return rmap->obj[rmap->near[cpu].index];
} }
#ifdef CONFIG_GENERIC_HARDIRQS
/** /**
* alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs * alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs
* @size: Number of objects to be mapped * @size: Number of objects to be mapped
...@@ -68,5 +66,4 @@ extern void free_irq_cpu_rmap(struct cpu_rmap *rmap); ...@@ -68,5 +66,4 @@ extern void free_irq_cpu_rmap(struct cpu_rmap *rmap);
extern int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq); extern int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq);
#endif
#endif /* __LINUX_CPU_RMAP_H */ #endif /* __LINUX_CPU_RMAP_H */
...@@ -7,11 +7,7 @@ ...@@ -7,11 +7,7 @@
#include <linux/vtime.h> #include <linux/vtime.h>
#if defined(CONFIG_SMP) || defined(CONFIG_GENERIC_HARDIRQS)
extern void synchronize_irq(unsigned int irq); extern void synchronize_irq(unsigned int irq);
#else
# define synchronize_irq(irq) barrier()
#endif
#if defined(CONFIG_TINY_RCU) #if defined(CONFIG_TINY_RCU)
......
...@@ -120,7 +120,6 @@ struct irqaction { ...@@ -120,7 +120,6 @@ struct irqaction {
extern irqreturn_t no_action(int cpl, void *dev_id); extern irqreturn_t no_action(int cpl, void *dev_id);
#ifdef CONFIG_GENERIC_HARDIRQS
extern int __must_check extern int __must_check
request_threaded_irq(unsigned int irq, irq_handler_t handler, request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t thread_fn, irq_handler_t thread_fn,
...@@ -140,40 +139,6 @@ request_any_context_irq(unsigned int irq, irq_handler_t handler, ...@@ -140,40 +139,6 @@ request_any_context_irq(unsigned int irq, irq_handler_t handler,
extern int __must_check extern int __must_check
request_percpu_irq(unsigned int irq, irq_handler_t handler, request_percpu_irq(unsigned int irq, irq_handler_t handler,
const char *devname, void __percpu *percpu_dev_id); const char *devname, void __percpu *percpu_dev_id);
#else
extern int __must_check
request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
const char *name, void *dev);
/*
* Special function to avoid ifdeffery in kernel/irq/devres.c which
* gets magically built by GENERIC_HARDIRQS=n architectures (sparc,
* m68k). I really love these $@%#!* obvious Makefile references:
* ../../../kernel/irq/devres.o
*/
static inline int __must_check
request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t thread_fn,
unsigned long flags, const char *name, void *dev)
{
return request_irq(irq, handler, flags, name, dev);
}
static inline int __must_check
request_any_context_irq(unsigned int irq, irq_handler_t handler,
unsigned long flags, const char *name, void *dev_id)
{
return request_irq(irq, handler, flags, name, dev_id);
}
static inline int __must_check
request_percpu_irq(unsigned int irq, irq_handler_t handler,
const char *devname, void __percpu *percpu_dev_id)
{
return request_irq(irq, handler, 0, devname, percpu_dev_id);
}
#endif
extern void free_irq(unsigned int, void *); extern void free_irq(unsigned int, void *);
extern void free_percpu_irq(unsigned int, void __percpu *); extern void free_percpu_irq(unsigned int, void __percpu *);
...@@ -221,7 +186,6 @@ extern void enable_irq(unsigned int irq); ...@@ -221,7 +186,6 @@ extern void enable_irq(unsigned int irq);
extern void enable_percpu_irq(unsigned int irq, unsigned int type); extern void enable_percpu_irq(unsigned int irq, unsigned int type);
/* The following three functions are for the core kernel use only. */ /* The following three functions are for the core kernel use only. */
#ifdef CONFIG_GENERIC_HARDIRQS
extern void suspend_device_irqs(void); extern void suspend_device_irqs(void);
extern void resume_device_irqs(void); extern void resume_device_irqs(void);
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
...@@ -229,13 +193,8 @@ extern int check_wakeup_irqs(void); ...@@ -229,13 +193,8 @@ extern int check_wakeup_irqs(void);
#else #else
static inline int check_wakeup_irqs(void) { return 0; } static inline int check_wakeup_irqs(void) { return 0; }
#endif #endif
#else
static inline void suspend_device_irqs(void) { };
static inline void resume_device_irqs(void) { };
static inline int check_wakeup_irqs(void) { return 0; }
#endif
#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS) #if defined(CONFIG_SMP)
extern cpumask_var_t irq_default_affinity; extern cpumask_var_t irq_default_affinity;
...@@ -287,9 +246,8 @@ static inline int irq_set_affinity_hint(unsigned int irq, ...@@ -287,9 +246,8 @@ static inline int irq_set_affinity_hint(unsigned int irq,
{ {
return -EINVAL; return -EINVAL;
} }
#endif /* CONFIG_SMP && CONFIG_GENERIC_HARDIRQS */ #endif /* CONFIG_SMP */
#ifdef CONFIG_GENERIC_HARDIRQS
/* /*
* Special lockdep variants of irq disabling/enabling. * Special lockdep variants of irq disabling/enabling.
* These should be used for locking constructs that * These should be used for locking constructs that
...@@ -354,33 +312,6 @@ static inline int disable_irq_wake(unsigned int irq) ...@@ -354,33 +312,6 @@ static inline int disable_irq_wake(unsigned int irq)
return irq_set_irq_wake(irq, 0); return irq_set_irq_wake(irq, 0);
} }
#else /* !CONFIG_GENERIC_HARDIRQS */
/*
* NOTE: non-genirq architectures, if they want to support the lock
* validator need to define the methods below in their asm/irq.h
* files, under an #ifdef CONFIG_LOCKDEP section.
*/
#ifndef CONFIG_LOCKDEP
# define disable_irq_nosync_lockdep(irq) disable_irq_nosync(irq)
# define disable_irq_nosync_lockdep_irqsave(irq, flags) \
disable_irq_nosync(irq)
# define disable_irq_lockdep(irq) disable_irq(irq)
# define enable_irq_lockdep(irq) enable_irq(irq)
# define enable_irq_lockdep_irqrestore(irq, flags) \
enable_irq(irq)
# endif
static inline int enable_irq_wake(unsigned int irq)
{
return 0;
}
static inline int disable_irq_wake(unsigned int irq)
{
return 0;
}
#endif /* CONFIG_GENERIC_HARDIRQS */
#ifdef CONFIG_IRQ_FORCED_THREADING #ifdef CONFIG_IRQ_FORCED_THREADING
extern bool force_irqthreads; extern bool force_irqthreads;
...@@ -655,7 +586,7 @@ void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer) ...@@ -655,7 +586,7 @@ void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer)
* if more than one irq occurred. * if more than one irq occurred.
*/ */
#if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE) #if !defined(CONFIG_GENERIC_IRQ_PROBE)
static inline unsigned long probe_irq_on(void) static inline unsigned long probe_irq_on(void)
{ {
return 0; return 0;
......
...@@ -382,8 +382,6 @@ extern void irq_cpu_online(void); ...@@ -382,8 +382,6 @@ extern void irq_cpu_online(void);
extern void irq_cpu_offline(void); extern void irq_cpu_offline(void);
extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask); extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask);
#ifdef CONFIG_GENERIC_HARDIRQS
#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ)
void irq_move_irq(struct irq_data *data); void irq_move_irq(struct irq_data *data);
void irq_move_masked_irq(struct irq_data *data); void irq_move_masked_irq(struct irq_data *data);
...@@ -802,11 +800,4 @@ static inline void irq_gc_lock(struct irq_chip_generic *gc) { } ...@@ -802,11 +800,4 @@ static inline void irq_gc_lock(struct irq_chip_generic *gc) { }
static inline void irq_gc_unlock(struct irq_chip_generic *gc) { } static inline void irq_gc_unlock(struct irq_chip_generic *gc) { }
#endif #endif
#else /* !CONFIG_GENERIC_HARDIRQS */
extern struct msi_desc *irq_get_msi_desc(unsigned int irq);
extern int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry);
#endif /* CONFIG_GENERIC_HARDIRQS */
#endif /* _LINUX_IRQ_H */ #endif /* _LINUX_IRQ_H */
...@@ -76,8 +76,6 @@ struct irq_desc { ...@@ -76,8 +76,6 @@ struct irq_desc {
extern struct irq_desc irq_desc[NR_IRQS]; extern struct irq_desc irq_desc[NR_IRQS];
#endif #endif
#ifdef CONFIG_GENERIC_HARDIRQS
static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc) static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc)
{ {
return &desc->irq_data; return &desc->irq_data;
...@@ -173,6 +171,5 @@ __irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler) ...@@ -173,6 +171,5 @@ __irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler)
desc->preflow_handler = handler; desc->preflow_handler = handler;
} }
#endif #endif
#endif
#endif #endif
...@@ -4,23 +4,6 @@ ...@@ -4,23 +4,6 @@
#include <uapi/linux/irqnr.h> #include <uapi/linux/irqnr.h>
#ifndef CONFIG_GENERIC_HARDIRQS
#include <asm/irq.h>
/*
* Wrappers for non-genirq architectures:
*/
#define nr_irqs NR_IRQS
#define irq_to_desc(irq) (&irq_desc[irq])
# define for_each_irq_desc(irq, desc) \
for (irq = 0; irq < nr_irqs; irq++)
# define for_each_irq_desc_reverse(irq, desc) \
for (irq = nr_irqs - 1; irq >= 0; irq--)
#else /* CONFIG_GENERIC_HARDIRQS */
extern int nr_irqs; extern int nr_irqs;
extern struct irq_desc *irq_to_desc(unsigned int irq); extern struct irq_desc *irq_to_desc(unsigned int irq);
unsigned int irq_get_next_irq(unsigned int offset); unsigned int irq_get_next_irq(unsigned int offset);
...@@ -50,8 +33,6 @@ unsigned int irq_get_next_irq(unsigned int offset); ...@@ -50,8 +33,6 @@ unsigned int irq_get_next_irq(unsigned int offset);
for (irq = irq_get_next_irq(0); irq < nr_irqs; \ for (irq = irq_get_next_irq(0); irq < nr_irqs; \
irq = irq_get_next_irq(irq + 1)) irq = irq_get_next_irq(irq + 1))
#endif /* CONFIG_GENERIC_HARDIRQS */
#define for_each_irq_nr(irq) \ #define for_each_irq_nr(irq) \
for (irq = 0; irq < nr_irqs; irq++) for (irq = 0; irq < nr_irqs; irq++)
......
...@@ -36,9 +36,6 @@ struct kernel_cpustat { ...@@ -36,9 +36,6 @@ struct kernel_cpustat {
}; };
struct kernel_stat { struct kernel_stat {
#ifndef CONFIG_GENERIC_HARDIRQS
unsigned int irqs[NR_IRQS];
#endif
unsigned long irqs_sum; unsigned long irqs_sum;
unsigned int softirqs[NR_SOFTIRQS]; unsigned int softirqs[NR_SOFTIRQS];
}; };
...@@ -54,22 +51,6 @@ DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat); ...@@ -54,22 +51,6 @@ DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat);
extern unsigned long long nr_context_switches(void); extern unsigned long long nr_context_switches(void);
#ifndef CONFIG_GENERIC_HARDIRQS
struct irq_desc;
static inline void kstat_incr_irqs_this_cpu(unsigned int irq,
struct irq_desc *desc)
{
__this_cpu_inc(kstat.irqs[irq]);
__this_cpu_inc(kstat.irqs_sum);
}
static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
{
return kstat_cpu(cpu).irqs[irq];
}
#else
#include <linux/irq.h> #include <linux/irq.h>
extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu); extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu);
...@@ -79,8 +60,6 @@ do { \ ...@@ -79,8 +60,6 @@ do { \
__this_cpu_inc(kstat.irqs_sum); \ __this_cpu_inc(kstat.irqs_sum); \
} while (0) } while (0)
#endif
static inline void kstat_incr_softirqs_this_cpu(unsigned int irq) static inline void kstat_incr_softirqs_this_cpu(unsigned int irq)
{ {
__this_cpu_inc(kstat.softirqs[irq]); __this_cpu_inc(kstat.softirqs[irq]);
...@@ -94,20 +73,7 @@ static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu) ...@@ -94,20 +73,7 @@ static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu)
/* /*
* Number of interrupts per specific IRQ source, since bootup * Number of interrupts per specific IRQ source, since bootup
*/ */
#ifndef CONFIG_GENERIC_HARDIRQS
static inline unsigned int kstat_irqs(unsigned int irq)
{
unsigned int sum = 0;
int cpu;
for_each_possible_cpu(cpu)
sum += kstat_irqs_cpu(irq, cpu);
return sum;
}
#else
extern unsigned int kstat_irqs(unsigned int irq); extern unsigned int kstat_irqs(unsigned int irq);
#endif
/* /*
* Number of interrupts per cpu, since bootup * Number of interrupts per cpu, since bootup
......
...@@ -26,6 +26,7 @@ obj-y += sched/ ...@@ -26,6 +26,7 @@ obj-y += sched/
obj-y += power/ obj-y += power/
obj-y += printk/ obj-y += printk/
obj-y += cpu/ obj-y += cpu/
obj-y += irq/
obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
obj-$(CONFIG_FREEZER) += freezer.o obj-$(CONFIG_FREEZER) += freezer.o
...@@ -79,7 +80,6 @@ obj-$(CONFIG_KPROBES) += kprobes.o ...@@ -79,7 +80,6 @@ obj-$(CONFIG_KPROBES) += kprobes.o
obj-$(CONFIG_KGDB) += debug/ obj-$(CONFIG_KGDB) += debug/
obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o
obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
obj-$(CONFIG_SECCOMP) += seccomp.o obj-$(CONFIG_SECCOMP) += seccomp.o
obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
obj-$(CONFIG_TREE_RCU) += rcutree.o obj-$(CONFIG_TREE_RCU) += rcutree.o
......
# Select this to activate the generic irq options below
config HAVE_GENERIC_HARDIRQS
bool
if HAVE_GENERIC_HARDIRQS
menu "IRQ subsystem" menu "IRQ subsystem"
#
# Interrupt subsystem related configuration options
#
config GENERIC_HARDIRQS
def_bool y
# Options selectable by the architecture code # Options selectable by the architecture code
# Make sparse irq Kconfig switch below available # Make sparse irq Kconfig switch below available
...@@ -84,4 +73,3 @@ config SPARSE_IRQ ...@@ -84,4 +73,3 @@ config SPARSE_IRQ
If you don't know what to do here, say N. If you don't know what to do here, say N.
endmenu endmenu
endif
...@@ -876,7 +876,6 @@ int __init __weak early_irq_init(void) ...@@ -876,7 +876,6 @@ int __init __weak early_irq_init(void)
return 0; return 0;
} }
#ifdef CONFIG_GENERIC_HARDIRQS
int __init __weak arch_probe_nr_irqs(void) int __init __weak arch_probe_nr_irqs(void)
{ {
return NR_IRQS_LEGACY; return NR_IRQS_LEGACY;
...@@ -886,4 +885,3 @@ int __init __weak arch_early_irq_init(void) ...@@ -886,4 +885,3 @@ int __init __weak arch_early_irq_init(void)
{ {
return 0; return 0;
} }
#endif
...@@ -597,7 +597,7 @@ endmenu # "Memory Debugging" ...@@ -597,7 +597,7 @@ endmenu # "Memory Debugging"
config DEBUG_SHIRQ config DEBUG_SHIRQ
bool "Debug shared IRQ handlers" bool "Debug shared IRQ handlers"
depends on DEBUG_KERNEL && GENERIC_HARDIRQS depends on DEBUG_KERNEL
help help
Enable this to generate a spurious interrupt as soon as a shared Enable this to generate a spurious interrupt as soon as a shared
interrupt handler is registered, and just before one is deregistered. interrupt handler is registered, and just before one is deregistered.
......
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
*/ */
#include <linux/cpu_rmap.h> #include <linux/cpu_rmap.h>
#ifdef CONFIG_GENERIC_HARDIRQS
#include <linux/interrupt.h> #include <linux/interrupt.h>
#endif
#include <linux/export.h> #include <linux/export.h>
/* /*
...@@ -213,8 +211,6 @@ int cpu_rmap_update(struct cpu_rmap *rmap, u16 index, ...@@ -213,8 +211,6 @@ int cpu_rmap_update(struct cpu_rmap *rmap, u16 index,
} }
EXPORT_SYMBOL(cpu_rmap_update); EXPORT_SYMBOL(cpu_rmap_update);
#ifdef CONFIG_GENERIC_HARDIRQS
/* Glue between IRQ affinity notifiers and CPU rmaps */ /* Glue between IRQ affinity notifiers and CPU rmaps */
struct irq_glue { struct irq_glue {
...@@ -309,5 +305,3 @@ int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq) ...@@ -309,5 +305,3 @@ int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq)
return rc; return rc;
} }
EXPORT_SYMBOL(irq_cpu_rmap_add); EXPORT_SYMBOL(irq_cpu_rmap_add);
#endif /* CONFIG_GENERIC_HARDIRQS */
...@@ -228,7 +228,7 @@ config RPS ...@@ -228,7 +228,7 @@ config RPS
config RFS_ACCEL config RFS_ACCEL
boolean boolean
depends on RPS && GENERIC_HARDIRQS depends on RPS
select CPU_RMAP select CPU_RMAP
default y default y
......
...@@ -107,7 +107,7 @@ config SND_SOC_ALL_CODECS ...@@ -107,7 +107,7 @@ config SND_SOC_ALL_CODECS
select SND_SOC_WM8782 select SND_SOC_WM8782
select SND_SOC_WM8804 if SND_SOC_I2C_AND_SPI select SND_SOC_WM8804 if SND_SOC_I2C_AND_SPI
select SND_SOC_WM8900 if I2C select SND_SOC_WM8900 if I2C
select SND_SOC_WM8903 if I2C && GENERIC_HARDIRQS select SND_SOC_WM8903 if I2C
select SND_SOC_WM8904 if I2C select SND_SOC_WM8904 if I2C
select SND_SOC_WM8940 if I2C select SND_SOC_WM8940 if I2C
select SND_SOC_WM8955 if I2C select SND_SOC_WM8955 if I2C
......
...@@ -63,7 +63,7 @@ config SND_SOC_SAMSUNG_SMDK_WM8580 ...@@ -63,7 +63,7 @@ config SND_SOC_SAMSUNG_SMDK_WM8580
config SND_SOC_SAMSUNG_SMDK_WM8994 config SND_SOC_SAMSUNG_SMDK_WM8994
tristate "SoC I2S Audio support for WM8994 on SMDK" tristate "SoC I2S Audio support for WM8994 on SMDK"
depends on SND_SOC_SAMSUNG depends on SND_SOC_SAMSUNG
depends on I2C=y && GENERIC_HARDIRQS depends on I2C=y
select MFD_WM8994 select MFD_WM8994
select SND_SOC_WM8994 select SND_SOC_WM8994
select SND_SAMSUNG_I2S select SND_SAMSUNG_I2S
...@@ -151,7 +151,7 @@ config SND_SOC_SMARTQ ...@@ -151,7 +151,7 @@ config SND_SOC_SMARTQ
config SND_SOC_GONI_AQUILA_WM8994 config SND_SOC_GONI_AQUILA_WM8994
tristate "SoC I2S Audio support for AQUILA/GONI - WM8994" tristate "SoC I2S Audio support for AQUILA/GONI - WM8994"
depends on SND_SOC_SAMSUNG && (MACH_GONI || MACH_AQUILA) depends on SND_SOC_SAMSUNG && (MACH_GONI || MACH_AQUILA)
depends on I2C=y && GENERIC_HARDIRQS depends on I2C=y
select SND_SAMSUNG_I2S select SND_SAMSUNG_I2S
select MFD_WM8994 select MFD_WM8994
select SND_SOC_WM8994 select SND_SOC_WM8994
...@@ -177,7 +177,7 @@ config SND_SOC_SMDK_WM8580_PCM ...@@ -177,7 +177,7 @@ config SND_SOC_SMDK_WM8580_PCM
config SND_SOC_SMDK_WM8994_PCM config SND_SOC_SMDK_WM8994_PCM
tristate "SoC PCM Audio support for WM8994 on SMDK" tristate "SoC PCM Audio support for WM8994 on SMDK"
depends on SND_SOC_SAMSUNG depends on SND_SOC_SAMSUNG
depends on I2C=y && GENERIC_HARDIRQS depends on I2C=y
select MFD_WM8994 select MFD_WM8994
select SND_SOC_WM8994 select SND_SOC_WM8994
select SND_SAMSUNG_PCM select SND_SAMSUNG_PCM
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment