aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-13 10:31:38 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-13 10:31:38 -0400
commit399a946edbbe90bd03aec2e93ce58c9b3f18e70b (patch)
treeb467f7225be817a6ee7cf7e3c64518825dfec4f1
parent183c420323a9e45af0d995d7cbf416221698cbe4 (diff)
parent0244ad004a54e39308d495fee0a2e637f8b5c317 (diff)
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
-rw-r--r--arch/alpha/Kconfig1
-rw-r--r--arch/arc/Kconfig1
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm64/Kconfig1
-rw-r--r--arch/avr32/Kconfig1
-rw-r--r--arch/blackfin/Kconfig1
-rw-r--r--arch/c6x/Kconfig1
-rw-r--r--arch/cris/Kconfig1
-rw-r--r--arch/frv/Kconfig1
-rw-r--r--arch/h8300/Kconfig1
-rw-r--r--arch/hexagon/Kconfig1
-rw-r--r--arch/ia64/Kconfig1
-rw-r--r--arch/m32r/Kconfig1
-rw-r--r--arch/m68k/Kconfig1
-rw-r--r--arch/metag/Kconfig1
-rw-r--r--arch/microblaze/Kconfig1
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mn10300/Kconfig1
-rw-r--r--arch/openrisc/Kconfig1
-rw-r--r--arch/parisc/Kconfig1
-rw-r--r--arch/powerpc/Kconfig1
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/score/Kconfig1
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/tile/Kconfig1
-rw-r--r--arch/um/Kconfig.common1
-rw-r--r--arch/um/defconfig2
-rw-r--r--arch/unicore32/Kconfig1
-rw-r--r--arch/x86/Kconfig1
-rw-r--r--arch/xtensa/Kconfig1
-rw-r--r--arch/xtensa/configs/common_defconfig1
-rw-r--r--arch/xtensa/configs/iss_defconfig1
-rw-r--r--arch/xtensa/configs/s6105_defconfig1
-rw-r--r--drivers/block/mtip32xx/Kconfig2
-rw-r--r--drivers/char/random.c5
-rw-r--r--drivers/dma/dw/Kconfig1
-rw-r--r--drivers/gpio/Kconfig6
-rw-r--r--drivers/hid/Kconfig2
-rw-r--r--drivers/i2c/Kconfig1
-rw-r--r--drivers/i2c/busses/Kconfig6
-rw-r--r--drivers/iio/Kconfig1
-rw-r--r--drivers/infiniband/hw/qib/Kconfig2
-rw-r--r--drivers/input/keyboard/Kconfig4
-rw-r--r--drivers/input/serio/Kconfig1
-rw-r--r--drivers/input/touchscreen/Kconfig4
-rw-r--r--drivers/media/platform/Kconfig2
-rw-r--r--drivers/media/radio/Kconfig2
-rw-r--r--drivers/mfd/Kconfig126
-rw-r--r--drivers/misc/cb710/Kconfig2
-rw-r--r--drivers/mmc/host/Kconfig2
-rw-r--r--drivers/net/ethernet/cadence/Kconfig2
-rw-r--r--drivers/net/wireless/p54/Kconfig2
-rw-r--r--drivers/net/wireless/ti/wl1251/Kconfig2
-rw-r--r--drivers/net/wireless/ti/wlcore/Kconfig2
-rw-r--r--drivers/pci/msi.c22
-rw-r--r--drivers/power/Kconfig3
-rw-r--r--drivers/pps/clients/Kconfig2
-rw-r--r--drivers/spi/Kconfig3
-rw-r--r--drivers/tty/serial/Kconfig2
-rw-r--r--drivers/usb/dwc3/Kconfig2
-rw-r--r--drivers/usb/gadget/Kconfig4
-rw-r--r--drivers/usb/host/Kconfig1
-rw-r--r--drivers/usb/musb/Kconfig1
-rw-r--r--drivers/usb/renesas_usbhs/Kconfig2
-rw-r--r--drivers/w1/masters/Kconfig2
-rw-r--r--include/linux/cpu_rmap.h3
-rw-r--r--include/linux/hardirq.h4
-rw-r--r--include/linux/interrupt.h75
-rw-r--r--include/linux/irq.h9
-rw-r--r--include/linux/irqdesc.h3
-rw-r--r--include/linux/irqnr.h19
-rw-r--r--include/linux/kernel_stat.h34
-rw-r--r--kernel/Makefile2
-rw-r--r--kernel/irq/Kconfig12
-rw-r--r--kernel/softirq.c2
-rw-r--r--lib/Kconfig.debug2
-rw-r--r--lib/cpu_rmap.c6
-rw-r--r--net/Kconfig2
-rw-r--r--sound/soc/codecs/Kconfig2
-rw-r--r--sound/soc/samsung/Kconfig6
81 files changed, 100 insertions, 337 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 082d9b4b5472..35a300d4a9fb 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -7,7 +7,6 @@ config ALPHA
7 select HAVE_PCSPKR_PLATFORM 7 select HAVE_PCSPKR_PLATFORM
8 select HAVE_PERF_EVENTS 8 select HAVE_PERF_EVENTS
9 select HAVE_DMA_ATTRS 9 select HAVE_DMA_ATTRS
10 select HAVE_GENERIC_HARDIRQS
11 select VIRT_TO_BUS 10 select VIRT_TO_BUS
12 select GENERIC_IRQ_PROBE 11 select GENERIC_IRQ_PROBE
13 select AUTO_IRQ_AFFINITY if SMP 12 select AUTO_IRQ_AFFINITY if SMP
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 68fcbb2d59e2..91dbb2757afd 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -20,7 +20,6 @@ config ARC
20 select GENERIC_SMP_IDLE_THREAD 20 select GENERIC_SMP_IDLE_THREAD
21 select HAVE_ARCH_KGDB 21 select HAVE_ARCH_KGDB
22 select HAVE_ARCH_TRACEHOOK 22 select HAVE_ARCH_TRACEHOOK
23 select HAVE_GENERIC_HARDIRQS
24 select HAVE_IOREMAP_PROT 23 select HAVE_IOREMAP_PROT
25 select HAVE_KPROBES 24 select HAVE_KPROBES
26 select HAVE_KRETPROBES 25 select HAVE_KRETPROBES
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d13f6743df4b..3f7714d8d2d2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -37,7 +37,6 @@ config ARM
37 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) 37 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
38 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) 38 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
39 select HAVE_GENERIC_DMA_COHERENT 39 select HAVE_GENERIC_DMA_COHERENT
40 select HAVE_GENERIC_HARDIRQS
41 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) 40 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
42 select HAVE_IDE if PCI || ISA || PCMCIA 41 select HAVE_IDE if PCI || ISA || PCMCIA
43 select HAVE_IRQ_TIME_ACCOUNTING 42 select HAVE_IRQ_TIME_ACCOUNTING
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index ae323a45c28c..c04454876bcb 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -23,7 +23,6 @@ config ARM64
23 select HAVE_DMA_API_DEBUG 23 select HAVE_DMA_API_DEBUG
24 select HAVE_DMA_ATTRS 24 select HAVE_DMA_ATTRS
25 select HAVE_GENERIC_DMA_COHERENT 25 select HAVE_GENERIC_DMA_COHERENT
26 select HAVE_GENERIC_HARDIRQS
27 select HAVE_HW_BREAKPOINT if PERF_EVENTS 26 select HAVE_HW_BREAKPOINT if PERF_EVENTS
28 select HAVE_MEMBLOCK 27 select HAVE_MEMBLOCK
29 select HAVE_PERF_EVENTS 28 select HAVE_PERF_EVENTS
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 549903cfc2cb..b6878eb64884 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -6,7 +6,6 @@ config AVR32
6 select HAVE_CLK 6 select HAVE_CLK
7 select HAVE_OPROFILE 7 select HAVE_OPROFILE
8 select HAVE_KPROBES 8 select HAVE_KPROBES
9 select HAVE_GENERIC_HARDIRQS
10 select VIRT_TO_BUS 9 select VIRT_TO_BUS
11 select GENERIC_IRQ_PROBE 10 select GENERIC_IRQ_PROBE
12 select GENERIC_ATOMIC64 11 select GENERIC_ATOMIC64
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 3b6abc54b015..f78c9a2c7e28 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -32,7 +32,6 @@ config BLACKFIN
32 select HAVE_UNDERSCORE_SYMBOL_PREFIX 32 select HAVE_UNDERSCORE_SYMBOL_PREFIX
33 select VIRT_TO_BUS 33 select VIRT_TO_BUS
34 select ARCH_WANT_IPC_PARSE_VERSION 34 select ARCH_WANT_IPC_PARSE_VERSION
35 select HAVE_GENERIC_HARDIRQS
36 select GENERIC_ATOMIC64 35 select GENERIC_ATOMIC64
37 select GENERIC_IRQ_PROBE 36 select GENERIC_IRQ_PROBE
38 select USE_GENERIC_SMP_HELPERS if SMP 37 select USE_GENERIC_SMP_HELPERS if SMP
diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig
index f6a3648f5ec3..957dd00ea561 100644
--- a/arch/c6x/Kconfig
+++ b/arch/c6x/Kconfig
@@ -10,7 +10,6 @@ config C6X
10 select GENERIC_IRQ_SHOW 10 select GENERIC_IRQ_SHOW
11 select HAVE_ARCH_TRACEHOOK 11 select HAVE_ARCH_TRACEHOOK
12 select HAVE_DMA_API_DEBUG 12 select HAVE_DMA_API_DEBUG
13 select HAVE_GENERIC_HARDIRQS
14 select HAVE_MEMBLOCK 13 select HAVE_MEMBLOCK
15 select SPARSE_IRQ 14 select SPARSE_IRQ
16 select IRQ_DOMAIN 15 select IRQ_DOMAIN
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index c699d3259872..02380bed189c 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -41,7 +41,6 @@ config CRIS
41 default y 41 default y
42 select HAVE_IDE 42 select HAVE_IDE
43 select GENERIC_ATOMIC64 43 select GENERIC_ATOMIC64
44 select HAVE_GENERIC_HARDIRQS
45 select HAVE_UID16 44 select HAVE_UID16
46 select VIRT_TO_BUS 45 select VIRT_TO_BUS
47 select ARCH_WANT_IPC_PARSE_VERSION 46 select ARCH_WANT_IPC_PARSE_VERSION
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 4b6628ea381e..34aa19352dc1 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -5,7 +5,6 @@ config FRV
5 select HAVE_ARCH_TRACEHOOK 5 select HAVE_ARCH_TRACEHOOK
6 select HAVE_PERF_EVENTS 6 select HAVE_PERF_EVENTS
7 select HAVE_UID16 7 select HAVE_UID16
8 select HAVE_GENERIC_HARDIRQS
9 select VIRT_TO_BUS 8 select VIRT_TO_BUS
10 select GENERIC_IRQ_SHOW 9 select GENERIC_IRQ_SHOW
11 select HAVE_DEBUG_BUGVERBOSE 10 select HAVE_DEBUG_BUGVERBOSE
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 3d6759ee382f..24b1dc2564f1 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -2,7 +2,6 @@ config H8300
2 bool 2 bool
3 default y 3 default y
4 select HAVE_IDE 4 select HAVE_IDE
5 select HAVE_GENERIC_HARDIRQS
6 select GENERIC_ATOMIC64 5 select GENERIC_ATOMIC64
7 select HAVE_UID16 6 select HAVE_UID16
8 select VIRT_TO_BUS 7 select VIRT_TO_BUS
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig
index 77d442ab28c8..99041b07e610 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -15,7 +15,6 @@ config HEXAGON
15 # select GENERIC_PENDING_IRQ if SMP 15 # select GENERIC_PENDING_IRQ if SMP
16 select GENERIC_ATOMIC64 16 select GENERIC_ATOMIC64
17 select HAVE_PERF_EVENTS 17 select HAVE_PERF_EVENTS
18 select HAVE_GENERIC_HARDIRQS
19 # GENERIC_ALLOCATOR is used by dma_alloc_coherent() 18 # GENERIC_ALLOCATOR is used by dma_alloc_coherent()
20 select GENERIC_ALLOCATOR 19 select GENERIC_ALLOCATOR
21 select GENERIC_IRQ_SHOW 20 select GENERIC_IRQ_SHOW
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index a86a56d9e73f..7740ab10a171 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -21,7 +21,6 @@ config IA64
21 select HAVE_KVM 21 select HAVE_KVM
22 select HAVE_ARCH_TRACEHOOK 22 select HAVE_ARCH_TRACEHOOK
23 select HAVE_DMA_API_DEBUG 23 select HAVE_DMA_API_DEBUG
24 select HAVE_GENERIC_HARDIRQS
25 select HAVE_MEMBLOCK 24 select HAVE_MEMBLOCK
26 select HAVE_MEMBLOCK_NODE_MAP 25 select HAVE_MEMBLOCK_NODE_MAP
27 select HAVE_VIRT_CPU_ACCOUNTING 26 select HAVE_VIRT_CPU_ACCOUNTING
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 29a7ef4e448b..75661fbf4529 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -9,7 +9,6 @@ config M32R
9 select HAVE_KERNEL_LZMA 9 select HAVE_KERNEL_LZMA
10 select ARCH_WANT_IPC_PARSE_VERSION 10 select ARCH_WANT_IPC_PARSE_VERSION
11 select HAVE_DEBUG_BUGVERBOSE 11 select HAVE_DEBUG_BUGVERBOSE
12 select HAVE_GENERIC_HARDIRQS
13 select VIRT_TO_BUS 12 select VIRT_TO_BUS
14 select GENERIC_IRQ_PROBE 13 select GENERIC_IRQ_PROBE
15 select GENERIC_IRQ_SHOW 14 select GENERIC_IRQ_SHOW
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index c3cda41af801..311a300d48cc 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -4,7 +4,6 @@ config M68K
4 select HAVE_IDE 4 select HAVE_IDE
5 select HAVE_AOUT if MMU 5 select HAVE_AOUT if MMU
6 select HAVE_DEBUG_BUGVERBOSE 6 select HAVE_DEBUG_BUGVERBOSE
7 select HAVE_GENERIC_HARDIRQS
8 select GENERIC_IRQ_SHOW 7 select GENERIC_IRQ_SHOW
9 select GENERIC_ATOMIC64 8 select GENERIC_ATOMIC64
10 select HAVE_UID16 9 select HAVE_UID16
diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig
index cfd831c29824..36368eb07e13 100644
--- a/arch/metag/Kconfig
+++ b/arch/metag/Kconfig
@@ -13,7 +13,6 @@ config METAG
13 select HAVE_FTRACE_MCOUNT_RECORD 13 select HAVE_FTRACE_MCOUNT_RECORD
14 select HAVE_FUNCTION_TRACER 14 select HAVE_FUNCTION_TRACER
15 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 15 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
16 select HAVE_GENERIC_HARDIRQS
17 select HAVE_KERNEL_BZIP2 16 select HAVE_KERNEL_BZIP2
18 select HAVE_KERNEL_GZIP 17 select HAVE_KERNEL_GZIP
19 select HAVE_KERNEL_LZO 18 select HAVE_KERNEL_LZO
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 3f6659cbc969..b82f82b74319 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -18,7 +18,6 @@ config MICROBLAZE
18 select ARCH_WANT_IPC_PARSE_VERSION 18 select ARCH_WANT_IPC_PARSE_VERSION
19 select HAVE_DEBUG_KMEMLEAK 19 select HAVE_DEBUG_KMEMLEAK
20 select IRQ_DOMAIN 20 select IRQ_DOMAIN
21 select HAVE_GENERIC_HARDIRQS
22 select VIRT_TO_BUS 21 select VIRT_TO_BUS
23 select GENERIC_IRQ_PROBE 22 select GENERIC_IRQ_PROBE
24 select GENERIC_IRQ_SHOW 23 select GENERIC_IRQ_SHOW
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index a9668d4653c2..f75ab4a2f246 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -25,7 +25,6 @@ config MIPS
25 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 25 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
26 select HAVE_DMA_ATTRS 26 select HAVE_DMA_ATTRS
27 select HAVE_DMA_API_DEBUG 27 select HAVE_DMA_API_DEBUG
28 select HAVE_GENERIC_HARDIRQS
29 select GENERIC_IRQ_PROBE 28 select GENERIC_IRQ_PROBE
30 select GENERIC_IRQ_SHOW 29 select GENERIC_IRQ_SHOW
31 select GENERIC_PCI_IOMAP 30 select GENERIC_PCI_IOMAP
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 70e4f663ebd2..6aaa1607001a 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -1,7 +1,6 @@
1config MN10300 1config MN10300
2 def_bool y 2 def_bool y
3 select HAVE_OPROFILE 3 select HAVE_OPROFILE
4 select HAVE_GENERIC_HARDIRQS
5 select GENERIC_IRQ_SHOW 4 select GENERIC_IRQ_SHOW
6 select ARCH_WANT_IPC_PARSE_VERSION 5 select ARCH_WANT_IPC_PARSE_VERSION
7 select HAVE_ARCH_TRACEHOOK 6 select HAVE_ARCH_TRACEHOOK
diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig
index d60bf98fa5cf..9488209a5253 100644
--- a/arch/openrisc/Kconfig
+++ b/arch/openrisc/Kconfig
@@ -11,7 +11,6 @@ config OPENRISC
11 select HAVE_MEMBLOCK 11 select HAVE_MEMBLOCK
12 select ARCH_REQUIRE_GPIOLIB 12 select ARCH_REQUIRE_GPIOLIB
13 select HAVE_ARCH_TRACEHOOK 13 select HAVE_ARCH_TRACEHOOK
14 select HAVE_GENERIC_HARDIRQS
15 select GENERIC_IRQ_CHIP 14 select GENERIC_IRQ_CHIP
16 select GENERIC_IRQ_PROBE 15 select GENERIC_IRQ_PROBE
17 select GENERIC_IRQ_SHOW 16 select GENERIC_IRQ_SHOW
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index aa399a5259b6..ad2ce8dab996 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -14,7 +14,6 @@ config PARISC
14 select HAVE_PERF_EVENTS 14 select HAVE_PERF_EVENTS
15 select GENERIC_ATOMIC64 if !64BIT 15 select GENERIC_ATOMIC64 if !64BIT
16 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 16 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
17 select HAVE_GENERIC_HARDIRQS
18 select BROKEN_RODATA 17 select BROKEN_RODATA
19 select GENERIC_IRQ_PROBE 18 select GENERIC_IRQ_PROBE
20 select GENERIC_PCI_IOMAP 19 select GENERIC_PCI_IOMAP
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 6b7530f8183c..38f3b7e47ec5 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -114,7 +114,6 @@ config PPC
114 select HAVE_PERF_EVENTS 114 select HAVE_PERF_EVENTS
115 select HAVE_REGS_AND_STACK_ACCESS_API 115 select HAVE_REGS_AND_STACK_ACCESS_API
116 select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64 116 select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
117 select HAVE_GENERIC_HARDIRQS
118 select ARCH_WANT_IPC_PARSE_VERSION 117 select ARCH_WANT_IPC_PARSE_VERSION
119 select SPARSE_IRQ 118 select SPARSE_IRQ
120 select IRQ_DOMAIN 119 select IRQ_DOMAIN
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 3ec272859e1e..dcc6ac2d8026 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -116,7 +116,6 @@ config S390
116 select HAVE_FUNCTION_GRAPH_TRACER 116 select HAVE_FUNCTION_GRAPH_TRACER
117 select HAVE_FUNCTION_TRACER 117 select HAVE_FUNCTION_TRACER
118 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 118 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
119 select HAVE_GENERIC_HARDIRQS
120 select HAVE_KERNEL_BZIP2 119 select HAVE_KERNEL_BZIP2
121 select HAVE_KERNEL_GZIP 120 select HAVE_KERNEL_GZIP
122 select HAVE_KERNEL_LZ4 121 select HAVE_KERNEL_LZ4
diff --git a/arch/score/Kconfig b/arch/score/Kconfig
index 5fc237581caf..a1be70db75fe 100644
--- a/arch/score/Kconfig
+++ b/arch/score/Kconfig
@@ -2,7 +2,6 @@ menu "Machine selection"
2 2
3config SCORE 3config SCORE
4 def_bool y 4 def_bool y
5 select HAVE_GENERIC_HARDIRQS
6 select GENERIC_IRQ_SHOW 5 select GENERIC_IRQ_SHOW
7 select GENERIC_IOMAP 6 select GENERIC_IOMAP
8 select GENERIC_ATOMIC64 7 select GENERIC_ATOMIC64
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 1018ed3a3ca5..224f4bc9925e 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -26,7 +26,6 @@ config SUPERH
26 select ARCH_WANT_IPC_PARSE_VERSION 26 select ARCH_WANT_IPC_PARSE_VERSION
27 select HAVE_SYSCALL_TRACEPOINTS 27 select HAVE_SYSCALL_TRACEPOINTS
28 select HAVE_REGS_AND_STACK_ACCESS_API 28 select HAVE_REGS_AND_STACK_ACCESS_API
29 select HAVE_GENERIC_HARDIRQS
30 select MAY_HAVE_SPARSE_IRQ 29 select MAY_HAVE_SPARSE_IRQ
31 select IRQ_FORCED_THREADING 30 select IRQ_FORCED_THREADING
32 select RTC_LIB 31 select RTC_LIB
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 1570ad2802b3..2137ad667438 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -26,7 +26,6 @@ config SPARC
26 select HAVE_DMA_ATTRS 26 select HAVE_DMA_ATTRS
27 select HAVE_DMA_API_DEBUG 27 select HAVE_DMA_API_DEBUG
28 select HAVE_ARCH_JUMP_LABEL 28 select HAVE_ARCH_JUMP_LABEL
29 select HAVE_GENERIC_HARDIRQS
30 select GENERIC_IRQ_SHOW 29 select GENERIC_IRQ_SHOW
31 select ARCH_WANT_IPC_PARSE_VERSION 30 select ARCH_WANT_IPC_PARSE_VERSION
32 select USE_GENERIC_SMP_HELPERS if SMP 31 select USE_GENERIC_SMP_HELPERS if SMP
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 932fa14de5fe..8a7cc663b3f8 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -11,7 +11,6 @@ config TILE
11 select USE_GENERIC_SMP_HELPERS 11 select USE_GENERIC_SMP_HELPERS
12 select CC_OPTIMIZE_FOR_SIZE 12 select CC_OPTIMIZE_FOR_SIZE
13 select HAVE_DEBUG_KMEMLEAK 13 select HAVE_DEBUG_KMEMLEAK
14 select HAVE_GENERIC_HARDIRQS
15 select GENERIC_IRQ_PROBE 14 select GENERIC_IRQ_PROBE
16 select GENERIC_PENDING_IRQ if SMP 15 select GENERIC_PENDING_IRQ if SMP
17 select GENERIC_IRQ_SHOW 16 select GENERIC_IRQ_SHOW
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
index bceee6623b00..8ddea1f8006a 100644
--- a/arch/um/Kconfig.common
+++ b/arch/um/Kconfig.common
@@ -6,7 +6,6 @@ config DEFCONFIG_LIST
6config UML 6config UML
7 bool 7 bool
8 default y 8 default y
9 select HAVE_GENERIC_HARDIRQS
10 select HAVE_UID16 9 select HAVE_UID16
11 select GENERIC_IRQ_SHOW 10 select GENERIC_IRQ_SHOW
12 select GENERIC_CPU_DEVICES 11 select GENERIC_CPU_DEVICES
diff --git a/arch/um/defconfig b/arch/um/defconfig
index 08107a795062..2665e6b683f5 100644
--- a/arch/um/defconfig
+++ b/arch/um/defconfig
@@ -129,12 +129,10 @@ CONFIG_BSD_PROCESS_ACCT=y
129# CONFIG_FHANDLE is not set 129# CONFIG_FHANDLE is not set
130# CONFIG_TASKSTATS is not set 130# CONFIG_TASKSTATS is not set
131# CONFIG_AUDIT is not set 131# CONFIG_AUDIT is not set
132CONFIG_HAVE_GENERIC_HARDIRQS=y
133 132
134# 133#
135# IRQ subsystem 134# IRQ subsystem
136# 135#
137CONFIG_GENERIC_HARDIRQS=y
138CONFIG_GENERIC_IRQ_SHOW=y 136CONFIG_GENERIC_IRQ_SHOW=y
139 137
140# 138#
diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
index 41bcc0013442..82cdd8906f3d 100644
--- a/arch/unicore32/Kconfig
+++ b/arch/unicore32/Kconfig
@@ -2,7 +2,6 @@ config UNICORE32
2 def_bool y 2 def_bool y
3 select HAVE_MEMBLOCK 3 select HAVE_MEMBLOCK
4 select HAVE_GENERIC_DMA_COHERENT 4 select HAVE_GENERIC_DMA_COHERENT
5 select HAVE_GENERIC_HARDIRQS
6 select HAVE_DMA_ATTRS 5 select HAVE_DMA_ATTRS
7 select HAVE_KERNEL_GZIP 6 select HAVE_KERNEL_GZIP
8 select HAVE_KERNEL_BZIP2 7 select HAVE_KERNEL_BZIP2
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 30c40f08a3d4..e241a1930c98 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -82,7 +82,6 @@ config X86
82 select HAVE_USER_RETURN_NOTIFIER 82 select HAVE_USER_RETURN_NOTIFIER
83 select ARCH_BINFMT_ELF_RANDOMIZE_PIE 83 select ARCH_BINFMT_ELF_RANDOMIZE_PIE
84 select HAVE_ARCH_JUMP_LABEL 84 select HAVE_ARCH_JUMP_LABEL
85 select HAVE_GENERIC_HARDIRQS
86 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 85 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
87 select SPARSE_IRQ 86 select SPARSE_IRQ
88 select GENERIC_FIND_FIRST_BIT 87 select GENERIC_FIND_FIRST_BIT
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 7ea6451a3a33..8d24dcb7cdac 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -7,7 +7,6 @@ config XTENSA
7 select HAVE_IDE 7 select HAVE_IDE
8 select GENERIC_ATOMIC64 8 select GENERIC_ATOMIC64
9 select GENERIC_CLOCKEVENTS 9 select GENERIC_CLOCKEVENTS
10 select HAVE_GENERIC_HARDIRQS
11 select VIRT_TO_BUS 10 select VIRT_TO_BUS
12 select GENERIC_IRQ_SHOW 11 select GENERIC_IRQ_SHOW
13 select GENERIC_CPU_DEVICES 12 select GENERIC_CPU_DEVICES
diff --git a/arch/xtensa/configs/common_defconfig b/arch/xtensa/configs/common_defconfig
index a182a4e6d688..f6000fe05119 100644
--- a/arch/xtensa/configs/common_defconfig
+++ b/arch/xtensa/configs/common_defconfig
@@ -8,7 +8,6 @@ CONFIG_XTENSA=y
8# CONFIG_UID16 is not set 8# CONFIG_UID16 is not set
9CONFIG_RWSEM_XCHGADD_ALGORITHM=y 9CONFIG_RWSEM_XCHGADD_ALGORITHM=y
10CONFIG_HAVE_DEC_LOCK=y 10CONFIG_HAVE_DEC_LOCK=y
11CONFIG_GENERIC_HARDIRQS=y
12 11
13# 12#
14# Code maturity level options 13# Code maturity level options
diff --git a/arch/xtensa/configs/iss_defconfig b/arch/xtensa/configs/iss_defconfig
index 77c52f80187a..4f233204faf9 100644
--- a/arch/xtensa/configs/iss_defconfig
+++ b/arch/xtensa/configs/iss_defconfig
@@ -9,7 +9,6 @@ CONFIG_XTENSA=y
9CONFIG_RWSEM_XCHGADD_ALGORITHM=y 9CONFIG_RWSEM_XCHGADD_ALGORITHM=y
10CONFIG_GENERIC_FIND_NEXT_BIT=y 10CONFIG_GENERIC_FIND_NEXT_BIT=y
11CONFIG_GENERIC_HWEIGHT=y 11CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_HARDIRQS=y
13# CONFIG_ARCH_HAS_ILOG2_U32 is not set 12# CONFIG_ARCH_HAS_ILOG2_U32 is not set
14# CONFIG_ARCH_HAS_ILOG2_U64 is not set 13# CONFIG_ARCH_HAS_ILOG2_U64 is not set
15CONFIG_NO_IOPORT=y 14CONFIG_NO_IOPORT=y
diff --git a/arch/xtensa/configs/s6105_defconfig b/arch/xtensa/configs/s6105_defconfig
index 4799c6a526b5..d929f77a0360 100644
--- a/arch/xtensa/configs/s6105_defconfig
+++ b/arch/xtensa/configs/s6105_defconfig
@@ -9,7 +9,6 @@ CONFIG_XTENSA=y
9CONFIG_RWSEM_XCHGADD_ALGORITHM=y 9CONFIG_RWSEM_XCHGADD_ALGORITHM=y
10CONFIG_GENERIC_FIND_NEXT_BIT=y 10CONFIG_GENERIC_FIND_NEXT_BIT=y
11CONFIG_GENERIC_HWEIGHT=y 11CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_HARDIRQS=y
13# CONFIG_ARCH_HAS_ILOG2_U32 is not set 12# CONFIG_ARCH_HAS_ILOG2_U32 is not set
14# CONFIG_ARCH_HAS_ILOG2_U64 is not set 13# CONFIG_ARCH_HAS_ILOG2_U64 is not set
15CONFIG_NO_IOPORT=y 14CONFIG_NO_IOPORT=y
diff --git a/drivers/block/mtip32xx/Kconfig b/drivers/block/mtip32xx/Kconfig
index 1fca1f996b45..0ba837fc62a8 100644
--- a/drivers/block/mtip32xx/Kconfig
+++ b/drivers/block/mtip32xx/Kconfig
@@ -4,6 +4,6 @@
4 4
5config BLK_DEV_PCIESSD_MTIP32XX 5config BLK_DEV_PCIESSD_MTIP32XX
6 tristate "Block Device Driver for Micron PCIe SSDs" 6 tristate "Block Device Driver for Micron PCIe SSDs"
7 depends on PCI && GENERIC_HARDIRQS 7 depends on PCI
8 help 8 help
9 This enables the block driver for Micron PCIe SSDs. 9 This enables the block driver for Micron PCIe SSDs.
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 0d91fe52f3f5..7737b5bd26af 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -255,10 +255,7 @@
255#include <linux/fips.h> 255#include <linux/fips.h>
256#include <linux/ptrace.h> 256#include <linux/ptrace.h>
257#include <linux/kmemcheck.h> 257#include <linux/kmemcheck.h>
258 258#include <linux/irq.h>
259#ifdef CONFIG_GENERIC_HARDIRQS
260# include <linux/irq.h>
261#endif
262 259
263#include <asm/processor.h> 260#include <asm/processor.h>
264#include <asm/uaccess.h> 261#include <asm/uaccess.h>
diff --git a/drivers/dma/dw/Kconfig b/drivers/dma/dw/Kconfig
index dde13248b681..dcfe964cc8dc 100644
--- a/drivers/dma/dw/Kconfig
+++ b/drivers/dma/dw/Kconfig
@@ -4,7 +4,6 @@
4 4
5config DW_DMAC_CORE 5config DW_DMAC_CORE
6 tristate "Synopsys DesignWare AHB DMA support" 6 tristate "Synopsys DesignWare AHB DMA support"
7 depends on GENERIC_HARDIRQS
8 select DMA_ENGINE 7 select DMA_ENGINE
9 8
10config DW_DMAC 9config DW_DMAC
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 5cb218151c9c..b6ed304863eb 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -322,7 +322,7 @@ config GPIO_ICH
322 322
323config GPIO_VX855 323config GPIO_VX855
324 tristate "VIA VX855/VX875 GPIO" 324 tristate "VIA VX855/VX875 GPIO"
325 depends on PCI && GENERIC_HARDIRQS 325 depends on PCI
326 select MFD_CORE 326 select MFD_CORE
327 select MFD_VX855 327 select MFD_VX855
328 help 328 help
@@ -396,7 +396,7 @@ config GPIO_MAX732X
396 396
397config GPIO_MAX732X_IRQ 397config GPIO_MAX732X_IRQ
398 bool "Interrupt controller support for MAX732x" 398 bool "Interrupt controller support for MAX732x"
399 depends on GPIO_MAX732X=y && GENERIC_HARDIRQS 399 depends on GPIO_MAX732X=y
400 help 400 help
401 Say yes here to enable the max732x to be used as an interrupt 401 Say yes here to enable the max732x to be used as an interrupt
402 controller. It requires the driver to be built in the kernel. 402 controller. It requires the driver to be built in the kernel.
@@ -661,7 +661,7 @@ config GPIO_TIMBERDALE
661 661
662config GPIO_RDC321X 662config GPIO_RDC321X
663 tristate "RDC R-321x GPIO support" 663 tristate "RDC R-321x GPIO support"
664 depends on PCI && GENERIC_HARDIRQS 664 depends on PCI
665 select MFD_CORE 665 select MFD_CORE
666 select MFD_RDC321X 666 select MFD_RDC321X
667 help 667 help
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 3d7c9f67b6d7..71b70e3a7a71 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -773,7 +773,7 @@ config HID_ZYDACRON
773 773
774config HID_SENSOR_HUB 774config HID_SENSOR_HUB
775 tristate "HID Sensors framework support" 775 tristate "HID Sensors framework support"
776 depends on HID && GENERIC_HARDIRQS 776 depends on HID
777 select MFD_CORE 777 select MFD_CORE
778 default n 778 default n
779 ---help--- 779 ---help---
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
index e380c6eef3af..7b7ea320a258 100644
--- a/drivers/i2c/Kconfig
+++ b/drivers/i2c/Kconfig
@@ -75,7 +75,6 @@ config I2C_HELPER_AUTO
75 75
76config I2C_SMBUS 76config I2C_SMBUS
77 tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO 77 tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
78 depends on GENERIC_HARDIRQS
79 help 78 help
80 Say Y here if you want support for SMBus extensions to the I2C 79 Say Y here if you want support for SMBus extensions to the I2C
81 specification. At the moment, the only supported extension is 80 specification. At the moment, the only supported extension is
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index fcdd321f709e..cdcbd8368ed3 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -115,7 +115,7 @@ config I2C_I801
115 115
116config I2C_ISCH 116config I2C_ISCH
117 tristate "Intel SCH SMBus 1.0" 117 tristate "Intel SCH SMBus 1.0"
118 depends on PCI && GENERIC_HARDIRQS 118 depends on PCI
119 select LPC_SCH 119 select LPC_SCH
120 help 120 help
121 Say Y here if you want to use SMBus controller on the Intel SCH 121 Say Y here if you want to use SMBus controller on the Intel SCH
@@ -546,7 +546,6 @@ config I2C_NUC900
546 546
547config I2C_OCORES 547config I2C_OCORES
548 tristate "OpenCores I2C Controller" 548 tristate "OpenCores I2C Controller"
549 depends on GENERIC_HARDIRQS
550 help 549 help
551 If you say yes to this option, support will be included for the 550 If you say yes to this option, support will be included for the
552 OpenCores I2C controller. For details see 551 OpenCores I2C controller. For details see
@@ -791,7 +790,7 @@ config I2C_DIOLAN_U2C
791 790
792config I2C_PARPORT 791config I2C_PARPORT
793 tristate "Parallel port adapter" 792 tristate "Parallel port adapter"
794 depends on PARPORT && GENERIC_HARDIRQS 793 depends on PARPORT
795 select I2C_ALGOBIT 794 select I2C_ALGOBIT
796 select I2C_SMBUS 795 select I2C_SMBUS
797 help 796 help
@@ -816,7 +815,6 @@ config I2C_PARPORT
816 815
817config I2C_PARPORT_LIGHT 816config I2C_PARPORT_LIGHT
818 tristate "Parallel port adapter (light)" 817 tristate "Parallel port adapter (light)"
819 depends on GENERIC_HARDIRQS
820 select I2C_ALGOBIT 818 select I2C_ALGOBIT
821 select I2C_SMBUS 819 select I2C_SMBUS
822 help 820 help
diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig
index cbea3271c1b1..90cf0cda50c4 100644
--- a/drivers/iio/Kconfig
+++ b/drivers/iio/Kconfig
@@ -4,7 +4,6 @@
4 4
5menuconfig IIO 5menuconfig IIO
6 tristate "Industrial I/O support" 6 tristate "Industrial I/O support"
7 depends on GENERIC_HARDIRQS
8 help 7 help
9 The industrial I/O subsystem provides a unified framework for 8 The industrial I/O subsystem provides a unified framework for
10 drivers for many different types of embedded sensors using a 9 drivers for many different types of embedded sensors using a
diff --git a/drivers/infiniband/hw/qib/Kconfig b/drivers/infiniband/hw/qib/Kconfig
index d03ca4c1ff25..495be09781b1 100644
--- a/drivers/infiniband/hw/qib/Kconfig
+++ b/drivers/infiniband/hw/qib/Kconfig
@@ -8,7 +8,7 @@ config INFINIBAND_QIB
8 8
9config INFINIBAND_QIB_DCA 9config INFINIBAND_QIB_DCA
10 bool "QIB DCA support" 10 bool "QIB DCA support"
11 depends on INFINIBAND_QIB && DCA && SMP && GENERIC_HARDIRQS && !(INFINIBAND_QIB=y && DCA=m) 11 depends on INFINIBAND_QIB && DCA && SMP && !(INFINIBAND_QIB=y && DCA=m)
12 default y 12 default y
13 ---help--- 13 ---help---
14 Setting this enables DCA support on some Intel chip sets 14 Setting this enables DCA support on some Intel chip sets
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index 269d4c3658cb..c1edd39bc5ba 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -224,7 +224,7 @@ config KEYBOARD_TCA6416
224 224
225config KEYBOARD_TCA8418 225config KEYBOARD_TCA8418
226 tristate "TCA8418 Keypad Support" 226 tristate "TCA8418 Keypad Support"
227 depends on I2C && GENERIC_HARDIRQS 227 depends on I2C
228 select INPUT_MATRIXKMAP 228 select INPUT_MATRIXKMAP
229 help 229 help
230 This driver implements basic keypad functionality 230 This driver implements basic keypad functionality
@@ -303,7 +303,7 @@ config KEYBOARD_HP7XX
303 303
304config KEYBOARD_LM8323 304config KEYBOARD_LM8323
305 tristate "LM8323 keypad chip" 305 tristate "LM8323 keypad chip"
306 depends on I2C && GENERIC_HARDIRQS 306 depends on I2C
307 depends on LEDS_CLASS 307 depends on LEDS_CLASS
308 help 308 help
309 If you say yes here you get support for the National Semiconductor 309 If you say yes here you get support for the National Semiconductor
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
index 1e691a3a79cb..33b3e88fe4a2 100644
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -239,7 +239,6 @@ config SERIO_PS2MULT
239 239
240config SERIO_ARC_PS2 240config SERIO_ARC_PS2
241 tristate "ARC PS/2 support" 241 tristate "ARC PS/2 support"
242 depends on GENERIC_HARDIRQS
243 help 242 help
244 Say Y here if you have an ARC FPGA platform with a PS/2 243 Say Y here if you have an ARC FPGA platform with a PS/2
245 controller in it. 244 controller in it.
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index 3b9758b5f4d7..e09ec67957a3 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -389,7 +389,7 @@ config TOUCHSCREEN_MCS5000
389 389
390config TOUCHSCREEN_MMS114 390config TOUCHSCREEN_MMS114
391 tristate "MELFAS MMS114 touchscreen" 391 tristate "MELFAS MMS114 touchscreen"
392 depends on I2C && GENERIC_HARDIRQS 392 depends on I2C
393 help 393 help
394 Say Y here if you have the MELFAS MMS114 touchscreen controller 394 Say Y here if you have the MELFAS MMS114 touchscreen controller
395 chip in your system. 395 chip in your system.
@@ -845,7 +845,7 @@ config TOUCHSCREEN_TSC_SERIO
845 845
846config TOUCHSCREEN_TSC2005 846config TOUCHSCREEN_TSC2005
847 tristate "TSC2005 based touchscreens" 847 tristate "TSC2005 based touchscreens"
848 depends on SPI_MASTER && GENERIC_HARDIRQS 848 depends on SPI_MASTER
849 help 849 help
850 Say Y here if you have a TSC2005 based touchscreen. 850 Say Y here if you have a TSC2005 based touchscreen.
851 851
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index 8068d7b64155..c7caf94621b4 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -203,7 +203,7 @@ config VIDEO_SAMSUNG_EXYNOS_GSC
203 203
204config VIDEO_SH_VEU 204config VIDEO_SH_VEU
205 tristate "SuperH VEU mem2mem video processing driver" 205 tristate "SuperH VEU mem2mem video processing driver"
206 depends on VIDEO_DEV && VIDEO_V4L2 && GENERIC_HARDIRQS && HAS_DMA 206 depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
207 select VIDEOBUF2_DMA_CONTIG 207 select VIDEOBUF2_DMA_CONTIG
208 select V4L2_MEM2MEM_DEV 208 select V4L2_MEM2MEM_DEV
209 help 209 help
diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
index 39882ddd2594..6ecdc39bb366 100644
--- a/drivers/media/radio/Kconfig
+++ b/drivers/media/radio/Kconfig
@@ -214,7 +214,7 @@ config RADIO_TIMBERDALE
214 214
215config RADIO_WL1273 215config RADIO_WL1273
216 tristate "Texas Instruments WL1273 I2C FM Radio" 216 tristate "Texas Instruments WL1273 I2C FM Radio"
217 depends on I2C && VIDEO_V4L2 && GENERIC_HARDIRQS 217 depends on I2C && VIDEO_V4L2
218 select MFD_CORE 218 select MFD_CORE
219 select MFD_WL1273_CORE 219 select MFD_WL1273_CORE
220 select FW_LOADER 220 select FW_LOADER
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index e0e46f50f95d..914c3d142f78 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -23,7 +23,7 @@ config MFD_AS3711
23 select MFD_CORE 23 select MFD_CORE
24 select REGMAP_I2C 24 select REGMAP_I2C
25 select REGMAP_IRQ 25 select REGMAP_IRQ
26 depends on I2C=y && GENERIC_HARDIRQS 26 depends on I2C=y
27 help 27 help
28 Support for the AS3711 PMIC from AMS 28 Support for the AS3711 PMIC from AMS
29 29
@@ -40,7 +40,7 @@ config PMIC_ADP5520
40config MFD_AAT2870_CORE 40config MFD_AAT2870_CORE
41 bool "AnalogicTech AAT2870" 41 bool "AnalogicTech AAT2870"
42 select MFD_CORE 42 select MFD_CORE
43 depends on I2C=y && GPIOLIB && GENERIC_HARDIRQS 43 depends on I2C=y && GPIOLIB
44 help 44 help
45 If you say yes here you get support for the AAT2870. 45 If you say yes here you get support for the AAT2870.
46 This driver provides common support for accessing the device, 46 This driver provides common support for accessing the device,
@@ -78,7 +78,7 @@ config MFD_CROS_EC_SPI
78 78
79config MFD_ASIC3 79config MFD_ASIC3
80 bool "Compaq ASIC3" 80 bool "Compaq ASIC3"
81 depends on GENERIC_HARDIRQS && GPIOLIB && ARM 81 depends on GPIOLIB && ARM
82 select MFD_CORE 82 select MFD_CORE
83 ---help--- 83 ---help---
84 This driver supports the ASIC3 multifunction chip found on many 84 This driver supports the ASIC3 multifunction chip found on many
@@ -104,7 +104,7 @@ config MFD_DA9052_SPI
104 select REGMAP_SPI 104 select REGMAP_SPI
105 select REGMAP_IRQ 105 select REGMAP_IRQ
106 select PMIC_DA9052 106 select PMIC_DA9052
107 depends on SPI_MASTER=y && GENERIC_HARDIRQS 107 depends on SPI_MASTER=y
108 help 108 help
109 Support for the Dialog Semiconductor DA9052 PMIC 109 Support for the Dialog Semiconductor DA9052 PMIC
110 when controlled using SPI. This driver provides common support 110 when controlled using SPI. This driver provides common support
@@ -116,7 +116,7 @@ config MFD_DA9052_I2C
116 select REGMAP_I2C 116 select REGMAP_I2C
117 select REGMAP_IRQ 117 select REGMAP_IRQ
118 select PMIC_DA9052 118 select PMIC_DA9052
119 depends on I2C=y && GENERIC_HARDIRQS 119 depends on I2C=y
120 help 120 help
121 Support for the Dialog Semiconductor DA9052 PMIC 121 Support for the Dialog Semiconductor DA9052 PMIC
122 when controlled using I2C. This driver provides common support 122 when controlled using I2C. This driver provides common support
@@ -128,7 +128,7 @@ config MFD_DA9055
128 select REGMAP_I2C 128 select REGMAP_I2C
129 select REGMAP_IRQ 129 select REGMAP_IRQ
130 select MFD_CORE 130 select MFD_CORE
131 depends on I2C=y && GENERIC_HARDIRQS 131 depends on I2C=y
132 help 132 help
133 Say yes here for support of Dialog Semiconductor DA9055. This is 133 Say yes here for support of Dialog Semiconductor DA9055. This is
134 a Power Management IC. This driver provides common support for 134 a Power Management IC. This driver provides common support for
@@ -144,7 +144,7 @@ config MFD_DA9063
144 select MFD_CORE 144 select MFD_CORE
145 select REGMAP_I2C 145 select REGMAP_I2C
146 select REGMAP_IRQ 146 select REGMAP_IRQ
147 depends on I2C=y && GENERIC_HARDIRQS 147 depends on I2C=y
148 help 148 help
149 Say yes here for support for the Dialog Semiconductor DA9063 PMIC. 149 Say yes here for support for the Dialog Semiconductor DA9063 PMIC.
150 This includes the I2C driver and core APIs. 150 This includes the I2C driver and core APIs.
@@ -156,7 +156,7 @@ config MFD_MC13783
156 156
157config MFD_MC13XXX 157config MFD_MC13XXX
158 tristate 158 tristate
159 depends on (SPI_MASTER || I2C) && GENERIC_HARDIRQS 159 depends on (SPI_MASTER || I2C)
160 select MFD_CORE 160 select MFD_CORE
161 select MFD_MC13783 161 select MFD_MC13783
162 help 162 help
@@ -167,7 +167,7 @@ config MFD_MC13XXX
167 167
168config MFD_MC13XXX_SPI 168config MFD_MC13XXX_SPI
169 tristate "Freescale MC13783 and MC13892 SPI interface" 169 tristate "Freescale MC13783 and MC13892 SPI interface"
170 depends on SPI_MASTER && GENERIC_HARDIRQS 170 depends on SPI_MASTER
171 select REGMAP_SPI 171 select REGMAP_SPI
172 select MFD_MC13XXX 172 select MFD_MC13XXX
173 help 173 help
@@ -175,7 +175,7 @@ config MFD_MC13XXX_SPI
175 175
176config MFD_MC13XXX_I2C 176config MFD_MC13XXX_I2C
177 tristate "Freescale MC13892 I2C interface" 177 tristate "Freescale MC13892 I2C interface"
178 depends on I2C && GENERIC_HARDIRQS 178 depends on I2C
179 select REGMAP_I2C 179 select REGMAP_I2C
180 select MFD_MC13XXX 180 select MFD_MC13XXX
181 help 181 help
@@ -183,7 +183,7 @@ config MFD_MC13XXX_I2C
183 183
184config HTC_EGPIO 184config HTC_EGPIO
185 bool "HTC EGPIO support" 185 bool "HTC EGPIO support"
186 depends on GENERIC_HARDIRQS && GPIOLIB && ARM 186 depends on GPIOLIB && ARM
187 help 187 help
188 This driver supports the CPLD egpio chip present on 188 This driver supports the CPLD egpio chip present on
189 several HTC phones. It provides basic support for input 189 several HTC phones. It provides basic support for input
@@ -192,7 +192,6 @@ config HTC_EGPIO
192config HTC_PASIC3 192config HTC_PASIC3
193 tristate "HTC PASIC3 LED/DS1WM chip support" 193 tristate "HTC PASIC3 LED/DS1WM chip support"
194 select MFD_CORE 194 select MFD_CORE
195 depends on GENERIC_HARDIRQS
196 help 195 help
197 This core driver provides register access for the LED/DS1WM 196 This core driver provides register access for the LED/DS1WM
198 chips labeled "AIC2" and "AIC3", found on HTC Blueangel and 197 chips labeled "AIC2" and "AIC3", found on HTC Blueangel and
@@ -210,7 +209,7 @@ config HTC_I2CPLD
210 209
211config LPC_ICH 210config LPC_ICH
212 tristate "Intel ICH LPC" 211 tristate "Intel ICH LPC"
213 depends on PCI && GENERIC_HARDIRQS 212 depends on PCI
214 select MFD_CORE 213 select MFD_CORE
215 help 214 help
216 The LPC bridge function of the Intel ICH provides support for 215 The LPC bridge function of the Intel ICH provides support for
@@ -220,7 +219,7 @@ config LPC_ICH
220 219
221config LPC_SCH 220config LPC_SCH
222 tristate "Intel SCH LPC" 221 tristate "Intel SCH LPC"
223 depends on PCI && GENERIC_HARDIRQS 222 depends on PCI
224 select MFD_CORE 223 select MFD_CORE
225 help 224 help
226 LPC bridge function of the Intel SCH provides support for 225 LPC bridge function of the Intel SCH provides support for
@@ -238,7 +237,7 @@ config MFD_INTEL_MSIC
238config MFD_JANZ_CMODIO 237config MFD_JANZ_CMODIO
239 tristate "Janz CMOD-IO PCI MODULbus Carrier Board" 238 tristate "Janz CMOD-IO PCI MODULbus Carrier Board"
240 select MFD_CORE 239 select MFD_CORE
241 depends on PCI && GENERIC_HARDIRQS 240 depends on PCI
242 help 241 help
243 This is the core driver for the Janz CMOD-IO PCI MODULbus 242 This is the core driver for the Janz CMOD-IO PCI MODULbus
244 carrier board. This device is a PCI to MODULbus bridge which may 243 carrier board. This device is a PCI to MODULbus bridge which may
@@ -277,7 +276,7 @@ config MFD_KEMPLD
277 276
278config MFD_88PM800 277config MFD_88PM800
279 tristate "Marvell 88PM800" 278 tristate "Marvell 88PM800"
280 depends on I2C=y && GENERIC_HARDIRQS 279 depends on I2C=y
281 select REGMAP_I2C 280 select REGMAP_I2C
282 select REGMAP_IRQ 281 select REGMAP_IRQ
283 select MFD_CORE 282 select MFD_CORE
@@ -289,7 +288,7 @@ config MFD_88PM800
289 288
290config MFD_88PM805 289config MFD_88PM805
291 tristate "Marvell 88PM805" 290 tristate "Marvell 88PM805"
292 depends on I2C=y && GENERIC_HARDIRQS 291 depends on I2C=y
293 select REGMAP_I2C 292 select REGMAP_I2C
294 select REGMAP_IRQ 293 select REGMAP_IRQ
295 select MFD_CORE 294 select MFD_CORE
@@ -301,7 +300,7 @@ config MFD_88PM805
301 300
302config MFD_88PM860X 301config MFD_88PM860X
303 bool "Marvell 88PM8606/88PM8607" 302 bool "Marvell 88PM8606/88PM8607"
304 depends on I2C=y && GENERIC_HARDIRQS 303 depends on I2C=y
305 select REGMAP_I2C 304 select REGMAP_I2C
306 select MFD_CORE 305 select MFD_CORE
307 help 306 help
@@ -312,7 +311,7 @@ config MFD_88PM860X
312 311
313config MFD_MAX77686 312config MFD_MAX77686
314 bool "Maxim Semiconductor MAX77686 PMIC Support" 313 bool "Maxim Semiconductor MAX77686 PMIC Support"
315 depends on I2C=y && GENERIC_HARDIRQS 314 depends on I2C=y
316 select MFD_CORE 315 select MFD_CORE
317 select REGMAP_I2C 316 select REGMAP_I2C
318 select IRQ_DOMAIN 317 select IRQ_DOMAIN
@@ -325,7 +324,7 @@ config MFD_MAX77686
325 324
326config MFD_MAX77693 325config MFD_MAX77693
327 bool "Maxim Semiconductor MAX77693 PMIC Support" 326 bool "Maxim Semiconductor MAX77693 PMIC Support"
328 depends on I2C=y && GENERIC_HARDIRQS 327 depends on I2C=y
329 select MFD_CORE 328 select MFD_CORE
330 select REGMAP_I2C 329 select REGMAP_I2C
331 help 330 help
@@ -339,7 +338,7 @@ config MFD_MAX77693
339config MFD_MAX8907 338config MFD_MAX8907
340 tristate "Maxim Semiconductor MAX8907 PMIC Support" 339 tristate "Maxim Semiconductor MAX8907 PMIC Support"
341 select MFD_CORE 340 select MFD_CORE
342 depends on I2C=y && GENERIC_HARDIRQS 341 depends on I2C=y
343 select REGMAP_I2C 342 select REGMAP_I2C
344 select REGMAP_IRQ 343 select REGMAP_IRQ
345 help 344 help
@@ -350,7 +349,7 @@ config MFD_MAX8907
350 349
351config MFD_MAX8925 350config MFD_MAX8925
352 bool "Maxim Semiconductor MAX8925 PMIC Support" 351 bool "Maxim Semiconductor MAX8925 PMIC Support"
353 depends on I2C=y && GENERIC_HARDIRQS 352 depends on I2C=y
354 select MFD_CORE 353 select MFD_CORE
355 help 354 help
356 Say yes here to support for Maxim Semiconductor MAX8925. This is 355 Say yes here to support for Maxim Semiconductor MAX8925. This is
@@ -360,7 +359,7 @@ config MFD_MAX8925
360 359
361config MFD_MAX8997 360config MFD_MAX8997
362 bool "Maxim Semiconductor MAX8997/8966 PMIC Support" 361 bool "Maxim Semiconductor MAX8997/8966 PMIC Support"
363 depends on I2C=y && GENERIC_HARDIRQS 362 depends on I2C=y
364 select MFD_CORE 363 select MFD_CORE
365 select IRQ_DOMAIN 364 select IRQ_DOMAIN
366 help 365 help
@@ -373,7 +372,7 @@ config MFD_MAX8997
373 372
374config MFD_MAX8998 373config MFD_MAX8998
375 bool "Maxim Semiconductor MAX8998/National LP3974 PMIC Support" 374 bool "Maxim Semiconductor MAX8998/National LP3974 PMIC Support"
376 depends on I2C=y && GENERIC_HARDIRQS 375 depends on I2C=y
377 select MFD_CORE 376 select MFD_CORE
378 select IRQ_DOMAIN 377 select IRQ_DOMAIN
379 help 378 help
@@ -385,7 +384,7 @@ config MFD_MAX8998
385 384
386config EZX_PCAP 385config EZX_PCAP
387 bool "Motorola EZXPCAP Support" 386 bool "Motorola EZXPCAP Support"
388 depends on GENERIC_HARDIRQS && SPI_MASTER 387 depends on SPI_MASTER
389 help 388 help
390 This enables the PCAP ASIC present on EZX Phones. This is 389 This enables the PCAP ASIC present on EZX Phones. This is
391 needed for MMC, TouchScreen, Sound, USB, etc.. 390 needed for MMC, TouchScreen, Sound, USB, etc..
@@ -393,7 +392,7 @@ config EZX_PCAP
393config MFD_VIPERBOARD 392config MFD_VIPERBOARD
394 tristate "Nano River Technologies Viperboard" 393 tristate "Nano River Technologies Viperboard"
395 select MFD_CORE 394 select MFD_CORE
396 depends on USB && GENERIC_HARDIRQS 395 depends on USB
397 default n 396 default n
398 help 397 help
399 Say yes here if you want support for Nano River Technologies 398 Say yes here if you want support for Nano River Technologies
@@ -407,7 +406,7 @@ config MFD_VIPERBOARD
407config MFD_RETU 406config MFD_RETU
408 tristate "Nokia Retu and Tahvo multi-function device" 407 tristate "Nokia Retu and Tahvo multi-function device"
409 select MFD_CORE 408 select MFD_CORE
410 depends on I2C && GENERIC_HARDIRQS 409 depends on I2C
411 select REGMAP_IRQ 410 select REGMAP_IRQ
412 help 411 help
413 Retu and Tahvo are a multi-function devices found on Nokia 412 Retu and Tahvo are a multi-function devices found on Nokia
@@ -480,7 +479,7 @@ config MFD_PM8XXX_IRQ
480config MFD_RDC321X 479config MFD_RDC321X
481 tristate "RDC R-321x southbridge" 480 tristate "RDC R-321x southbridge"
482 select MFD_CORE 481 select MFD_CORE
483 depends on PCI && GENERIC_HARDIRQS 482 depends on PCI
484 help 483 help
485 Say yes here if you want to have support for the RDC R-321x SoC 484 Say yes here if you want to have support for the RDC R-321x SoC
486 southbridge which provides access to GPIOs and Watchdog using the 485 southbridge which provides access to GPIOs and Watchdog using the
@@ -488,7 +487,7 @@ config MFD_RDC321X
488 487
489config MFD_RTSX_PCI 488config MFD_RTSX_PCI
490 tristate "Realtek PCI-E card reader" 489 tristate "Realtek PCI-E card reader"
491 depends on PCI && GENERIC_HARDIRQS 490 depends on PCI
492 select MFD_CORE 491 select MFD_CORE
493 help 492 help
494 This supports for Realtek PCI-Express card reader including rts5209, 493 This supports for Realtek PCI-Express card reader including rts5209,
@@ -498,7 +497,7 @@ config MFD_RTSX_PCI
498 497
499config MFD_RC5T583 498config MFD_RC5T583
500 bool "Ricoh RC5T583 Power Management system device" 499 bool "Ricoh RC5T583 Power Management system device"
501 depends on I2C=y && GENERIC_HARDIRQS 500 depends on I2C=y
502 select MFD_CORE 501 select MFD_CORE
503 select REGMAP_I2C 502 select REGMAP_I2C
504 help 503 help
@@ -512,7 +511,7 @@ config MFD_RC5T583
512 511
513config MFD_SEC_CORE 512config MFD_SEC_CORE
514 bool "SAMSUNG Electronics PMIC Series Support" 513 bool "SAMSUNG Electronics PMIC Series Support"
515 depends on I2C=y && GENERIC_HARDIRQS 514 depends on I2C=y
516 select MFD_CORE 515 select MFD_CORE
517 select REGMAP_I2C 516 select REGMAP_I2C
518 select REGMAP_IRQ 517 select REGMAP_IRQ
@@ -555,7 +554,7 @@ config MFD_SM501_GPIO
555 554
556config MFD_SMSC 555config MFD_SMSC
557 bool "SMSC ECE1099 series chips" 556 bool "SMSC ECE1099 series chips"
558 depends on I2C=y && GENERIC_HARDIRQS 557 depends on I2C=y
559 select MFD_CORE 558 select MFD_CORE
560 select REGMAP_I2C 559 select REGMAP_I2C
561 help 560 help
@@ -577,7 +576,7 @@ config ABX500_CORE
577 576
578config AB3100_CORE 577config AB3100_CORE
579 bool "ST-Ericsson AB3100 Mixed Signal Circuit core functions" 578 bool "ST-Ericsson AB3100 Mixed Signal Circuit core functions"
580 depends on I2C=y && ABX500_CORE && GENERIC_HARDIRQS 579 depends on I2C=y && ABX500_CORE
581 select MFD_CORE 580 select MFD_CORE
582 default y if ARCH_U300 581 default y if ARCH_U300
583 help 582 help
@@ -601,7 +600,7 @@ config AB3100_OTP
601 600
602config AB8500_CORE 601config AB8500_CORE
603 bool "ST-Ericsson AB8500 Mixed Signal Power Management chip" 602 bool "ST-Ericsson AB8500 Mixed Signal Power Management chip"
604 depends on GENERIC_HARDIRQS && ABX500_CORE && MFD_DB8500_PRCMU 603 depends on ABX500_CORE && MFD_DB8500_PRCMU
605 select POWER_SUPPLY 604 select POWER_SUPPLY
606 select MFD_CORE 605 select MFD_CORE
607 select IRQ_DOMAIN 606 select IRQ_DOMAIN
@@ -639,7 +638,7 @@ config MFD_DB8500_PRCMU
639 638
640config MFD_STMPE 639config MFD_STMPE
641 bool "STMicroelectronics STMPE" 640 bool "STMicroelectronics STMPE"
642 depends on (I2C=y || SPI_MASTER=y) && GENERIC_HARDIRQS 641 depends on (I2C=y || SPI_MASTER=y)
643 select MFD_CORE 642 select MFD_CORE
644 help 643 help
645 Support for the STMPE family of I/O Expanders from 644 Support for the STMPE family of I/O Expanders from
@@ -680,7 +679,7 @@ endmenu
680 679
681config MFD_STA2X11 680config MFD_STA2X11
682 bool "STMicroelectronics STA2X11" 681 bool "STMicroelectronics STA2X11"
683 depends on STA2X11 && GENERIC_HARDIRQS 682 depends on STA2X11
684 select MFD_CORE 683 select MFD_CORE
685 select REGMAP_MMIO 684 select REGMAP_MMIO
686 685
@@ -700,7 +699,6 @@ config MFD_TI_AM335X_TSCADC
700 select MFD_CORE 699 select MFD_CORE
701 select REGMAP 700 select REGMAP
702 select REGMAP_MMIO 701 select REGMAP_MMIO
703 depends on GENERIC_HARDIRQS
704 help 702 help
705 If you say yes here you get support for Texas Instruments series 703 If you say yes here you get support for Texas Instruments series
706 of Touch Screen /ADC chips. 704 of Touch Screen /ADC chips.
@@ -717,7 +715,7 @@ config MFD_DM355EVM_MSP
717 715
718config MFD_LP8788 716config MFD_LP8788
719 bool "TI LP8788 Power Management Unit Driver" 717 bool "TI LP8788 Power Management Unit Driver"
720 depends on I2C=y && GENERIC_HARDIRQS 718 depends on I2C=y
721 select MFD_CORE 719 select MFD_CORE
722 select REGMAP_I2C 720 select REGMAP_I2C
723 select IRQ_DOMAIN 721 select IRQ_DOMAIN
@@ -739,14 +737,14 @@ config MFD_PALMAS
739 select MFD_CORE 737 select MFD_CORE
740 select REGMAP_I2C 738 select REGMAP_I2C
741 select REGMAP_IRQ 739 select REGMAP_IRQ
742 depends on I2C=y && GENERIC_HARDIRQS 740 depends on I2C=y
743 help 741 help
744 If you say yes here you get support for the Palmas 742 If you say yes here you get support for the Palmas
745 series of PMIC chips from Texas Instruments. 743 series of PMIC chips from Texas Instruments.
746 744
747config MFD_TI_SSP 745config MFD_TI_SSP
748 tristate "TI Sequencer Serial Port support" 746 tristate "TI Sequencer Serial Port support"
749 depends on ARCH_DAVINCI_TNETV107X && GENERIC_HARDIRQS 747 depends on ARCH_DAVINCI_TNETV107X
750 select MFD_CORE 748 select MFD_CORE
751 ---help--- 749 ---help---
752 Say Y here if you want support for the Sequencer Serial Port 750 Say Y here if you want support for the Sequencer Serial Port
@@ -761,7 +759,6 @@ config TPS6105X
761 select REGULATOR 759 select REGULATOR
762 select MFD_CORE 760 select MFD_CORE
763 select REGULATOR_FIXED_VOLTAGE 761 select REGULATOR_FIXED_VOLTAGE
764 depends on GENERIC_HARDIRQS
765 help 762 help
766 This option enables a driver for the TP61050/TPS61052 763 This option enables a driver for the TP61050/TPS61052
767 high-power "white LED driver". This boost converter is 764 high-power "white LED driver". This boost converter is
@@ -784,7 +781,7 @@ config TPS65010
784config TPS6507X 781config TPS6507X
785 tristate "TI TPS6507x Power Management / Touch Screen chips" 782 tristate "TI TPS6507x Power Management / Touch Screen chips"
786 select MFD_CORE 783 select MFD_CORE
787 depends on I2C && GENERIC_HARDIRQS 784 depends on I2C
788 help 785 help
789 If you say yes here you get support for the TPS6507x series of 786 If you say yes here you get support for the TPS6507x series of
790 Power Management / Touch Screen chips. These include voltage 787 Power Management / Touch Screen chips. These include voltage
@@ -798,7 +795,7 @@ config TPS65911_COMPARATOR
798 795
799config MFD_TPS65090 796config MFD_TPS65090
800 bool "TI TPS65090 Power Management chips" 797 bool "TI TPS65090 Power Management chips"
801 depends on I2C=y && GENERIC_HARDIRQS 798 depends on I2C=y
802 select MFD_CORE 799 select MFD_CORE
803 select REGMAP_I2C 800 select REGMAP_I2C
804 select REGMAP_IRQ 801 select REGMAP_IRQ
@@ -811,7 +808,7 @@ config MFD_TPS65090
811 808
812config MFD_TPS65217 809config MFD_TPS65217
813 tristate "TI TPS65217 Power Management / White LED chips" 810 tristate "TI TPS65217 Power Management / White LED chips"
814 depends on I2C && GENERIC_HARDIRQS 811 depends on I2C
815 select MFD_CORE 812 select MFD_CORE
816 select REGMAP_I2C 813 select REGMAP_I2C
817 help 814 help
@@ -826,7 +823,7 @@ config MFD_TPS65217
826 823
827config MFD_TPS6586X 824config MFD_TPS6586X
828 bool "TI TPS6586x Power Management chips" 825 bool "TI TPS6586x Power Management chips"
829 depends on I2C=y && GENERIC_HARDIRQS 826 depends on I2C=y
830 select MFD_CORE 827 select MFD_CORE
831 select REGMAP_I2C 828 select REGMAP_I2C
832 help 829 help
@@ -841,7 +838,7 @@ config MFD_TPS6586X
841 838
842config MFD_TPS65910 839config MFD_TPS65910
843 bool "TI TPS65910 Power Management chip" 840 bool "TI TPS65910 Power Management chip"
844 depends on I2C=y && GPIOLIB && GENERIC_HARDIRQS 841 depends on I2C=y && GPIOLIB
845 select MFD_CORE 842 select MFD_CORE
846 select REGMAP_I2C 843 select REGMAP_I2C
847 select REGMAP_IRQ 844 select REGMAP_IRQ
@@ -862,7 +859,7 @@ config MFD_TPS65912_I2C
862 bool "TI TPS65912 Power Management chip with I2C" 859 bool "TI TPS65912 Power Management chip with I2C"
863 select MFD_CORE 860 select MFD_CORE
864 select MFD_TPS65912 861 select MFD_TPS65912
865 depends on I2C=y && GPIOLIB && GENERIC_HARDIRQS 862 depends on I2C=y && GPIOLIB
866 help 863 help
867 If you say yes here you get support for the TPS65912 series of 864 If you say yes here you get support for the TPS65912 series of
868 PM chips with I2C interface. 865 PM chips with I2C interface.
@@ -871,14 +868,14 @@ config MFD_TPS65912_SPI
871 bool "TI TPS65912 Power Management chip with SPI" 868 bool "TI TPS65912 Power Management chip with SPI"
872 select MFD_CORE 869 select MFD_CORE
873 select MFD_TPS65912 870 select MFD_TPS65912
874 depends on SPI_MASTER && GPIOLIB && GENERIC_HARDIRQS 871 depends on SPI_MASTER && GPIOLIB
875 help 872 help
876 If you say yes here you get support for the TPS65912 series of 873 If you say yes here you get support for the TPS65912 series of
877 PM chips with SPI interface. 874 PM chips with SPI interface.
878 875
879config MFD_TPS80031 876config MFD_TPS80031
880 bool "TI TPS80031/TPS80032 Power Management chips" 877 bool "TI TPS80031/TPS80032 Power Management chips"
881 depends on I2C=y && GENERIC_HARDIRQS 878 depends on I2C=y
882 select MFD_CORE 879 select MFD_CORE
883 select REGMAP_I2C 880 select REGMAP_I2C
884 select REGMAP_IRQ 881 select REGMAP_IRQ
@@ -892,7 +889,7 @@ config MFD_TPS80031
892 889
893config TWL4030_CORE 890config TWL4030_CORE
894 bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 Support" 891 bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 Support"
895 depends on I2C=y && GENERIC_HARDIRQS 892 depends on I2C=y
896 select IRQ_DOMAIN 893 select IRQ_DOMAIN
897 select REGMAP_I2C 894 select REGMAP_I2C
898 help 895 help
@@ -931,13 +928,13 @@ config TWL4030_POWER
931 928
932config MFD_TWL4030_AUDIO 929config MFD_TWL4030_AUDIO
933 bool "TI TWL4030 Audio" 930 bool "TI TWL4030 Audio"
934 depends on TWL4030_CORE && GENERIC_HARDIRQS 931 depends on TWL4030_CORE
935 select MFD_CORE 932 select MFD_CORE
936 default n 933 default n
937 934
938config TWL6040_CORE 935config TWL6040_CORE
939 bool "TI TWL6040 audio codec" 936 bool "TI TWL6040 audio codec"
940 depends on I2C=y && GENERIC_HARDIRQS 937 depends on I2C=y
941 select MFD_CORE 938 select MFD_CORE
942 select REGMAP_I2C 939 select REGMAP_I2C
943 select REGMAP_IRQ 940 select REGMAP_IRQ
@@ -961,7 +958,7 @@ config MENELAUS
961 958
962config MFD_WL1273_CORE 959config MFD_WL1273_CORE
963 tristate "TI WL1273 FM radio" 960 tristate "TI WL1273 FM radio"
964 depends on I2C && GENERIC_HARDIRQS 961 depends on I2C
965 select MFD_CORE 962 select MFD_CORE
966 default n 963 default n
967 help 964 help
@@ -974,7 +971,6 @@ config MFD_LM3533
974 depends on I2C 971 depends on I2C
975 select MFD_CORE 972 select MFD_CORE
976 select REGMAP_I2C 973 select REGMAP_I2C
977 depends on GENERIC_HARDIRQS
978 help 974 help
979 Say yes here to enable support for National Semiconductor / TI 975 Say yes here to enable support for National Semiconductor / TI
980 LM3533 Lighting Power chips. 976 LM3533 Lighting Power chips.
@@ -996,7 +992,7 @@ config MFD_TIMBERDALE
996 992
997config MFD_TC3589X 993config MFD_TC3589X
998 bool "Toshiba TC35892 and variants" 994 bool "Toshiba TC35892 and variants"
999 depends on I2C=y && GENERIC_HARDIRQS 995 depends on I2C=y
1000 select MFD_CORE 996 select MFD_CORE
1001 help 997 help
1002 Support for the Toshiba TC35892 and variants I/O Expander. 998 Support for the Toshiba TC35892 and variants I/O Expander.
@@ -1011,7 +1007,7 @@ config MFD_TMIO
1011 1007
1012config MFD_T7L66XB 1008config MFD_T7L66XB
1013 bool "Toshiba T7L66XB" 1009 bool "Toshiba T7L66XB"
1014 depends on ARM && HAVE_CLK && GENERIC_HARDIRQS 1010 depends on ARM && HAVE_CLK
1015 select MFD_CORE 1011 select MFD_CORE
1016 select MFD_TMIO 1012 select MFD_TMIO
1017 help 1013 help
@@ -1036,7 +1032,7 @@ config MFD_TC6393XB
1036 1032
1037config MFD_VX855 1033config MFD_VX855
1038 tristate "VIA VX855/VX875 integrated south bridge" 1034 tristate "VIA VX855/VX875 integrated south bridge"
1039 depends on PCI && GENERIC_HARDIRQS 1035 depends on PCI
1040 select MFD_CORE 1036 select MFD_CORE
1041 help 1037 help
1042 Say yes here to enable support for various functions of the 1038 Say yes here to enable support for various functions of the
@@ -1054,7 +1050,7 @@ config MFD_ARIZONA_I2C
1054 select MFD_ARIZONA 1050 select MFD_ARIZONA
1055 select MFD_CORE 1051 select MFD_CORE
1056 select REGMAP_I2C 1052 select REGMAP_I2C
1057 depends on I2C && GENERIC_HARDIRQS 1053 depends on I2C
1058 help 1054 help
1059 Support for the Wolfson Microelectronics Arizona platform audio SoC 1055 Support for the Wolfson Microelectronics Arizona platform audio SoC
1060 core functionality controlled via I2C. 1056 core functionality controlled via I2C.
@@ -1064,7 +1060,7 @@ config MFD_ARIZONA_SPI
1064 select MFD_ARIZONA 1060 select MFD_ARIZONA
1065 select MFD_CORE 1061 select MFD_CORE
1066 select REGMAP_SPI 1062 select REGMAP_SPI
1067 depends on SPI_MASTER && GENERIC_HARDIRQS 1063 depends on SPI_MASTER
1068 help 1064 help
1069 Support for the Wolfson Microelectronics Arizona platform audio SoC 1065 Support for the Wolfson Microelectronics Arizona platform audio SoC
1070 core functionality controlled via I2C. 1066 core functionality controlled via I2C.
@@ -1090,7 +1086,7 @@ config MFD_WM8997
1090config MFD_WM8400 1086config MFD_WM8400
1091 bool "Wolfson Microelectronics WM8400" 1087 bool "Wolfson Microelectronics WM8400"
1092 select MFD_CORE 1088 select MFD_CORE
1093 depends on I2C=y && GENERIC_HARDIRQS 1089 depends on I2C=y
1094 select REGMAP_I2C 1090 select REGMAP_I2C
1095 help 1091 help
1096 Support for the Wolfson Microelecronics WM8400 PMIC and audio 1092 Support for the Wolfson Microelecronics WM8400 PMIC and audio
@@ -1100,7 +1096,6 @@ config MFD_WM8400
1100 1096
1101config MFD_WM831X 1097config MFD_WM831X
1102 bool 1098 bool
1103 depends on GENERIC_HARDIRQS
1104 1099
1105config MFD_WM831X_I2C 1100config MFD_WM831X_I2C
1106 bool "Wolfson Microelectronics WM831x/2x PMICs with I2C" 1101 bool "Wolfson Microelectronics WM831x/2x PMICs with I2C"
@@ -1108,7 +1103,7 @@ config MFD_WM831X_I2C
1108 select MFD_WM831X 1103 select MFD_WM831X
1109 select REGMAP_I2C 1104 select REGMAP_I2C
1110 select IRQ_DOMAIN 1105 select IRQ_DOMAIN
1111 depends on I2C=y && GENERIC_HARDIRQS 1106 depends on I2C=y
1112 help 1107 help
1113 Support for the Wolfson Microelecronics WM831x and WM832x PMICs 1108 Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1114 when controlled using I2C. This driver provides common support 1109 when controlled using I2C. This driver provides common support
@@ -1121,7 +1116,7 @@ config MFD_WM831X_SPI
1121 select MFD_WM831X 1116 select MFD_WM831X
1122 select REGMAP_SPI 1117 select REGMAP_SPI
1123 select IRQ_DOMAIN 1118 select IRQ_DOMAIN
1124 depends on SPI_MASTER && GENERIC_HARDIRQS 1119 depends on SPI_MASTER
1125 help 1120 help
1126 Support for the Wolfson Microelecronics WM831x and WM832x PMICs 1121 Support for the Wolfson Microelecronics WM831x and WM832x PMICs
1127 when controlled using SPI. This driver provides common support 1122 when controlled using SPI. This driver provides common support
@@ -1130,12 +1125,11 @@ config MFD_WM831X_SPI
1130 1125
1131config MFD_WM8350 1126config MFD_WM8350
1132 bool 1127 bool
1133 depends on GENERIC_HARDIRQS
1134 1128
1135config MFD_WM8350_I2C 1129config MFD_WM8350_I2C
1136 bool "Wolfson Microelectronics WM8350 with I2C" 1130 bool "Wolfson Microelectronics WM8350 with I2C"
1137 select MFD_WM8350 1131 select MFD_WM8350
1138 depends on I2C=y && GENERIC_HARDIRQS 1132 depends on I2C=y
1139 help 1133 help
1140 The WM8350 is an integrated audio and power management 1134 The WM8350 is an integrated audio and power management
1141 subsystem with watchdog and RTC functionality for embedded 1135 subsystem with watchdog and RTC functionality for embedded
@@ -1148,7 +1142,7 @@ config MFD_WM8994
1148 select MFD_CORE 1142 select MFD_CORE
1149 select REGMAP_I2C 1143 select REGMAP_I2C
1150 select REGMAP_IRQ 1144 select REGMAP_IRQ
1151 depends on I2C=y && GENERIC_HARDIRQS 1145 depends on I2C=y
1152 help 1146 help
1153 The WM8994 is a highly integrated hi-fi CODEC designed for 1147 The WM8994 is a highly integrated hi-fi CODEC designed for
1154 smartphone applicatiosn. As well as audio functionality it 1148 smartphone applicatiosn. As well as audio functionality it
diff --git a/drivers/misc/cb710/Kconfig b/drivers/misc/cb710/Kconfig
index 5acb9c5b49c4..22429b8b1068 100644
--- a/drivers/misc/cb710/Kconfig
+++ b/drivers/misc/cb710/Kconfig
@@ -1,6 +1,6 @@
1config CB710_CORE 1config CB710_CORE
2 tristate "ENE CB710/720 Flash memory card reader support" 2 tristate "ENE CB710/720 Flash memory card reader support"
3 depends on PCI && GENERIC_HARDIRQS 3 depends on PCI
4 help 4 help
5 This option enables support for PCI ENE CB710/720 Flash memory card 5 This option enables support for PCI ENE CB710/720 Flash memory card
6 reader found in some laptops (ie. some versions of HP Compaq nx9500). 6 reader found in some laptops (ie. some versions of HP Compaq nx9500).
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index b7fd5ab80a48..7fc5099e44b2 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -487,7 +487,7 @@ config MMC_SDHI
487 487
488config MMC_CB710 488config MMC_CB710
489 tristate "ENE CB710 MMC/SD Interface support" 489 tristate "ENE CB710 MMC/SD Interface support"
490 depends on PCI && GENERIC_HARDIRQS 490 depends on PCI
491 select CB710_CORE 491 select CB710_CORE
492 help 492 help
493 This option enables support for MMC/SD part of ENE CB710/720 Flash 493 This option enables support for MMC/SD part of ENE CB710/720 Flash
diff --git a/drivers/net/ethernet/cadence/Kconfig b/drivers/net/ethernet/cadence/Kconfig
index 8030cc0396fd..751d5c7b312d 100644
--- a/drivers/net/ethernet/cadence/Kconfig
+++ b/drivers/net/ethernet/cadence/Kconfig
@@ -22,7 +22,7 @@ if NET_CADENCE
22 22
23config ARM_AT91_ETHER 23config ARM_AT91_ETHER
24 tristate "AT91RM9200 Ethernet support" 24 tristate "AT91RM9200 Ethernet support"
25 depends on GENERIC_HARDIRQS && HAS_DMA 25 depends on HAS_DMA
26 select MACB 26 select MACB
27 ---help--- 27 ---help---
28 If you wish to compile a kernel for the AT91RM9200 and enable 28 If you wish to compile a kernel for the AT91RM9200 and enable
diff --git a/drivers/net/wireless/p54/Kconfig b/drivers/net/wireless/p54/Kconfig
index 15ea36b51a66..cdafb8c73e82 100644
--- a/drivers/net/wireless/p54/Kconfig
+++ b/drivers/net/wireless/p54/Kconfig
@@ -41,7 +41,7 @@ config P54_PCI
41 41
42config P54_SPI 42config P54_SPI
43 tristate "Prism54 SPI (stlc45xx) support" 43 tristate "Prism54 SPI (stlc45xx) support"
44 depends on P54_COMMON && SPI_MASTER && GENERIC_HARDIRQS 44 depends on P54_COMMON && SPI_MASTER
45 ---help--- 45 ---help---
46 This driver is for stlc4550 or stlc4560 based wireless chips 46 This driver is for stlc4550 or stlc4560 based wireless chips
47 such as Nokia's N800/N810 Portable Internet Tablet. 47 such as Nokia's N800/N810 Portable Internet Tablet.
diff --git a/drivers/net/wireless/ti/wl1251/Kconfig b/drivers/net/wireless/ti/wl1251/Kconfig
index 8fec4ed36ac2..477a206c098e 100644
--- a/drivers/net/wireless/ti/wl1251/Kconfig
+++ b/drivers/net/wireless/ti/wl1251/Kconfig
@@ -1,6 +1,6 @@
1menuconfig WL1251 1menuconfig WL1251
2 tristate "TI wl1251 driver support" 2 tristate "TI wl1251 driver support"
3 depends on MAC80211 && GENERIC_HARDIRQS 3 depends on MAC80211
4 select FW_LOADER 4 select FW_LOADER
5 select CRC7 5 select CRC7
6 ---help--- 6 ---help---
diff --git a/drivers/net/wireless/ti/wlcore/Kconfig b/drivers/net/wireless/ti/wlcore/Kconfig
index 2b832825c3d4..7c099542b214 100644
--- a/drivers/net/wireless/ti/wlcore/Kconfig
+++ b/drivers/net/wireless/ti/wlcore/Kconfig
@@ -1,6 +1,6 @@
1config WLCORE 1config WLCORE
2 tristate "TI wlcore support" 2 tristate "TI wlcore support"
3 depends on WL_TI && GENERIC_HARDIRQS && MAC80211 3 depends on WL_TI && MAC80211
4 select FW_LOADER 4 select FW_LOADER
5 ---help--- 5 ---help---
6 This module contains the main code for TI WLAN chips. It abstracts 6 This module contains the main code for TI WLAN chips. It abstracts
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index b35f93c232cf..d5f90d6383bc 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -30,7 +30,6 @@ static int pci_msi_enable = 1;
30 30
31/* Arch hooks */ 31/* Arch hooks */
32 32
33#if defined(CONFIG_GENERIC_HARDIRQS)
34int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc) 33int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
35{ 34{
36 struct msi_chip *chip = dev->bus->msi; 35 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 66
68 return chip->check_device(chip, dev, nvec, type); 67 return chip->check_device(chip, dev, nvec, type);
69} 68}
70#else
71int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
72{
73 return -ENOSYS;
74}
75
76void __weak arch_teardown_msi_irq(unsigned int irq)
77{
78}
79
80int __weak arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
81{
82 return 0;
83}
84#endif /* CONFIG_GENERIC_HARDIRQS */
85 69
86int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) 70int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
87{ 71{
@@ -245,8 +229,6 @@ static void msix_mask_irq(struct msi_desc *desc, u32 flag)
245 desc->masked = __msix_mask_irq(desc, flag); 229 desc->masked = __msix_mask_irq(desc, flag);
246} 230}
247 231
248#ifdef CONFIG_GENERIC_HARDIRQS
249
250static void msi_set_mask_bit(struct irq_data *data, u32 flag) 232static void msi_set_mask_bit(struct irq_data *data, u32 flag)
251{ 233{
252 struct msi_desc *desc = irq_data_get_msi(data); 234 struct msi_desc *desc = irq_data_get_msi(data);
@@ -270,8 +252,6 @@ void unmask_msi_irq(struct irq_data *data)
270 msi_set_mask_bit(data, 0); 252 msi_set_mask_bit(data, 0);
271} 253}
272 254
273#endif /* CONFIG_GENERIC_HARDIRQS */
274
275void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg) 255void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
276{ 256{
277 BUG_ON(entry->dev->current_state != PCI_D0); 257 BUG_ON(entry->dev->current_state != PCI_D0);
@@ -382,10 +362,8 @@ static void free_msi_irqs(struct pci_dev *dev)
382 nvec = entry->nvec_used; 362 nvec = entry->nvec_used;
383 else 363 else
384 nvec = 1 << entry->msi_attrib.multiple; 364 nvec = 1 << entry->msi_attrib.multiple;
385#ifdef CONFIG_GENERIC_HARDIRQS
386 for (i = 0; i < nvec; i++) 365 for (i = 0; i < nvec; i++)
387 BUG_ON(irq_has_action(entry->irq + i)); 366 BUG_ON(irq_has_action(entry->irq + i));
388#endif
389 } 367 }
390 368
391 arch_teardown_msi_irqs(dev); 369 arch_teardown_msi_irqs(dev);
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index bb49ab684f9a..e6f92b450913 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -269,7 +269,6 @@ config CHARGER_ISP1704
269 269
270config CHARGER_MAX8903 270config CHARGER_MAX8903
271 tristate "MAX8903 Battery DC-DC Charger for USB and Adapter Power" 271 tristate "MAX8903 Battery DC-DC Charger for USB and Adapter Power"
272 depends on GENERIC_HARDIRQS
273 help 272 help
274 Say Y to enable support for the MAX8903 DC-DC charger and sysfs. 273 Say Y to enable support for the MAX8903 DC-DC charger and sysfs.
275 The driver supports controlling charger-enable and current-limit 274 The driver supports controlling charger-enable and current-limit
@@ -370,7 +369,7 @@ config AB8500_BM
370 369
371config BATTERY_GOLDFISH 370config BATTERY_GOLDFISH
372 tristate "Goldfish battery driver" 371 tristate "Goldfish battery driver"
373 depends on GENERIC_HARDIRQS && (GOLDFISH || COMPILE_TEST) 372 depends on GOLDFISH || COMPILE_TEST
374 help 373 help
375 Say Y to enable support for the battery and AC power in the 374 Say Y to enable support for the battery and AC power in the
376 Goldfish emulator. 375 Goldfish emulator.
diff --git a/drivers/pps/clients/Kconfig b/drivers/pps/clients/Kconfig
index 6efd9b60d8ff..0c9f2805d076 100644
--- a/drivers/pps/clients/Kconfig
+++ b/drivers/pps/clients/Kconfig
@@ -31,7 +31,7 @@ config PPS_CLIENT_PARPORT
31 31
32config PPS_CLIENT_GPIO 32config PPS_CLIENT_GPIO
33 tristate "PPS client using GPIO" 33 tristate "PPS client using GPIO"
34 depends on PPS && GENERIC_HARDIRQS 34 depends on PPS
35 help 35 help
36 If you say yes here you get support for a PPS source using 36 If you say yes here you get support for a PPS source using
37 GPIO. To be useful you must also register a platform device 37 GPIO. To be useful you must also register a platform device
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 0170d4c4a8a3..b9c53cc40e1f 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -55,7 +55,6 @@ comment "SPI Master Controller Drivers"
55 55
56config SPI_ALTERA 56config SPI_ALTERA
57 tristate "Altera SPI Controller" 57 tristate "Altera SPI Controller"
58 depends on GENERIC_HARDIRQS
59 select SPI_BITBANG 58 select SPI_BITBANG
60 help 59 help
61 This is the driver for the Altera SPI Controller. 60 This is the driver for the Altera SPI Controller.
@@ -358,7 +357,7 @@ config SPI_PXA2XX_DMA
358 357
359config SPI_PXA2XX 358config SPI_PXA2XX
360 tristate "PXA2xx SSP SPI master" 359 tristate "PXA2xx SSP SPI master"
361 depends on (ARCH_PXA || PCI || ACPI) && GENERIC_HARDIRQS 360 depends on (ARCH_PXA || PCI || ACPI)
362 select PXA_SSP if ARCH_PXA 361 select PXA_SSP if ARCH_PXA
363 help 362 help
364 This enables using a PXA2xx or Sodaville SSP port as a SPI master 363 This enables using a PXA2xx or Sodaville SSP port as a SPI master
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 47c6e7b9e150..febd45cd5027 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -5,7 +5,7 @@
5if TTY 5if TTY
6 6
7menu "Serial drivers" 7menu "Serial drivers"
8 depends on HAS_IOMEM && GENERIC_HARDIRQS 8 depends on HAS_IOMEM
9 9
10source "drivers/tty/serial/8250/Kconfig" 10source "drivers/tty/serial/8250/Kconfig"
11 11
diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
index f969ea266acb..b870872e020f 100644
--- a/drivers/usb/dwc3/Kconfig
+++ b/drivers/usb/dwc3/Kconfig
@@ -1,6 +1,6 @@
1config USB_DWC3 1config USB_DWC3
2 tristate "DesignWare USB3 DRD Core Support" 2 tristate "DesignWare USB3 DRD Core Support"
3 depends on (USB || USB_GADGET) && GENERIC_HARDIRQS && HAS_DMA 3 depends on (USB || USB_GADGET) && HAS_DMA
4 depends on EXTCON 4 depends on EXTCON
5 select USB_XHCI_PLATFORM if USB_SUPPORT && USB_XHCI_HCD 5 select USB_XHCI_PLATFORM if USB_SUPPORT && USB_XHCI_HCD
6 help 6 help
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 30e2dd8a1f2c..48cddf3cd6b8 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -313,7 +313,7 @@ config USB_S3C_HSUDC
313 313
314config USB_MV_UDC 314config USB_MV_UDC
315 tristate "Marvell USB2.0 Device Controller" 315 tristate "Marvell USB2.0 Device Controller"
316 depends on GENERIC_HARDIRQS && HAS_DMA 316 depends on HAS_DMA
317 help 317 help
318 Marvell Socs (including PXA and MMP series) include a high speed 318 Marvell Socs (including PXA and MMP series) include a high speed
319 USB2.0 OTG controller, which can be configured as high speed or 319 USB2.0 OTG controller, which can be configured as high speed or
@@ -425,7 +425,7 @@ config USB_GOKU
425 425
426config USB_EG20T 426config USB_EG20T
427 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC" 427 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
428 depends on PCI && GENERIC_HARDIRQS 428 depends on PCI
429 help 429 help
430 This is a USB device driver for EG20T PCH. 430 This is a USB device driver for EG20T PCH.
431 EG20T PCH is the platform controller hub that is used in Intel's 431 EG20T PCH is the platform controller hub that is used in Intel's
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 5be0326aae38..b3f20d7f15de 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -278,7 +278,6 @@ endif # USB_EHCI_HCD
278 278
279config USB_OXU210HP_HCD 279config USB_OXU210HP_HCD
280 tristate "OXU210HP HCD support" 280 tristate "OXU210HP HCD support"
281 depends on GENERIC_HARDIRQS
282 ---help--- 281 ---help---
283 The OXU210HP is an USB host/OTG/device controller. Enable this 282 The OXU210HP is an USB host/OTG/device controller. Enable this
284 option if your board has this chip. If unsure, say N. 283 option if your board has this chip. If unsure, say N.
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index c64ee09a7c0e..c258a97ef1b0 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -71,7 +71,6 @@ config USB_MUSB_DA8XX
71 71
72config USB_MUSB_TUSB6010 72config USB_MUSB_TUSB6010
73 tristate "TUSB6010" 73 tristate "TUSB6010"
74 depends on GENERIC_HARDIRQS
75 74
76config USB_MUSB_OMAP2PLUS 75config USB_MUSB_OMAP2PLUS
77 tristate "OMAP2430 and onwards" 76 tristate "OMAP2430 and onwards"
diff --git a/drivers/usb/renesas_usbhs/Kconfig b/drivers/usb/renesas_usbhs/Kconfig
index 019bf7e49ee6..1c4195abc108 100644
--- a/drivers/usb/renesas_usbhs/Kconfig
+++ b/drivers/usb/renesas_usbhs/Kconfig
@@ -4,7 +4,7 @@
4 4
5config USB_RENESAS_USBHS 5config USB_RENESAS_USBHS
6 tristate 'Renesas USBHS controller' 6 tristate 'Renesas USBHS controller'
7 depends on USB_GADGET && GENERIC_HARDIRQS 7 depends on USB_GADGET
8 default n 8 default n
9 help 9 help
10 Renesas USBHS is a discrete USB host and peripheral controller chip 10 Renesas USBHS is a discrete USB host and peripheral controller chip
diff --git a/drivers/w1/masters/Kconfig b/drivers/w1/masters/Kconfig
index 2bd1257dcc1c..efc7f075fcbe 100644
--- a/drivers/w1/masters/Kconfig
+++ b/drivers/w1/masters/Kconfig
@@ -42,7 +42,7 @@ config W1_MASTER_MXC
42 42
43config W1_MASTER_DS1WM 43config W1_MASTER_DS1WM
44 tristate "Maxim DS1WM 1-wire busmaster" 44 tristate "Maxim DS1WM 1-wire busmaster"
45 depends on W1 && GENERIC_HARDIRQS 45 depends on W1
46 help 46 help
47 Say Y here to enable the DS1WM 1-wire driver, such as that 47 Say Y here to enable the DS1WM 1-wire driver, such as that
48 in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like 48 in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like
diff --git a/include/linux/cpu_rmap.h b/include/linux/cpu_rmap.h
index 1739510d8994..bdd18caa6c94 100644
--- a/include/linux/cpu_rmap.h
+++ b/include/linux/cpu_rmap.h
@@ -52,8 +52,6 @@ static inline void *cpu_rmap_lookup_obj(struct cpu_rmap *rmap, unsigned int cpu)
52 return rmap->obj[rmap->near[cpu].index]; 52 return rmap->obj[rmap->near[cpu].index];
53} 53}
54 54
55#ifdef CONFIG_GENERIC_HARDIRQS
56
57/** 55/**
58 * alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs 56 * alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs
59 * @size: Number of objects to be mapped 57 * @size: Number of objects to be mapped
@@ -68,5 +66,4 @@ extern void free_irq_cpu_rmap(struct cpu_rmap *rmap);
68 66
69extern int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq); 67extern int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq);
70 68
71#endif
72#endif /* __LINUX_CPU_RMAP_H */ 69#endif /* __LINUX_CPU_RMAP_H */
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index ccfe17c5c8da..1e041063b226 100644
--- a/include/linux/hardirq.h
+++ b/include/linux/hardirq.h
@@ -7,11 +7,7 @@
7#include <linux/vtime.h> 7#include <linux/vtime.h>
8 8
9 9
10#if defined(CONFIG_SMP) || defined(CONFIG_GENERIC_HARDIRQS)
11extern void synchronize_irq(unsigned int irq); 10extern void synchronize_irq(unsigned int irq);
12#else
13# define synchronize_irq(irq) barrier()
14#endif
15 11
16#if defined(CONFIG_TINY_RCU) 12#if defined(CONFIG_TINY_RCU)
17 13
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 5fa5afeeb759..5e865b554940 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -120,7 +120,6 @@ struct irqaction {
120 120
121extern irqreturn_t no_action(int cpl, void *dev_id); 121extern irqreturn_t no_action(int cpl, void *dev_id);
122 122
123#ifdef CONFIG_GENERIC_HARDIRQS
124extern int __must_check 123extern int __must_check
125request_threaded_irq(unsigned int irq, irq_handler_t handler, 124request_threaded_irq(unsigned int irq, irq_handler_t handler,
126 irq_handler_t thread_fn, 125 irq_handler_t thread_fn,
@@ -140,40 +139,6 @@ request_any_context_irq(unsigned int irq, irq_handler_t handler,
140extern int __must_check 139extern int __must_check
141request_percpu_irq(unsigned int irq, irq_handler_t handler, 140request_percpu_irq(unsigned int irq, irq_handler_t handler,
142 const char *devname, void __percpu *percpu_dev_id); 141 const char *devname, void __percpu *percpu_dev_id);
143#else
144
145extern int __must_check
146request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
147 const char *name, void *dev);
148
149/*
150 * Special function to avoid ifdeffery in kernel/irq/devres.c which
151 * gets magically built by GENERIC_HARDIRQS=n architectures (sparc,
152 * m68k). I really love these $@%#!* obvious Makefile references:
153 * ../../../kernel/irq/devres.o
154 */
155static inline int __must_check
156request_threaded_irq(unsigned int irq, irq_handler_t handler,
157 irq_handler_t thread_fn,
158 unsigned long flags, const char *name, void *dev)
159{
160 return request_irq(irq, handler, flags, name, dev);
161}
162
163static inline int __must_check
164request_any_context_irq(unsigned int irq, irq_handler_t handler,
165 unsigned long flags, const char *name, void *dev_id)
166{
167 return request_irq(irq, handler, flags, name, dev_id);
168}
169
170static inline int __must_check
171request_percpu_irq(unsigned int irq, irq_handler_t handler,
172 const char *devname, void __percpu *percpu_dev_id)
173{
174 return request_irq(irq, handler, 0, devname, percpu_dev_id);
175}
176#endif
177 142
178extern void free_irq(unsigned int, void *); 143extern void free_irq(unsigned int, void *);
179extern void free_percpu_irq(unsigned int, void __percpu *); 144extern void free_percpu_irq(unsigned int, void __percpu *);
@@ -221,7 +186,6 @@ extern void enable_irq(unsigned int irq);
221extern void enable_percpu_irq(unsigned int irq, unsigned int type); 186extern void enable_percpu_irq(unsigned int irq, unsigned int type);
222 187
223/* The following three functions are for the core kernel use only. */ 188/* The following three functions are for the core kernel use only. */
224#ifdef CONFIG_GENERIC_HARDIRQS
225extern void suspend_device_irqs(void); 189extern void suspend_device_irqs(void);
226extern void resume_device_irqs(void); 190extern void resume_device_irqs(void);
227#ifdef CONFIG_PM_SLEEP 191#ifdef CONFIG_PM_SLEEP
@@ -229,13 +193,8 @@ extern int check_wakeup_irqs(void);
229#else 193#else
230static inline int check_wakeup_irqs(void) { return 0; } 194static inline int check_wakeup_irqs(void) { return 0; }
231#endif 195#endif
232#else
233static inline void suspend_device_irqs(void) { };
234static inline void resume_device_irqs(void) { };
235static inline int check_wakeup_irqs(void) { return 0; }
236#endif
237 196
238#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS) 197#if defined(CONFIG_SMP)
239 198
240extern cpumask_var_t irq_default_affinity; 199extern cpumask_var_t irq_default_affinity;
241 200
@@ -287,9 +246,8 @@ static inline int irq_set_affinity_hint(unsigned int irq,
287{ 246{
288 return -EINVAL; 247 return -EINVAL;
289} 248}
290#endif /* CONFIG_SMP && CONFIG_GENERIC_HARDIRQS */ 249#endif /* CONFIG_SMP */
291 250
292#ifdef CONFIG_GENERIC_HARDIRQS
293/* 251/*
294 * Special lockdep variants of irq disabling/enabling. 252 * Special lockdep variants of irq disabling/enabling.
295 * These should be used for locking constructs that 253 * These should be used for locking constructs that
@@ -354,33 +312,6 @@ static inline int disable_irq_wake(unsigned int irq)
354 return irq_set_irq_wake(irq, 0); 312 return irq_set_irq_wake(irq, 0);
355} 313}
356 314
357#else /* !CONFIG_GENERIC_HARDIRQS */
358/*
359 * NOTE: non-genirq architectures, if they want to support the lock
360 * validator need to define the methods below in their asm/irq.h
361 * files, under an #ifdef CONFIG_LOCKDEP section.
362 */
363#ifndef CONFIG_LOCKDEP
364# define disable_irq_nosync_lockdep(irq) disable_irq_nosync(irq)
365# define disable_irq_nosync_lockdep_irqsave(irq, flags) \
366 disable_irq_nosync(irq)
367# define disable_irq_lockdep(irq) disable_irq(irq)
368# define enable_irq_lockdep(irq) enable_irq(irq)
369# define enable_irq_lockdep_irqrestore(irq, flags) \
370 enable_irq(irq)
371# endif
372
373static inline int enable_irq_wake(unsigned int irq)
374{
375 return 0;
376}
377
378static inline int disable_irq_wake(unsigned int irq)
379{
380 return 0;
381}
382#endif /* CONFIG_GENERIC_HARDIRQS */
383
384 315
385#ifdef CONFIG_IRQ_FORCED_THREADING 316#ifdef CONFIG_IRQ_FORCED_THREADING
386extern bool force_irqthreads; 317extern bool force_irqthreads;
@@ -655,7 +586,7 @@ void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer)
655 * if more than one irq occurred. 586 * if more than one irq occurred.
656 */ 587 */
657 588
658#if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE) 589#if !defined(CONFIG_GENERIC_IRQ_PROBE)
659static inline unsigned long probe_irq_on(void) 590static inline unsigned long probe_irq_on(void)
660{ 591{
661 return 0; 592 return 0;
diff --git a/include/linux/irq.h b/include/linux/irq.h
index f04d3ba335cb..56bb0dc8b7d4 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -382,8 +382,6 @@ extern void irq_cpu_online(void);
382extern void irq_cpu_offline(void); 382extern void irq_cpu_offline(void);
383extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask); 383extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask);
384 384
385#ifdef CONFIG_GENERIC_HARDIRQS
386
387#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) 385#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ)
388void irq_move_irq(struct irq_data *data); 386void irq_move_irq(struct irq_data *data);
389void irq_move_masked_irq(struct irq_data *data); 387void irq_move_masked_irq(struct irq_data *data);
@@ -802,11 +800,4 @@ static inline void irq_gc_lock(struct irq_chip_generic *gc) { }
802static inline void irq_gc_unlock(struct irq_chip_generic *gc) { } 800static inline void irq_gc_unlock(struct irq_chip_generic *gc) { }
803#endif 801#endif
804 802
805#else /* !CONFIG_GENERIC_HARDIRQS */
806
807extern struct msi_desc *irq_get_msi_desc(unsigned int irq);
808extern int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry);
809
810#endif /* CONFIG_GENERIC_HARDIRQS */
811
812#endif /* _LINUX_IRQ_H */ 803#endif /* _LINUX_IRQ_H */
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
index 623325e2ff97..56fb646909dc 100644
--- a/include/linux/irqdesc.h
+++ b/include/linux/irqdesc.h
@@ -76,8 +76,6 @@ struct irq_desc {
76extern struct irq_desc irq_desc[NR_IRQS]; 76extern struct irq_desc irq_desc[NR_IRQS];
77#endif 77#endif
78 78
79#ifdef CONFIG_GENERIC_HARDIRQS
80
81static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc) 79static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc)
82{ 80{
83 return &desc->irq_data; 81 return &desc->irq_data;
@@ -173,6 +171,5 @@ __irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler)
173 desc->preflow_handler = handler; 171 desc->preflow_handler = handler;
174} 172}
175#endif 173#endif
176#endif
177 174
178#endif 175#endif
diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h
index 0a2dc46cdaf6..fdd5cc16c9c4 100644
--- a/include/linux/irqnr.h
+++ b/include/linux/irqnr.h
@@ -4,23 +4,6 @@
4#include <uapi/linux/irqnr.h> 4#include <uapi/linux/irqnr.h>
5 5
6 6
7#ifndef CONFIG_GENERIC_HARDIRQS
8#include <asm/irq.h>
9
10/*
11 * Wrappers for non-genirq architectures:
12 */
13#define nr_irqs NR_IRQS
14#define irq_to_desc(irq) (&irq_desc[irq])
15
16# define for_each_irq_desc(irq, desc) \
17 for (irq = 0; irq < nr_irqs; irq++)
18
19# define for_each_irq_desc_reverse(irq, desc) \
20 for (irq = nr_irqs - 1; irq >= 0; irq--)
21
22#else /* CONFIG_GENERIC_HARDIRQS */
23
24extern int nr_irqs; 7extern int nr_irqs;
25extern struct irq_desc *irq_to_desc(unsigned int irq); 8extern struct irq_desc *irq_to_desc(unsigned int irq);
26unsigned int irq_get_next_irq(unsigned int offset); 9unsigned int irq_get_next_irq(unsigned int offset);
@@ -50,8 +33,6 @@ unsigned int irq_get_next_irq(unsigned int offset);
50 for (irq = irq_get_next_irq(0); irq < nr_irqs; \ 33 for (irq = irq_get_next_irq(0); irq < nr_irqs; \
51 irq = irq_get_next_irq(irq + 1)) 34 irq = irq_get_next_irq(irq + 1))
52 35
53#endif /* CONFIG_GENERIC_HARDIRQS */
54
55#define for_each_irq_nr(irq) \ 36#define for_each_irq_nr(irq) \
56 for (irq = 0; irq < nr_irqs; irq++) 37 for (irq = 0; irq < nr_irqs; irq++)
57 38
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index ed5f6ed6eb77..51c72be4a7c3 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -36,9 +36,6 @@ struct kernel_cpustat {
36}; 36};
37 37
38struct kernel_stat { 38struct kernel_stat {
39#ifndef CONFIG_GENERIC_HARDIRQS
40 unsigned int irqs[NR_IRQS];
41#endif
42 unsigned long irqs_sum; 39 unsigned long irqs_sum;
43 unsigned int softirqs[NR_SOFTIRQS]; 40 unsigned int softirqs[NR_SOFTIRQS];
44}; 41};
@@ -54,22 +51,6 @@ DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat);
54 51
55extern unsigned long long nr_context_switches(void); 52extern unsigned long long nr_context_switches(void);
56 53
57#ifndef CONFIG_GENERIC_HARDIRQS
58
59struct irq_desc;
60
61static inline void kstat_incr_irqs_this_cpu(unsigned int irq,
62 struct irq_desc *desc)
63{
64 __this_cpu_inc(kstat.irqs[irq]);
65 __this_cpu_inc(kstat.irqs_sum);
66}
67
68static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
69{
70 return kstat_cpu(cpu).irqs[irq];
71}
72#else
73#include <linux/irq.h> 54#include <linux/irq.h>
74extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu); 55extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu);
75 56
@@ -79,8 +60,6 @@ do { \
79 __this_cpu_inc(kstat.irqs_sum); \ 60 __this_cpu_inc(kstat.irqs_sum); \
80} while (0) 61} while (0)
81 62
82#endif
83
84static inline void kstat_incr_softirqs_this_cpu(unsigned int irq) 63static inline void kstat_incr_softirqs_this_cpu(unsigned int irq)
85{ 64{
86 __this_cpu_inc(kstat.softirqs[irq]); 65 __this_cpu_inc(kstat.softirqs[irq]);
@@ -94,20 +73,7 @@ static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu)
94/* 73/*
95 * Number of interrupts per specific IRQ source, since bootup 74 * Number of interrupts per specific IRQ source, since bootup
96 */ 75 */
97#ifndef CONFIG_GENERIC_HARDIRQS
98static inline unsigned int kstat_irqs(unsigned int irq)
99{
100 unsigned int sum = 0;
101 int cpu;
102
103 for_each_possible_cpu(cpu)
104 sum += kstat_irqs_cpu(irq, cpu);
105
106 return sum;
107}
108#else
109extern unsigned int kstat_irqs(unsigned int irq); 76extern unsigned int kstat_irqs(unsigned int irq);
110#endif
111 77
112/* 78/*
113 * Number of interrupts per cpu, since bootup 79 * Number of interrupts per cpu, since bootup
diff --git a/kernel/Makefile b/kernel/Makefile
index 35ef1185e359..1ce47553fb02 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -26,6 +26,7 @@ obj-y += sched/
26obj-y += power/ 26obj-y += power/
27obj-y += printk/ 27obj-y += printk/
28obj-y += cpu/ 28obj-y += cpu/
29obj-y += irq/
29 30
30obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o 31obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
31obj-$(CONFIG_FREEZER) += freezer.o 32obj-$(CONFIG_FREEZER) += freezer.o
@@ -79,7 +80,6 @@ obj-$(CONFIG_KPROBES) += kprobes.o
79obj-$(CONFIG_KGDB) += debug/ 80obj-$(CONFIG_KGDB) += debug/
80obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o 81obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
81obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o 82obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o
82obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
83obj-$(CONFIG_SECCOMP) += seccomp.o 83obj-$(CONFIG_SECCOMP) += seccomp.o
84obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o 84obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
85obj-$(CONFIG_TREE_RCU) += rcutree.o 85obj-$(CONFIG_TREE_RCU) += rcutree.o
diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig
index d1a758bc972a..4a1fef09f658 100644
--- a/kernel/irq/Kconfig
+++ b/kernel/irq/Kconfig
@@ -1,15 +1,4 @@
1# Select this to activate the generic irq options below
2config HAVE_GENERIC_HARDIRQS
3 bool
4
5if HAVE_GENERIC_HARDIRQS
6menu "IRQ subsystem" 1menu "IRQ subsystem"
7#
8# Interrupt subsystem related configuration options
9#
10config GENERIC_HARDIRQS
11 def_bool y
12
13# Options selectable by the architecture code 2# Options selectable by the architecture code
14 3
15# Make sparse irq Kconfig switch below available 4# Make sparse irq Kconfig switch below available
@@ -84,4 +73,3 @@ config SPARSE_IRQ
84 If you don't know what to do here, say N. 73 If you don't know what to do here, say N.
85 74
86endmenu 75endmenu
87endif
diff --git a/kernel/softirq.c b/kernel/softirq.c
index be3d3514c325..53cc09ceb0b8 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -876,7 +876,6 @@ int __init __weak early_irq_init(void)
876 return 0; 876 return 0;
877} 877}
878 878
879#ifdef CONFIG_GENERIC_HARDIRQS
880int __init __weak arch_probe_nr_irqs(void) 879int __init __weak arch_probe_nr_irqs(void)
881{ 880{
882 return NR_IRQS_LEGACY; 881 return NR_IRQS_LEGACY;
@@ -886,4 +885,3 @@ int __init __weak arch_early_irq_init(void)
886{ 885{
887 return 0; 886 return 0;
888} 887}
889#endif
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index c9eef36739a9..06344d986eb9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -597,7 +597,7 @@ endmenu # "Memory Debugging"
597 597
598config DEBUG_SHIRQ 598config DEBUG_SHIRQ
599 bool "Debug shared IRQ handlers" 599 bool "Debug shared IRQ handlers"
600 depends on DEBUG_KERNEL && GENERIC_HARDIRQS 600 depends on DEBUG_KERNEL
601 help 601 help
602 Enable this to generate a spurious interrupt as soon as a shared 602 Enable this to generate a spurious interrupt as soon as a shared
603 interrupt handler is registered, and just before one is deregistered. 603 interrupt handler is registered, and just before one is deregistered.
diff --git a/lib/cpu_rmap.c b/lib/cpu_rmap.c
index 5fbed5caba6e..4f134d8907a7 100644
--- a/lib/cpu_rmap.c
+++ b/lib/cpu_rmap.c
@@ -8,9 +8,7 @@
8 */ 8 */
9 9
10#include <linux/cpu_rmap.h> 10#include <linux/cpu_rmap.h>
11#ifdef CONFIG_GENERIC_HARDIRQS
12#include <linux/interrupt.h> 11#include <linux/interrupt.h>
13#endif
14#include <linux/export.h> 12#include <linux/export.h>
15 13
16/* 14/*
@@ -213,8 +211,6 @@ int cpu_rmap_update(struct cpu_rmap *rmap, u16 index,
213} 211}
214EXPORT_SYMBOL(cpu_rmap_update); 212EXPORT_SYMBOL(cpu_rmap_update);
215 213
216#ifdef CONFIG_GENERIC_HARDIRQS
217
218/* Glue between IRQ affinity notifiers and CPU rmaps */ 214/* Glue between IRQ affinity notifiers and CPU rmaps */
219 215
220struct irq_glue { 216struct irq_glue {
@@ -309,5 +305,3 @@ int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq)
309 return rc; 305 return rc;
310} 306}
311EXPORT_SYMBOL(irq_cpu_rmap_add); 307EXPORT_SYMBOL(irq_cpu_rmap_add);
312
313#endif /* CONFIG_GENERIC_HARDIRQS */
diff --git a/net/Kconfig b/net/Kconfig
index ee0213667272..b50dacc072f0 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -228,7 +228,7 @@ config RPS
228 228
229config RFS_ACCEL 229config RFS_ACCEL
230 boolean 230 boolean
231 depends on RPS && GENERIC_HARDIRQS 231 depends on RPS
232 select CPU_RMAP 232 select CPU_RMAP
233 default y 233 default y
234 234
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 15106c045478..b33b45dfceec 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -107,7 +107,7 @@ config SND_SOC_ALL_CODECS
107 select SND_SOC_WM8782 107 select SND_SOC_WM8782
108 select SND_SOC_WM8804 if SND_SOC_I2C_AND_SPI 108 select SND_SOC_WM8804 if SND_SOC_I2C_AND_SPI
109 select SND_SOC_WM8900 if I2C 109 select SND_SOC_WM8900 if I2C
110 select SND_SOC_WM8903 if I2C && GENERIC_HARDIRQS 110 select SND_SOC_WM8903 if I2C
111 select SND_SOC_WM8904 if I2C 111 select SND_SOC_WM8904 if I2C
112 select SND_SOC_WM8940 if I2C 112 select SND_SOC_WM8940 if I2C
113 select SND_SOC_WM8955 if I2C 113 select SND_SOC_WM8955 if I2C
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index 9855dfc3e3ec..2eea1840315d 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -63,7 +63,7 @@ config SND_SOC_SAMSUNG_SMDK_WM8580
63config SND_SOC_SAMSUNG_SMDK_WM8994 63config SND_SOC_SAMSUNG_SMDK_WM8994
64 tristate "SoC I2S Audio support for WM8994 on SMDK" 64 tristate "SoC I2S Audio support for WM8994 on SMDK"
65 depends on SND_SOC_SAMSUNG 65 depends on SND_SOC_SAMSUNG
66 depends on I2C=y && GENERIC_HARDIRQS 66 depends on I2C=y
67 select MFD_WM8994 67 select MFD_WM8994
68 select SND_SOC_WM8994 68 select SND_SOC_WM8994
69 select SND_SAMSUNG_I2S 69 select SND_SAMSUNG_I2S
@@ -151,7 +151,7 @@ config SND_SOC_SMARTQ
151config SND_SOC_GONI_AQUILA_WM8994 151config SND_SOC_GONI_AQUILA_WM8994
152 tristate "SoC I2S Audio support for AQUILA/GONI - WM8994" 152 tristate "SoC I2S Audio support for AQUILA/GONI - WM8994"
153 depends on SND_SOC_SAMSUNG && (MACH_GONI || MACH_AQUILA) 153 depends on SND_SOC_SAMSUNG && (MACH_GONI || MACH_AQUILA)
154 depends on I2C=y && GENERIC_HARDIRQS 154 depends on I2C=y
155 select SND_SAMSUNG_I2S 155 select SND_SAMSUNG_I2S
156 select MFD_WM8994 156 select MFD_WM8994
157 select SND_SOC_WM8994 157 select SND_SOC_WM8994
@@ -177,7 +177,7 @@ config SND_SOC_SMDK_WM8580_PCM
177config SND_SOC_SMDK_WM8994_PCM 177config SND_SOC_SMDK_WM8994_PCM
178 tristate "SoC PCM Audio support for WM8994 on SMDK" 178 tristate "SoC PCM Audio support for WM8994 on SMDK"
179 depends on SND_SOC_SAMSUNG 179 depends on SND_SOC_SAMSUNG
180 depends on I2C=y && GENERIC_HARDIRQS 180 depends on I2C=y
181 select MFD_WM8994 181 select MFD_WM8994
182 select SND_SOC_WM8994 182 select SND_SOC_WM8994
183 select SND_SAMSUNG_PCM 183 select SND_SAMSUNG_PCM