Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm
[firefly-linux-kernel-4.4.55.git] / arch / arm / Kconfig
index cd5c1c97b043800b5842a05346272d09528bcb8a..d13f6743df4bec9c9c1f8052d2c5985f9784fd87 100644 (file)
@@ -3,20 +3,21 @@ config ARM
        default y
        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
-       select ARCH_HAVE_CUSTOM_GPIO_H
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
+       select ARCH_HAVE_CUSTOM_GPIO_H
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_EXTABLE_SORT if MMU
+       select CLONE_BACKWARDS
        select CPU_PM if (SUSPEND || CPU_IDLE)
        select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU
        select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
+       select GENERIC_IDLE_POLL_SETUP
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
        select GENERIC_PCI_IOMAP
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
-       select GENERIC_IDLE_POLL_SETUP
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select HARDIRQS_SW_RESEND
@@ -25,6 +26,7 @@ config ARM
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ARCH_TRACEHOOK
        select HAVE_BPF_JIT
+       select HAVE_CONTEXT_TRACKING
        select HAVE_C_RECORDMCOUNT
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DMA_API_DEBUG
@@ -47,21 +49,22 @@ config ARM
        select HAVE_KPROBES if !XIP_KERNEL
        select HAVE_KRETPROBES if (HAVE_KPROBES)
        select HAVE_MEMBLOCK
+       select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND
        select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
        select HAVE_PERF_EVENTS
        select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_UID16
+       select IRQ_FORCED_THREADING
        select KTIME_SCALAR
+       select MODULES_USE_ELF_REL
+       select OLD_SIGACTION
+       select OLD_SIGSUSPEND3
        select PERF_USE_VMALLOC
        select RTC_LIB
        select SYS_SUPPORTS_APM_EMULATION
-       select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND
-       select MODULES_USE_ELF_REL
-       select CLONE_BACKWARDS
-       select OLD_SIGSUSPEND3
-       select OLD_SIGACTION
-       select HAVE_CONTEXT_TRACKING
+       # Above selects are sorted alphabetically; please add new ones
+       # according to that.  Thanks.
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@ -385,8 +388,8 @@ config ARCH_GEMINI
        bool "Cortina Systems Gemini"
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
-       select NEED_MACH_GPIO_H
        select CPU_FA526
+       select NEED_MACH_GPIO_H
        help
          Support for the Cortina Systems Gemini family SoCs
 
@@ -441,7 +444,6 @@ config ARCH_NETX
 config ARCH_IOP13XX
        bool "IOP13xx-based"
        depends on MMU
-       select ARCH_SUPPORTS_MSI
        select CPU_XSC3
        select NEED_MACH_MEMORY_H
        select NEED_RET_TO_USER
@@ -487,8 +489,8 @@ config ARCH_IXP4XX
        select GENERIC_CLOCKEVENTS
        select MIGHT_HAVE_PCI
        select NEED_MACH_IO_H
-       select USB_EHCI_BIG_ENDIAN_MMIO
        select USB_EHCI_BIG_ENDIAN_DESC
+       select USB_EHCI_BIG_ENDIAN_MMIO
        help
          Support for Intel's IXP4XX (XScale) family of processors.
 
@@ -498,11 +500,11 @@ config ARCH_DOVE
        select CPU_PJ4
        select GENERIC_CLOCKEVENTS
        select MIGHT_HAVE_PCI
+       select MVEBU_MBUS
        select PINCTRL
        select PINCTRL_DOVE
        select PLAT_ORION_LEGACY
        select USB_ARCH_HAS_EHCI
-       select MVEBU_MBUS
        help
          Support for the Marvell Dove SoC 88AP510
 
@@ -512,12 +514,12 @@ config ARCH_KIRKWOOD
        select ARCH_REQUIRE_GPIOLIB
        select CPU_FEROCEON
        select GENERIC_CLOCKEVENTS
+       select MVEBU_MBUS
        select PCI
        select PCI_QUIRKS
        select PINCTRL
        select PINCTRL_KIRKWOOD
        select PLAT_ORION_LEGACY
-       select MVEBU_MBUS
        help
          Support for the following Marvell Kirkwood series SoCs:
          88F6180, 88F6192 and 88F6281.
@@ -527,9 +529,9 @@ config ARCH_MV78XX0
        select ARCH_REQUIRE_GPIOLIB
        select CPU_FEROCEON
        select GENERIC_CLOCKEVENTS
+       select MVEBU_MBUS
        select PCI
        select PLAT_ORION_LEGACY
-       select MVEBU_MBUS
        help
          Support for the following Marvell MV78xx0 series SoCs:
          MV781x0, MV782x0.
@@ -540,9 +542,9 @@ config ARCH_ORION5X
        select ARCH_REQUIRE_GPIOLIB
        select CPU_FEROCEON
        select GENERIC_CLOCKEVENTS
+       select MVEBU_MBUS
        select PCI
        select PLAT_ORION_LEGACY
-       select MVEBU_MBUS
        help
          Support for the following Marvell Orion 5x series SoCs:
          Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
@@ -557,6 +559,7 @@ config ARCH_MMP
        select GENERIC_CLOCKEVENTS
        select GPIO_PXA
        select IRQ_DOMAIN
+       select MULTI_IRQ_HANDLER
        select NEED_MACH_GPIO_H
        select PINCTRL
        select PLAT_PXA
@@ -630,6 +633,7 @@ config ARCH_MSM
        bool "Qualcomm MSM"
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
+       select CLKSRC_OF if OF
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
        help
@@ -645,7 +649,7 @@ config ARCH_SHMOBILE
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
        select HAVE_ARM_SCU if SMP
-       select HAVE_ARM_TWD if LOCAL_TIMERS
+       select HAVE_ARM_TWD if SMP
        select HAVE_CLK
        select HAVE_MACH_CLKDEV
        select HAVE_SMP
@@ -700,7 +704,7 @@ config ARCH_S3C24XX
        select ARCH_HAS_CPUFREQ
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
-       select CLKSRC_MMIO
+       select CLKSRC_SAMSUNG_PWM
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
        select HAVE_CLK
@@ -723,7 +727,7 @@ config ARCH_S3C64XX
        select ARCH_REQUIRE_GPIOLIB
        select ARM_VIC
        select CLKDEV_LOOKUP
-       select CLKSRC_MMIO
+       select CLKSRC_SAMSUNG_PWM
        select CPU_V6
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
@@ -739,7 +743,6 @@ config ARCH_S3C64XX
        select SAMSUNG_ATAGS
        select SAMSUNG_CLKSRC
        select SAMSUNG_GPIOLIB_4BIT
-       select SAMSUNG_IRQ_VIC_TIMER
        select SAMSUNG_WDT_RESET
        select USB_ARCH_HAS_OHCI
        help
@@ -748,7 +751,7 @@ config ARCH_S3C64XX
 config ARCH_S5P64X0
        bool "Samsung S5P6440 S5P6450"
        select CLKDEV_LOOKUP
-       select CLKSRC_MMIO
+       select CLKSRC_SAMSUNG_PWM
        select CPU_V6
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
@@ -757,8 +760,8 @@ config ARCH_S5P64X0
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
        select NEED_MACH_GPIO_H
-       select SAMSUNG_WDT_RESET
        select SAMSUNG_ATAGS
+       select SAMSUNG_WDT_RESET
        help
          Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
          SMDK6450.
@@ -767,7 +770,7 @@ config ARCH_S5PC100
        bool "Samsung S5PC100"
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
-       select CLKSRC_MMIO
+       select CLKSRC_SAMSUNG_PWM
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
@@ -776,8 +779,8 @@ config ARCH_S5PC100
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
        select NEED_MACH_GPIO_H
-       select SAMSUNG_WDT_RESET
        select SAMSUNG_ATAGS
+       select SAMSUNG_WDT_RESET
        help
          Samsung S5PC100 series based systems
 
@@ -787,7 +790,7 @@ config ARCH_S5PV210
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_SPARSEMEM_ENABLE
        select CLKDEV_LOOKUP
-       select CLKSRC_MMIO
+       select CLKSRC_SAMSUNG_PWM
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
@@ -1372,6 +1375,15 @@ config ARM_ERRATA_798181
          which sends an IPI to the CPUs that are running the same ASID
          as the one being invalidated.
 
+config ARM_ERRATA_773022
+       bool "ARM errata: incorrect instructions may be executed from loop buffer"
+       depends on CPU_V7
+       help
+         This option enables the workaround for the 773022 Cortex-A15
+         (up to r0p4) erratum. In certain rare sequences of code, the
+         loop buffer may deliver incorrect instructions. This
+         workaround disables the loop buffer to avoid the erratum.
+
 endmenu
 
 source "arch/arm/common/Kconfig"
@@ -1584,23 +1596,13 @@ config ARM_PSCI
          0022A ("Power State Coordination Interface System Software on
          ARM processors").
 
-config LOCAL_TIMERS
-       bool "Use local timer interrupts"
-       depends on SMP
-       default y
-       help
-         Enable support for local timers on SMP platforms, rather then the
-         legacy IPI broadcast method.  Local timers allows the system
-         accounting to be spread across the timer interval, preventing a
-         "thundering herd" at every timer tick.
-
 # The GPIO number here must be sorted by descending number. In case of
 # a multiplatform kernel, we just want the highest value required by the
 # selected platforms.
 config ARCH_NR_GPIO
        int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
-       default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5
+       default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX
        default 392 if ARCH_U8500
        default 352 if ARCH_VT8500
        default 288 if ARCH_SUNXI
@@ -1613,13 +1615,50 @@ config ARCH_NR_GPIO
 
 source kernel/Kconfig.preempt
 
-config HZ
+config HZ_FIXED
        int
        default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
                ARCH_S5PV210 || ARCH_EXYNOS4
        default AT91_TIMER_HZ if ARCH_AT91
        default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
-       default 100
+       default 0
+
+choice
+       depends on HZ_FIXED = 0
+       prompt "Timer frequency"
+
+config HZ_100
+       bool "100 Hz"
+
+config HZ_200
+       bool "200 Hz"
+
+config HZ_250
+       bool "250 Hz"
+
+config HZ_300
+       bool "300 Hz"
+
+config HZ_500
+       bool "500 Hz"
+
+config HZ_1000
+       bool "1000 Hz"
+
+endchoice
+
+config HZ
+       int
+       default HZ_FIXED if HZ_FIXED != 0
+       default 100 if HZ_100
+       default 200 if HZ_200
+       default 250 if HZ_250
+       default 300 if HZ_300
+       default 500 if HZ_500
+       default 1000
+
+config SCHED_HRTICK
+       def_bool HIGH_RES_TIMERS
 
 config SCHED_HRTICK
        def_bool HIGH_RES_TIMERS
@@ -1756,6 +1795,9 @@ config HAVE_ARCH_TRANSPARENT_HUGEPAGE
        def_bool y
        depends on ARM_LPAE
 
+config ARCH_WANT_GENERAL_HUGETLB
+       def_bool y
+
 source "mm/Kconfig"
 
 config FORCE_MAX_ZONEORDER
@@ -2174,6 +2216,13 @@ config NEON
          Say Y to include support code for NEON, the ARMv7 Advanced SIMD
          Extension.
 
+config KERNEL_MODE_NEON
+       bool "Support for NEON in kernel mode"
+       default n
+       depends on NEON
+       help
+         Say Y to include support for NEON in kernel mode.
+
 endmenu
 
 menu "Userspace binary formats"
@@ -2198,7 +2247,7 @@ source "kernel/power/Kconfig"
 
 config ARCH_SUSPEND_POSSIBLE
        depends on !ARCH_S5PC100
-       depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
+       depends on CPU_ARM920T || CPU_ARM926T || CPU_FEROCEON || CPU_SA1100 || \
                CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
        def_bool y