Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / Kconfig
index 49d993cee51232874a81814fe39ca99e09b88bad..78e54d1d111dd96ad38afef76e0258881337c583 100644 (file)
@@ -4,8 +4,10 @@ config ARM
        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select ARCH_HAVE_CUSTOM_GPIO_H
        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select ARCH_HAVE_CUSTOM_GPIO_H
+       select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_WANT_IPC_PARSE_VERSION
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_WANT_IPC_PARSE_VERSION
+       select ARM_HAS_SG_CHAIN if (ARCH_MT6589 || ARCH_MT6582 || ARCH_MT6572 || ARCH_MT8135 || ARCH_MT6595 || ARCH_MT6795 || ARCH_MT6752 || ARCH_MT8127)
        select BUILDTIME_EXTABLE_SORT if MMU
        select CPU_PM if (SUSPEND || CPU_IDLE)
        select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU
        select BUILDTIME_EXTABLE_SORT if MMU
        select CPU_PM if (SUSPEND || CPU_IDLE)
        select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU
@@ -14,12 +16,12 @@ config ARM
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
        select GENERIC_PCI_IOMAP
        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
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_IDLE_POLL_SETUP
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select HARDIRQS_SW_RESEND
-       select HAVE_AOUT
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP_FILTER
@@ -61,6 +63,7 @@ config ARM
        select OLD_SIGSUSPEND3
        select OLD_SIGACTION
        select HAVE_CONTEXT_TRACKING
        select OLD_SIGSUSPEND3
        select OLD_SIGACTION
        select HAVE_CONTEXT_TRACKING
+       select CRYPTO_AES_ARM if (ARCH_MT6752)
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@ -213,7 +216,8 @@ config VECTORS_BASE
        default DRAM_BASE if REMAP_VECTORS_TO_RAM
        default 0x00000000
        help
        default DRAM_BASE if REMAP_VECTORS_TO_RAM
        default 0x00000000
        help
-         The base address of exception vectors.
+         The base address of exception vectors.  This must be two pages
+         in size.
 
 config ARM_PATCH_PHYS_VIRT
        bool "Patch physical to virtual translations at runtime" if EMBEDDED
 
 config ARM_PATCH_PHYS_VIRT
        bool "Patch physical to virtual translations at runtime" if EMBEDDED
@@ -632,6 +636,138 @@ config ARCH_MSM
          stack and controls some vital subsystems
          (clock and power control, etc).
 
          stack and controls some vital subsystems
          (clock and power control, etc).
 
+config ARCH_MT6572
+       bool "MediaTek MT6572"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select VFP_OPT
+       help
+         This enable support for MediaTek MT6572
+
+config ARCH_MT6595
+       bool "MediaTek MT6595"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select FIQ_GLUE
+       select IRQ_DOMAIN
+       select IRQ_DOMAIN_DEBUG
+       select ARCH_REQUIRE_GPIOLIB
+       select ARM_ERRATA_828419
+       select ARM_ERRATA_828420
+       select ARM_ERRATA_831171
+       select VFP_OPT
+       select MTK_CPU_STRESS
+       select MTK_LASTPC
+       select MTK_SYSTRACKER
+       select ZONE_DMA if ARM_LPAE
+       help
+         This enable support for MediaTek MT6595
+
+config ARCH_MT6582
+       bool "MediaTek MT6582"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select L1C_OPT
+       select VFP_OPT
+       select HAVE_TRUSTONIC_TEE_SUPPORT
+       select MTK_CPU_STRESS
+       select MTK_DBG_DUMP
+       select MTK_KERNEL_IN_SECURE_MODE if ((!TRUSTONIC_TEE_SUPPORT) && (!ARM_PSCI))
+       select FIQ_GLUE if TRUSTONIC_TEE_SUPPORT
+       help
+         This enable support for MediaTek MT6582.
+
+config ARCH_MT6592
+       bool "MediaTek MT6592"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select ARM_HAS_SG_CHAIN
+       select VFP_OPT
+       select HAVE_TRUSTONIC_TEE_SUPPORT
+       select L1C_OPT
+       help
+         This enable support for MediaTek MT6592.
+
+config ARCH_MT6752
+       bool "MediaTek MT6752"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select IRQ_DOMAIN
+       select IRQ_DOMAIN_DEBUG
+       select GENERIC_SCHED_CLOCK
+       select VFP_OPT
+       select MTK_SYSTRACKER
+       select MTK_L2C_SHARE
+       select ARM_ERRATA_824069
+       select ARM_ERRATA_826319
+       select ARCH_REQUIRE_GPIOLIB
+       select MTK_EIC
+       select MTK_ETM
+       help
+         This enable support for MediaTek MT6752
+
+config ARCH_MT6795
+       bool "MediaTek MT6795"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select FIQ_GLUE
+       select IRQ_DOMAIN
+       select IRQ_DOMAIN_DEBUG
+       select GENERIC_SCHED_CLOCK
+       select ARM_ERRATA_828419
+       select ARM_ERRATA_828420
+       select VFP_OPT
+       help
+         This enable support for MediaTek MT6795
+
+config ARCH_MT8127
+       bool "MediaTek MT8127"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_CPUFREQ
+       select ARM_AMBA
+       select CPU_V7
+       select HAVE_SMP
+       select NEED_MACH_MEMORY_H
+       select FIQ_GLUE
+       select IRQ_DOMAIN
+       select IRQ_DOMAIN_DEBUG
+       select ARCH_REQUIRE_GPIOLIB
+       select VFP_OPT
+       select HAVE_MTK_IN_HOUSE_TEE_SUPPORT
+       help
+         This enable support for MediaTek MT8127
+
 config ARCH_SHMOBILE
        bool "Renesas SH-Mobile / R-Mobile"
        select CLKDEV_LOOKUP
 config ARCH_SHMOBILE
        bool "Renesas SH-Mobile / R-Mobile"
        select CLKDEV_LOOKUP
@@ -954,6 +1090,24 @@ source "arch/arm/mach-ks8695/Kconfig"
 
 source "arch/arm/mach-msm/Kconfig"
 
 
 source "arch/arm/mach-msm/Kconfig"
 
+if ARCH_MT6572
+#source "arch/arm/mach-mt6572/Kconfig"
+endif
+
+if ARCH_MT6582
+#source "arch/arm/mach-mt6582/Kconfig"
+endif
+
+if ARCH_MT6592
+#source "arch/arm/mach-mt6592/Kconfig"
+endif
+
+if ARCH_MT8127
+source "arch/arm/mach-mt8127/Kconfig"
+endif
+
+source "drivers/misc/mediatek/mach/Kconfig"
+
 source "arch/arm/mach-mv78xx0/Kconfig"
 
 source "arch/arm/mach-imx/Kconfig"
 source "arch/arm/mach-mv78xx0/Kconfig"
 
 source "arch/arm/mach-imx/Kconfig"
@@ -1087,6 +1241,31 @@ if !MMU
 source "arch/arm/Kconfig-nommu"
 endif
 
 source "arch/arm/Kconfig-nommu"
 endif
 
+config MTK_KERNEL_IN_SECURE_MODE
+       bool "MTK's kernel runs in secure mode"
+       depends on ((!TRUSTONIC_TEE_SUPPORT) && (!ARM_PSCI))
+       help
+         Indication to kernel's mode. (secure or non-secure)
+
+config L1C_OPT
+       bool "MTK's cache operation fixup"
+       help
+         Use two stages of cache operations to do flush
+
+config PJ4B_ERRATA_4742
+       bool "PJ4B Errata 4742: IDLE Wake Up Commands can Cause the CPU Core to Cease Operation"
+       depends on CPU_PJ4B && MACH_ARMADA_370
+       default y
+       help
+         When coming out of either a Wait for Interrupt (WFI) or a Wait for
+         Event (WFE) IDLE states, a specific timing sensitivity exists between
+         the retiring WFI/WFE instructions and the newly issued subsequent
+         instructions.  This sensitivity can result in a CPU hang scenario.
+         Workaround:
+         The software must insert either a Data Synchronization Barrier (DSB)
+         or Data Memory Barrier (DMB) command immediately after the WFI/WFE
+         instruction
+
 config ARM_ERRATA_326103
        bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
        depends on CPU_V6
 config ARM_ERRATA_326103
        bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
        depends on CPU_V6
@@ -1189,6 +1368,16 @@ config PL310_ERRATA_588369
           is not correctly implemented in PL310 as clean lines are not
           invalidated as a result of these operations.
 
           is not correctly implemented in PL310 as clean lines are not
           invalidated as a result of these operations.
 
+config ARM_ERRATA_643719
+       bool "ARM errata: LoUIS bit field in CLIDR register is incorrect"
+       depends on CPU_V7 && SMP
+       help
+         This option enables the workaround for the 643719 Cortex-A9 (prior to
+         r1p0) erratum. On affected cores the LoUIS bit field of the CLIDR
+         register returns zero when it should return one. The workaround
+         corrects this value, ensuring cache maintenance operations which use
+         it behave as intended and avoiding data corruption.
+
 config ARM_ERRATA_720789
        bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
        depends on CPU_V7
 config ARM_ERRATA_720789
        bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
        depends on CPU_V7
@@ -1332,6 +1521,52 @@ config ARM_ERRATA_798181
          which sends an IPI to the CPUs that are running the same ASID
          as the one being invalidated.
 
          which sends an IPI to the CPUs that are running the same ASID
          as the one being invalidated.
 
+config ARM_ERRATA_828419
+       def_bool n
+       depends on CPU_V7 && SMP
+       help
+         ARM errata: A Instruction Cache Maintenance Operation by MVA with an incorrect NS descriptor
+         This workaround is to replace ICIMVAU operations by ICIALLUIS operations
+
+config ARM_ERRATA_828420
+       def_bool n
+       depends on CPU_V7 && SMP
+       help
+         ARM errata: Cache Clean by MVA to PoC might not be correctly executed
+         The software workaround is to treat every Data Clean by MVA to PoC
+         as Data Clean Invalidate by MVA to PoC.
+
+config ARM_ERRATA_831171
+       def_bool n
+       depends on CPU_V7 && SMP
+       help
+         ARM errata: Within rare timing constraints, a DSB following a TLB or ICache invalidation might complete 
+         before the TLB or ICache invalidation has effectively completed on other CPUs within the cluster
+         The software workaround is to issue the TLB or ICache maintenance invalidation twice before the DSB
+
+config ARM_ERRATA_824069
+       def_bool n
+       depends on SMP
+       help
+         This option enables the workaround for erratum 824069 
+         affecting Cortex-A53 MPCore with two or more processors (r0p0..r0p2). 
+         If a Cortex-A53 processor is executing a store or PLDW instruction at the same time
+         as a processor in another cluster is executing a cache maintenance operation
+         to the same address, then this erratum might cause a clean cache line to be
+         incorrectly marked as dirty. This workaround replaces all cache clean opeartion
+         to clean & invalidate.
+                                                               
+config ARM_ERRATA_826319
+       def_bool n
+       depends on SMP
+       help
+         This option enables the workaround for erratum 826319
+         affecting Cortex-A53 MPCore with two or more processors (r0p0..r0p2).
+         This erratum only affects configurations of the Cortex-A53 processor with an ABMA 4 ACE or AXI master interface and an L2 cache.
+         To be affected by this erratum, the system that Cortex-A53 is connected to must also contain a peripheral or
+         other component that contains a dependency between the read and write channels. The dependency must
+         prevent the peripheral from accepting or responding to a write until it finishes processing a read.
+
 endmenu
 
 source "arch/arm/common/Kconfig"
 endmenu
 
 source "arch/arm/common/Kconfig"
@@ -1470,6 +1705,178 @@ config SCHED_SMT
          MultiThreading at a cost of slightly increased overhead in some
          places. If unsure say N here.
 
          MultiThreading at a cost of slightly increased overhead in some
          places. If unsure say N here.
 
+config DISABLE_CPU_SCHED_DOMAIN_BALANCE
+       bool "(EXPERIMENTAL) Disable CPU level scheduler load-balancing"
+       help
+         Disables scheduler load-balancing at CPU sched domain level.
+
+config SCHED_HMP
+       bool "(EXPERIMENTAL) Heterogenous multiprocessor scheduling"
+       depends on DISABLE_CPU_SCHED_DOMAIN_BALANCE && SCHED_MC && FAIR_GROUP_SCHED && !SCHED_AUTOGROUP
+       help
+         Experimental scheduler optimizations for heterogeneous platforms.
+         Attempts to introspectively select task affinity to optimize power
+         and performance. Basic support for multiple (>2) cpu types is in place,
+         but it has only been tested with two types of cpus.
+         There is currently no support for migration of task groups, hence
+         !SCHED_AUTOGROUP. Furthermore, normal load-balancing must be disabled
+         between cpus of different type (DISABLE_CPU_SCHED_DOMAIN_BALANCE).
+
+config SCHED_HMP_PRIO_FILTER
+       bool "(EXPERIMENTAL) Filter HMP migrations by task priority"
+       depends on SCHED_HMP
+       help
+         Enables task priority based HMP migration filter. Any task with
+         a NICE value above the threshold will always be on low-power cpus
+         with less compute capacity.
+
+config SCHED_HMP_PRIO_FILTER_VAL
+       int "NICE priority threshold"
+       default 5
+       depends on SCHED_HMP_PRIO_FILTER
+
+config HMP_FAST_CPU_MASK
+       string "HMP scheduler fast CPU mask"
+       depends on SCHED_HMP
+       help
+          Leave empty to use device tree information.
+         Specify the cpuids of the fast CPUs in the system as a list string,
+         e.g. cpuid 0+1 should be specified as 0-1.
+
+config HMP_SLOW_CPU_MASK
+       string "HMP scheduler slow CPU mask"
+       depends on SCHED_HMP
+       help
+         Leave empty to use device tree information.
+         Specify the cpuids of the slow CPUs in the system as a list string,
+         e.g. cpuid 0+1 should be specified as 0-1.
+
+config HMP_VARIABLE_SCALE
+       bool "Allows changing the load tracking scale through sysfs"
+       depends on SCHED_HMP
+       help
+         When turned on, this option exports the thresholds and load average
+         period value for the load tracking patches through sysfs.
+         The values can be modified to change the rate of load accumulation
+         and the thresholds used for HMP migration.
+         The load_avg_period_ms is the time in ms to reach a load average of
+         0.5 for an idle task of 0 load average ratio that start a busy loop.
+         The up_threshold and down_threshold is the value to go to a faster
+         CPU or to go back to a slower cpu.
+         The {up,down}_threshold are devided by 1024 before being compared
+         to the load average.
+         For examples, with load_avg_period_ms = 128 and up_threshold = 512,
+         a running task with a load of 0 will be migrated to a bigger CPU after
+         128ms, because after 128ms its load_avg_ratio is 0.5 and the real
+         up_threshold is 0.5.
+         This patch has the same behavior as changing the Y of the load
+         average computation to
+               (1002/1024)^(LOAD_AVG_PERIOD/load_avg_period_ms)
+         but it remove intermadiate overflows in computation.
+
+config MET_SCHED_HMP
+       bool "(EXPERIMENTAL) MET SCHED HMP Info"
+       depends on SCHED_HMP_ENHANCEMENT
+       depends on HMP_TRACER
+       help
+         MET SCHED HMP Info
+
+config HMP_FREQUENCY_INVARIANT_SCALE
+       bool "(EXPERIMENTAL) Frequency-Invariant Tracked Load for HMP"
+       depends on HMP_VARIABLE_SCALE && CPU_FREQ
+       depends on !ARCH_SCALE_INVARIANT_CPU_CAPACITY
+       help
+         Scales the current load contribution in line with the frequency
+         of the CPU that the task was executed on.
+         In this version, we use a simple linear scale derived from the
+         maximum frequency reported by CPUFreq.
+         Restricting tracked load to be scaled by the CPU's frequency
+         represents the consumption of possible compute capacity
+         (rather than consumption of actual instantaneous capacity as
+         normal) and allows the HMP migration's simple threshold
+         migration strategy to interact more predictably with CPUFreq's
+         asynchronous compute capacity changes.
+
+config SCHED_HMP_ENHANCEMENT
+       bool "(EXPERIMENTAL) HMP Ennhancement"
+       depends on SCHED_HMP
+       help
+         HMP Ennhancement
+
+config HMP_TRACER
+       bool "(EXPERIMENTAL) Profile HMP scheduler"
+       depends on SCHED_HMP_ENHANCEMENT
+       help
+         Profile HMP scheduler
+
+config HMP_DYNAMIC_THRESHOLD
+       bool "(EXPERIMENTAL) Dynamically adjust task migration threshold"
+       depends on SCHED_HMP_ENHANCEMENT
+       help
+         Dynamically adjust task migration threshold according to current system load
+
+config HMP_GLOBAL_BALANCE
+       bool "(EXPERIMENTAL) Enhance HMP global load balance"
+       depends on SCHED_HMP_ENHANCEMENT
+       help
+         Enhance HMP global load balance
+
+config HMP_TASK_ASSIGNMENT
+       bool "(EXPERIMENTAL) Enhance HMP task assignment"
+       depends on SCHED_HMP_ENHANCEMENT
+       help
+         Enhance HMP task assignment
+
+config HMP_DISCARD_CFS_SELECTION_RESULT
+       bool "(EXPERIMENTAL) Discard CFS runqueue selection result"
+       depends on SCHED_HMP_ENHANCEMENT && HMP_TASK_ASSIGNMENT
+       help
+         Discard CFS runqueue selection result even if only one cluster exists
+
+config HMP_PACK_SMALL_TASK
+       bool "(EXPERIMENTAL) Packing Small Tasks"
+       depends on SCHED_HMP_ENHANCEMENT
+       help
+               This option enables Packing Small Tasks
+
+config HMP_PACK_BUDDY_INFO
+       bool "(EXPERIMENTAL) Packing Small Tasks Buddy Information Log"
+       depends on SCHED_HMP_ENHANCEMENT && HMP_PACK_SMALL_TASK
+       help
+               This option enables Packing Small Tasks Buddy Information Log
+    
+config HMP_LAZY_BALANCE
+       bool "(EXPERIMENTAL) Lazy Balance"
+       depends on SCHED_HMP_ENHANCEMENT && HMP_PACK_SMALL_TASK
+       help
+               This option enables Lazy Balance
+    
+config HMP_POWER_AWARE_CONTROLLER
+       bool "(EXPERIMENTAL) Power-aware Scheduler for b.L MP Controller"
+       depends on SCHED_HMP_ENHANCEMENT && HMP_PACK_SMALL_TASK && HMP_LAZY_BALANCE
+       help
+               Power-aware scheduler for b.L MP controller and status interface
+
+config HEVTASK_INTERFACE
+       bool "task status interface"
+       help
+         The option provide an interface to show task status
+         
+config ARCH_SCALE_INVARIANT_CPU_CAPACITY
+       bool "(EXPERIMENTAL) Scale-Invariant CPU Compute Capacity Recording"
+       depends on CPU_FREQ
+       help
+         Provides a new measure of maximum and instantaneous CPU compute
+         capacity, derived from a table of relative compute performance
+         for each core type present in the system. The table is an
+         estimate and specific core performance may be different for
+         any particular workload. The measure includes the relative
+         performance and a linear scale of current to maximum frequency
+         such that at maximum frequency (as expressed in the DTB) the
+         reported compute capacity will be equal to the estimated
+         performance from the table. Values range between 0 and 1023 where
+         1023 is the highest capacity available in the system.
+
 config HAVE_ARM_SCU
        bool
        help
 config HAVE_ARM_SCU
        bool
        help
@@ -1547,6 +1954,7 @@ config LOCAL_TIMERS
        bool "Use local timer interrupts"
        depends on SMP
        default y
        bool "Use local timer interrupts"
        depends on SMP
        default y
+       select HAVE_ARM_TWD if (!ARCH_MSM_SCORPIONMP && !EXYNOS4_MCT && !ARCH_MT6589 && !ARCH_MT6582 && !ARCH_MT8135 && !ARCH_MT6592 && !ARCH_MT6595 && !ARCH_MT6795 && !ARCH_MT6752 && !ARCH_MT8127 && !ARCH_MT6572)
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
@@ -1795,6 +2203,15 @@ config XEN
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 
+config ARM_FLUSH_CONSOLE_ON_RESTART
+       bool "Force flush the console on restart"
+       help
+         If the console is locked while the system is rebooted, the messages
+         in the temporary logbuffer would not have propogated to all the
+         console drivers. This option forces the console lock to be
+         released if it failed to be acquired, which will cause all the
+         pending messages to be flushed.
+
 endmenu
 
 menu "Boot options"
 endmenu
 
 menu "Boot options"
@@ -1804,6 +2221,7 @@ config USE_OF
        select IRQ_DOMAIN
        select OF
        select OF_EARLY_FLATTREE
        select IRQ_DOMAIN
        select OF
        select OF_EARLY_FLATTREE
+       select OF_RESERVED_MEM
        help
          Include support for flattened device tree machine descriptions.
 
        help
          Include support for flattened device tree machine descriptions.
 
@@ -1824,6 +2242,21 @@ config DEPRECATED_PARAM_STRUCT
          This was deprecated in 2001 and announced to live on for 5 years.
          Some old boot loaders still use this way.
 
          This was deprecated in 2001 and announced to live on for 5 years.
          Some old boot loaders still use this way.
 
+config BUILD_ARM_APPENDED_DTB_IMAGE
+       bool "Build a concatenated zImage/dtb by default"
+       depends on OF
+       help
+         Enabling this option will cause a concatenated zImage and list of
+         DTBs to be built by default (instead of a standalone zImage.)
+         The image will built in arch/arm/boot/zImage-dtb
+
+config BUILD_ARM_APPENDED_DTB_IMAGE_NAMES
+       string "Default dtb names"
+       depends on BUILD_ARM_APPENDED_DTB_IMAGE
+       help
+         Space separated list of names of dtbs to append when
+         building a concatenated zImage-dtb.
+
 # Compressed boot loader in ROM.  Yes, we really want to ask about
 # TEXT and BSS so we preserve their values in the config files.
 config ZBOOT_ROM_TEXT
 # Compressed boot loader in ROM.  Yes, we really want to ask about
 # TEXT and BSS so we preserve their values in the config files.
 config ZBOOT_ROM_TEXT
@@ -1857,6 +2290,14 @@ config ZBOOT_ROM
          Say Y here if you intend to execute your compressed kernel image
          (zImage) directly from ROM or flash.  If unsure, say N.
 
          Say Y here if you intend to execute your compressed kernel image
          (zImage) directly from ROM or flash.  If unsure, say N.
 
+config COMPAT_CPUINFO
+       bool "Show /proc/cpuinfo in old form"
+       default n
+       help
+         Show old style /proc/cpuinfo. Do not show cpu features with each
+         cpu cores.
+         If unsure, say N
+
 choice
        prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)"
        depends on ZBOOT_ROM && ARCH_SH7372
 choice
        prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)"
        depends on ZBOOT_ROM && ARCH_SH7372
@@ -2006,7 +2447,7 @@ config XIP_PHYS_ADDR
 
 config KEXEC
        bool "Kexec system call (EXPERIMENTAL)"
 
 config KEXEC
        bool "Kexec system call (EXPERIMENTAL)"
-       depends on (!SMP || HOTPLUG_CPU)
+       depends on (!SMP || PM_SLEEP_SMP)
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
@@ -2038,6 +2479,14 @@ config CRASH_DUMP
 
          For more details see Documentation/kdump/kdump.txt
 
 
          For more details see Documentation/kdump/kdump.txt
 
+config RESTART_DISABLE_CACHE
+        bool "Disable cache in arm_machine_restart"
+       default y
+        help
+          Whther to disable DCache in arm_machine_restart().
+          This is a temporary solution before MTK change to use new kernel
+          restart flow.
+
 config AUTO_ZRELADDR
        bool "Auto calculation of the decompressed kernel image address"
        depends on !ZBOOT_ROM && !ARCH_U300
 config AUTO_ZRELADDR
        bool "Auto calculation of the decompressed kernel image address"
        depends on !ZBOOT_ROM && !ARCH_U300
@@ -2161,6 +2610,12 @@ config VFP
 
          Say N if your target does not have VFP hardware.
 
 
          Say N if your target does not have VFP hardware.
 
+config VFP_OPT
+       def_bool n
+       depends on VFP
+       help
+         Say Y if you want to enable VFP/NEON always
+
 config VFPv3
        bool
        depends on VFP
 config VFPv3
        bool
        depends on VFP
@@ -2204,6 +2659,11 @@ config ARCH_SUSPEND_POSSIBLE
 config ARM_CPU_SUSPEND
        def_bool PM_SLEEP
 
 config ARM_CPU_SUSPEND
        def_bool PM_SLEEP
 
+config ARCH_HIBERNATION_POSSIBLE
+        bool
+        depends on MMU
+        default y if ARCH_SUSPEND_POSSIBLE
+
 endmenu
 
 source "net/Kconfig"
 endmenu
 
 source "net/Kconfig"
@@ -2221,3 +2681,4 @@ source "crypto/Kconfig"
 source "lib/Kconfig"
 
 source "arch/arm/kvm/Kconfig"
 source "lib/Kconfig"
 
 source "arch/arm/kvm/Kconfig"
+