Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / arch / mips / Kconfig
index 8272ea4..0d14f51 100644 (file)
@@ -2,11 +2,12 @@
 config MIPS
        bool
        default y
-       select ARCH_BINFMT_ELF_STATE
+       select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
        select ARCH_CLOCKSOURCE_DATA
        select ARCH_DISCARD_MEMBLOCK
        select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
+       select ARCH_HAS_UBSAN_SANITIZE_ALL
        select ARCH_SUPPORTS_UPROBES
        select ARCH_USE_BUILTIN_BSWAP
        select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
@@ -15,8 +16,8 @@ config MIPS
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_EXTABLE_SORT
        select CLONE_BACKWARDS
+       select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
        select CPU_PM if CPU_IDLE
-       select DMA_DIRECT_OPS
        select GENERIC_ATOMIC64 if !64BIT
        select GENERIC_CLOCKEVENTS
        select GENERIC_CMOS_UPDATE
@@ -24,6 +25,7 @@ config MIPS
        select GENERIC_IOMAP
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
+       select GENERIC_ISA_DMA if EISA
        select GENERIC_LIB_ASHLDI3
        select GENERIC_LIB_ASHRDI3
        select GENERIC_LIB_CMPDI2
@@ -56,10 +58,12 @@ config MIPS
        select HAVE_FUNCTION_TRACER
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_IDE
+       select HAVE_IOREMAP_PROT
        select HAVE_IRQ_EXIT_ON_IRQ_STACK
        select HAVE_IRQ_TIME_ACCOUNTING
        select HAVE_KPROBES
        select HAVE_KRETPROBES
+       select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
        select HAVE_MEMBLOCK_NODE_MAP
        select HAVE_MOD_ARCH_SPECIFIC
        select HAVE_NMI
@@ -71,6 +75,7 @@ config MIPS
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
        select IRQ_FORCED_THREADING
+       select ISA if EISA
        select MODULES_USE_ELF_RELA if MODULES && 64BIT
        select MODULES_USE_ELF_REL if MODULES
        select PERF_USE_VMALLOC
@@ -95,7 +100,7 @@ config MIPS_GENERIC
        select CPU_MIPSR2_IRQ_EI
        select CSRC_R4K
        select DMA_PERDEV_COHERENT
-       select HW_HAS_PCI
+       select HAVE_PCI
        select IRQ_MIPS_CPU
        select LIBFDT
        select MIPS_AUTO_PFN_OFFSET
@@ -256,7 +261,7 @@ config BCM47XX
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
-       select HW_HAS_PCI
+       select HAVE_PCI
        select IRQ_MIPS_CPU
        select SYS_HAS_CPU_MIPS32_R1
        select NO_EXCEPT_FILL
@@ -299,13 +304,12 @@ config MIPS_COBALT
        select CSRC_R4K
        select CEVT_GT641XX
        select DMA_NONCOHERENT
-       select HW_HAS_PCI
+       select FORCE_PCI
        select I8253
        select I8259
        select IRQ_MIPS_CPU
        select IRQ_GT641XX
        select PCI_GT64XXX_PCI0
-       select PCI
        select SYS_HAS_CPU_NEVADA
        select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -422,7 +426,7 @@ config LASAT
        select CSRC_R4K
        select DMA_NONCOHERENT
        select SYS_HAS_EARLY_PRINTK
-       select HW_HAS_PCI
+       select HAVE_PCI
        select IRQ_MIPS_CPU
        select PCI_GT64XXX_PCI0
        select MIPS_NILE4
@@ -494,22 +498,23 @@ config MIPS_MALTA
        select BOOT_RAW
        select BUILTIN_DTB
        select CEVT_R4K
-       select CSRC_R4K
        select CLKSRC_MIPS_GIC
        select COMMON_CLK
+       select CSRC_R4K
        select DMA_MAYBE_COHERENT
        select GENERIC_ISA_DMA
        select HAVE_PCSPKR_PLATFORM
-       select IRQ_MIPS_CPU
-       select MIPS_GIC
-       select HW_HAS_PCI
+       select HAVE_PCI
        select I8253
        select I8259
+       select IRQ_MIPS_CPU
+       select LIBFDT
        select MIPS_BONITO64
        select MIPS_CPU_SCACHE
+       select MIPS_GIC
        select MIPS_L1_CACHE_SHIFT_6
-       select PCI_GT64XXX_PCI0
        select MIPS_MSC
+       select PCI_GT64XXX_PCI0
        select SMP_UP if SMP
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_MIPS32_R1
@@ -528,19 +533,16 @@ config MIPS_MALTA
        select SYS_SUPPORTS_HIGHMEM
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select SYS_SUPPORTS_MICROMIPS
+       select SYS_SUPPORTS_MIPS16
        select SYS_SUPPORTS_MIPS_CMP
        select SYS_SUPPORTS_MIPS_CPS
-       select SYS_SUPPORTS_MIPS16
        select SYS_SUPPORTS_MULTITHREADING
+       select SYS_SUPPORTS_RELOCATABLE
        select SYS_SUPPORTS_SMARTMIPS
        select SYS_SUPPORTS_VPE_LOADER
        select SYS_SUPPORTS_ZBOOT
-       select SYS_SUPPORTS_RELOCATABLE
        select USE_OF
-       select LIBFDT
        select ZONE_DMA32 if 64BIT
-       select BUILTIN_DTB
-       select LIBFDT
        help
          This enables support for the MIPS Technologies Malta evaluation
          board.
@@ -556,7 +558,7 @@ config MACH_PIC32
 config NEC_MARKEINS
        bool "NEC EMMA2RH Mark-eins board"
        select SOC_EMMA2RH
-       select HW_HAS_PCI
+       select HAVE_PCI
        help
          This enables support for the NEC Electronics Mark-eins boards.
 
@@ -633,7 +635,7 @@ config SGI_IP22
        select CSRC_R4K
        select DEFAULT_SGI_PARTITION
        select DMA_NONCOHERENT
-       select HW_HAS_EISA
+       select HAVE_EISA
        select I8253
        select I8259
        select IP22_CPU_SCACHE
@@ -673,7 +675,7 @@ config SGI_IP27
        select BOOT_ELF64
        select DEFAULT_SGI_PARTITION
        select SYS_HAS_EARLY_PRINTK
-       select HW_HAS_PCI
+       select HAVE_PCI
        select NR_CPUS_DEFAULT_64
        select SYS_HAS_CPU_R10000
        select SYS_SUPPORTS_64BIT_KERNEL
@@ -698,7 +700,7 @@ config SGI_IP28
        select DMA_NONCOHERENT
        select GENERIC_ISA_DMA_SUPPORT_BROKEN
        select IRQ_MIPS_CPU
-       select HW_HAS_EISA
+       select HAVE_EISA
        select I8253
        select I8259
        select SGI_HAS_I8042
@@ -733,7 +735,7 @@ config SGI_IP32
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
-       select HW_HAS_PCI
+       select HAVE_PCI
        select IRQ_MIPS_CPU
        select R5000_CPU_SCACHE
        select RM7000_CPU_SCACHE
@@ -794,6 +796,7 @@ config SIBYTE_SWARM
        select SYS_SUPPORTS_HIGHMEM
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select ZONE_DMA32 if 64BIT
+       select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
 
 config SIBYTE_LITTLESUR
        bool "Sibyte BCM91250C2-LittleSur"
@@ -805,6 +808,7 @@ config SIBYTE_LITTLESUR
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_HIGHMEM
        select SYS_SUPPORTS_LITTLE_ENDIAN
+       select ZONE_DMA32 if 64BIT
 
 config SIBYTE_SENTOSA
        bool "Sibyte BCM91250E-Sentosa"
@@ -814,6 +818,7 @@ config SIBYTE_SENTOSA
        select SYS_HAS_CPU_SB1
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_LITTLE_ENDIAN
+       select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
 
 config SIBYTE_BIGSUR
        bool "Sibyte BCM91480B-BigSur"
@@ -826,6 +831,7 @@ config SIBYTE_BIGSUR
        select SYS_SUPPORTS_HIGHMEM
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select ZONE_DMA32 if 64BIT
+       select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
 
 config SNI_RM
        bool "SNI RM200/300/400"
@@ -841,9 +847,9 @@ config SNI_RM
        select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
        select DMA_NONCOHERENT
        select GENERIC_ISA_DMA
+       select HAVE_EISA
        select HAVE_PCSPKR_PLATFORM
-       select HW_HAS_EISA
-       select HW_HAS_PCI
+       select HAVE_PCI
        select IRQ_MIPS_CPU
        select I8253
        select I8259
@@ -876,7 +882,7 @@ config MIKROTIK_RB532
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
-       select HW_HAS_PCI
+       select HAVE_PCI
        select IRQ_MIPS_CPU
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -893,7 +899,7 @@ config CAVIUM_OCTEON_SOC
        bool "Cavium Networks Octeon SoC based boards"
        select CEVT_R4K
        select ARCH_HAS_PHYS_TO_DMA
-       select HAS_RAPIDIO
+       select HAVE_RAPIDIO
        select PHYS_ADDR_T_64BIT
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
@@ -903,7 +909,7 @@ config CAVIUM_OCTEON_SOC
        select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
        select SYS_HAS_EARLY_PRINTK
        select SYS_HAS_CPU_CAVIUM_OCTEON
-       select HW_HAS_PCI
+       select HAVE_PCI
        select ZONE_DMA32
        select HOLES_IN_ZONE
        select GPIOLIB
@@ -936,7 +942,7 @@ config NLM_XLR_BOARD
        select NLM_COMMON
        select SYS_HAS_CPU_XLR
        select SYS_SUPPORTS_SMP
-       select HW_HAS_PCI
+       select HAVE_PCI
        select SWAP_IO_SPACE
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
@@ -962,7 +968,7 @@ config NLM_XLP_BOARD
        select NLM_COMMON
        select SYS_HAS_CPU_XLP
        select SYS_SUPPORTS_SMP
-       select HW_HAS_PCI
+       select HAVE_PCI
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
        select PHYS_ADDR_T_64BIT
@@ -997,7 +1003,7 @@ config MIPS_PARAVIRT
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_HAS_CPU_MIPS64_R2
        select SYS_HAS_CPU_CAVIUM_OCTEON
-       select HW_HAS_PCI
+       select HAVE_PCI
        select SWAP_IO_SPACE
        help
          This option supports guest running under ????
@@ -2032,7 +2038,7 @@ config CPU_MIPS64
        default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
 
 #
-# These two indicate the revision of the architecture, either Release 1 or Release 2
+# These indicate the revision of the architecture
 #
 config CPU_MIPSR1
        bool
@@ -2053,6 +2059,16 @@ config CPU_MIPSR6
        select MIPS_CRC_SUPPORT
        select MIPS_SPRAM
 
+config TARGET_ISA_REV
+       int
+       default 1 if CPU_MIPSR1
+       default 2 if CPU_MIPSR2
+       default 6 if CPU_MIPSR6
+       default 0
+       help
+         Reflects the ISA revision being targeted by the kernel build. This
+         is effectively the Kconfig equivalent of MIPS_ISA_REV.
+
 config EVA
        bool
 
@@ -2254,9 +2270,30 @@ config CPU_GENERIC_DUMP_TLB
        bool
        default y if !(CPU_R3000 || CPU_R8000 || CPU_TX39XX)
 
+config MIPS_FP_SUPPORT
+       bool "Floating Point support" if EXPERT
+       default y
+       help
+         Select y to include support for floating point in the kernel
+         including initialization of FPU hardware, FP context save & restore
+         and emulation of an FPU where necessary. Without this support any
+         userland program attempting to use floating point instructions will
+         receive a SIGILL.
+
+         If you know that your userland will not attempt to use floating point
+         instructions then you can say n here to shrink the kernel a little.
+
+         If unsure, say y.
+
+config CPU_R2300_FPU
+       bool
+       depends on MIPS_FP_SUPPORT
+       default y if CPU_R3000 || CPU_TX39XX
+
 config CPU_R4K_FPU
        bool
-       default y if !(CPU_R3000 || CPU_TX39XX)
+       depends on MIPS_FP_SUPPORT
+       default y if !CPU_R2300_FPU
 
 config CPU_R4K_CACHE_TLB
        bool
@@ -2308,6 +2345,7 @@ config MIPS_MT_FPAFF
 config MIPSR2_TO_R6_EMULATOR
        bool "MIPS R2-to-R6 emulator"
        depends on CPU_MIPSR6
+       depends on MIPS_FP_SUPPORT
        default y
        help
          Choose this option if you want to run non-R6 MIPS userland code.
@@ -2455,6 +2493,7 @@ endchoice
 config CPU_HAS_MSA
        bool "Support for the MIPS SIMD Architecture"
        depends on CPU_SUPPORTS_MSA
+       depends on MIPS_FP_SUPPORT
        depends on 64BIT || MIPS_O32_FP64_SUPPORT
        help
          MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
@@ -2902,7 +2941,7 @@ config SECCOMP
          If unsure, say Y. Only embedded should say N here.
 
 config MIPS_O32_FP64_SUPPORT
-       bool "Support for O32 binaries using 64-bit FP"
+       bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
        depends on 32BIT || MIPS32_O32
        help
          When this is enabled, the kernel will support use of 64-bit floating
@@ -3025,47 +3064,14 @@ config MIPS_AUTO_PFN_OFFSET
 
 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
 
-config HW_HAS_EISA
-       bool
-config HW_HAS_PCI
-       bool
-
-config PCI
-       bool "Support for PCI controller"
-       depends on HW_HAS_PCI
-       select PCI_DOMAINS
-       help
-         Find out whether you have a PCI motherboard. PCI is the name of a
-         bus system, i.e. the way the CPU talks to the other stuff inside
-         your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
-         say Y, otherwise N.
-
-config HT_PCI
-       bool "Support for HT-linked PCI"
-       default y
-       depends on CPU_LOONGSON3
-       select PCI
-       select PCI_DOMAINS
-       help
-         Loongson family machines use Hyper-Transport bus for inter-core
-         connection and device connection. The PCI bus is a subordinate
-         linked at HT. Choose Y for Loongson-3 based machines.
-
-config PCI_DOMAINS
-       bool
-
-config PCI_DOMAINS_GENERIC
-       bool
-
 config PCI_DRIVERS_GENERIC
-       select PCI_DOMAINS_GENERIC if PCI_DOMAINS
+       select PCI_DOMAINS_GENERIC if PCI
        bool
 
 config PCI_DRIVERS_LEGACY
        def_bool !PCI_DRIVERS_GENERIC
        select NO_GENERIC_PCI_IOPORT_MAP
-
-source "drivers/pci/Kconfig"
+       select PCI_DOMAINS if PCI
 
 #
 # ISA support is now enabled via select.  Too many systems still have the one
@@ -3075,26 +3081,6 @@ source "drivers/pci/Kconfig"
 config ISA
        bool
 
-config EISA
-       bool "EISA support"
-       depends on HW_HAS_EISA
-       select ISA
-       select GENERIC_ISA_DMA
-       ---help---
-         The Extended Industry Standard Architecture (EISA) bus was
-         developed as an open alternative to the IBM MicroChannel bus.
-
-         The EISA bus provided some of the features of the IBM MicroChannel
-         bus while maintaining backward compatibility with cards made for
-         the older ISA bus.  The EISA bus saw limited use between 1988 and
-         1995 when it was made obsolete by the PCI bus.
-
-         Say Y here if you are building a kernel for an EISA-based machine.
-
-         Otherwise, say N.
-
-source "drivers/eisa/Kconfig"
-
 config TC
        bool "TURBOchannel support"
        depends on MACH_DECSTATION
@@ -3138,21 +3124,6 @@ config ZONE_DMA
 config ZONE_DMA32
        bool
 
-source "drivers/pcmcia/Kconfig"
-
-config HAS_RAPIDIO
-       bool
-       default n
-
-config RAPIDIO
-       tristate "RapidIO support"
-       depends on HAS_RAPIDIO || PCI
-       help
-         If you say Y here, the kernel will include drivers and
-         infrastructure code to support RapidIO interconnect devices.
-
-source "drivers/rapidio/Kconfig"
-
 endmenu
 
 config TRAD_SIGNALS
@@ -3184,6 +3155,7 @@ config MIPS32_O32
 config MIPS32_N32
        bool "Kernel support for n32 binaries"
        depends on 64BIT
+       select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
        select COMPAT
        select MIPS32_COMPAT
        select SYSVIPC_COMPAT if SYSVIPC