Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux...
authorRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Aug 2010 13:07:19 +0000 (14:07 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Aug 2010 13:07:19 +0000 (14:07 +0100)
Conflicts:
arch/arm/Kconfig

1  2 
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/mm/Kconfig
drivers/i2c/busses/Kconfig
drivers/rtc/Kconfig
drivers/serial/Kconfig

diff --combined arch/arm/Kconfig
index e39caa8b0c93e323c9c1e2feda7bb90fd1a3a4a1,c797a8b4d8cc76e9fc4ce0bada93fa0536c66104..37a36457bb38f81e823ca2d3b790af08e88f6901
@@@ -10,7 -10,6 +10,7 @@@ config AR
        default y
        select HAVE_AOUT
        select HAVE_IDE
 +      select HAVE_MEMBLOCK
        select RTC_LIB
        select SYS_SUPPORTS_APM_EMULATION
        select GENERIC_ATOMIC64 if (!CPU_32v6K)
@@@ -25,7 -24,6 +25,7 @@@
        select HAVE_KERNEL_LZMA
        select HAVE_PERF_EVENTS
        select PERF_USE_VMALLOC
 +      select HAVE_REGS_AND_STACK_ACCESS_API
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@@ -57,7 -55,7 +57,7 @@@ config GENERIC_CLOCKEVENT
  config GENERIC_CLOCKEVENTS_BROADCAST
        bool
        depends on GENERIC_CLOCKEVENTS
 -      default y if SMP && !LOCAL_TIMERS
 +      default y if SMP
  
  config HAVE_TCM
        bool
@@@ -303,7 -301,6 +303,7 @@@ config ARCH_CNS3XX
        select CPU_V6
        select GENERIC_CLOCKEVENTS
        select ARM_GIC
 +      select PCI_DOMAINS if PCI
        help
          Support for Cavium Networks CNS3XXX platform.
  
@@@ -442,6 -439,21 +442,6 @@@ config ARCH_IXP4X
        help
          Support for Intel's IXP4XX (XScale) family of processors.
  
 -config ARCH_L7200
 -      bool "LinkUp-L7200"
 -      select CPU_ARM720T
 -      select FIQ
 -      select ARCH_USES_GETTIMEOFFSET
 -      help
 -        Say Y here if you intend to run this kernel on a LinkUp Systems
 -        L7200 Software Development Board which uses an ARM720T processor.
 -        Information on this board can be obtained at:
 -
 -        <http://www.linkupsys.com/>
 -
 -        If you have any questions or comments about the Linux kernel port
 -        to this board, send e-mail to <sjhill@cotw.com>.
 -
  config ARCH_DOVE
        bool "Marvell Dove"
        select PCI
@@@ -470,19 -482,6 +470,19 @@@ config ARCH_LOK
        help
          Support for the Marvell Loki (88RC8480) SoC.
  
 +config ARCH_LPC32XX
 +      bool "NXP LPC32XX"
 +      select CPU_ARM926T
 +      select ARCH_REQUIRE_GPIOLIB
 +      select HAVE_IDE
 +      select ARM_AMBA
 +      select USB_ARCH_HAS_OHCI
 +      select COMMON_CLKDEV
 +      select GENERIC_TIME
 +      select GENERIC_CLOCKEVENTS
 +      help
 +        Support for the NXP LPC32XX family of processors
 +
  config ARCH_MV78XX0
        bool "Marvell MV78xx0"
        select CPU_FEROCEON
@@@ -587,7 -586,6 +587,7 @@@ config ARCH_MS
        bool "Qualcomm MSM"
        select HAVE_CLK
        select GENERIC_CLOCKEVENTS
 +      select ARCH_REQUIRE_GPIOLIB
        help
          Support for Qualcomm MSM/QSD based systems.  This runs on the
          apps processor of the MSM/QSD and depends on a shared memory
@@@ -636,6 -634,7 +636,7 @@@ config ARCH_S3C241
        select ARCH_HAS_CPUFREQ
        select HAVE_CLK
        select ARCH_USES_GETTIMEOFFSET
+       select HAVE_S3C2410_I2C
        help
          Samsung S3C2410X CPU based systems, such as the Simtec Electronics
          BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
@@@ -665,6 -664,8 +666,8 @@@ config ARCH_S3C64X
        select S3C_DEV_NAND
        select USB_ARCH_HAS_OHCI
        select SAMSUNG_GPIOLIB_4BIT
+       select HAVE_S3C2410_I2C
+       select HAVE_S3C2410_WATCHDOG
        help
          Samsung S3C64XX series based systems
  
@@@ -673,7 -674,10 +676,10 @@@ config ARCH_S5P644
        select CPU_V6
        select GENERIC_GPIO
        select HAVE_CLK
+       select HAVE_S3C2410_WATCHDOG
        select ARCH_USES_GETTIMEOFFSET
+       select HAVE_S3C2410_I2C
+       select HAVE_S3C_RTC
        help
          Samsung S5P6440 CPU based systems
  
@@@ -683,6 -687,7 +689,7 @@@ config ARCH_S5P644
        select GENERIC_GPIO
        select HAVE_CLK
        select ARCH_USES_GETTIMEOFFSET
+       select HAVE_S3C2410_WATCHDOG
        help
          Samsung S5P6442 CPU based systems
  
@@@ -693,6 -698,9 +700,9 @@@ config ARCH_S5PC10
        select CPU_V7
        select ARM_L1_CACHE_SHIFT_6
        select ARCH_USES_GETTIMEOFFSET
+       select HAVE_S3C2410_I2C
+       select HAVE_S3C_RTC
+       select HAVE_S3C2410_WATCHDOG
        help
          Samsung S5PC100 series based systems
  
@@@ -703,9 -711,21 +713,21 @@@ config ARCH_S5PV21
        select HAVE_CLK
        select ARM_L1_CACHE_SHIFT_6
        select ARCH_USES_GETTIMEOFFSET
+       select HAVE_S3C2410_I2C
+       select HAVE_S3C_RTC
+       select HAVE_S3C2410_WATCHDOG
        help
          Samsung S5PV210/S5PC110 series based systems
  
+ config ARCH_S5PV310
+       bool "Samsung S5PV310/S5PC210"
+       select CPU_V7
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select GENERIC_CLOCKEVENTS
+       help
+         Samsung S5PV310 series based systems
  config ARCH_SHARK
        bool "Shark"
        select CPU_SA110
  config ARCH_LH7A40X
        bool "Sharp LH7A40X"
        select CPU_ARM922T
 -      select ARCH_DISCONTIGMEM_ENABLE if !LH7A40X_CONTIGMEM
        select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
        select ARCH_USES_GETTIMEOFFSET
        help
@@@ -846,8 -867,6 +868,8 @@@ source "arch/arm/mach-lh7a40x/Kconfig
  
  source "arch/arm/mach-loki/Kconfig"
  
 +source "arch/arm/mach-lpc32xx/Kconfig"
 +
  source "arch/arm/mach-msm/Kconfig"
  
  source "arch/arm/mach-mv78xx0/Kconfig"
@@@ -907,6 -926,8 +929,8 @@@ source "arch/arm/mach-s5pc100/Kconfig
  
  source "arch/arm/mach-s5pv210/Kconfig"
  
+ source "arch/arm/mach-s5pv310/Kconfig"
  source "arch/arm/mach-shmobile/Kconfig"
  
  source "arch/arm/plat-stmp3xxx/Kconfig"
@@@ -1034,6 -1055,11 +1058,6 @@@ endmen
  
  source "arch/arm/common/Kconfig"
  
 -config FORCE_MAX_ZONEORDER
 -      int
 -      depends on SA1111
 -      default "9"
 -
  menu "Bus support"
  
  config ARM_AMBA
@@@ -1058,7 -1084,7 +1082,7 @@@ config ISA_DMA_AP
        bool
  
  config PCI
 -      bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
 +      bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE || ARCH_CNS3XXX
        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
@@@ -1098,10 -1124,11 +1122,11 @@@ config SM
        bool "Symmetric Multi-Processing (EXPERIMENTAL)"
        depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\
                 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
-                ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
+                ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || ARCH_S5PV310)
        depends on GENERIC_CLOCKEVENTS
        select USE_GENERIC_SMP_HELPERS
-       select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
+       select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 ||\
+                       ARCH_S5PV310)
        help
          This enables support for systems with more than one CPU. If you have
          a system with only one CPU, like most personal computers, say N. If
@@@ -1171,9 -1198,9 +1196,9 @@@ config LOCAL_TIMER
        bool "Use local timer interrupts"
        depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
                REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
-               ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
 -              ARCH_U8500 || ARCH_S5PV310)
--      default y
-       select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_VEXPRESS || ARCH_OMAP4 || ARCH_U8500)
 -      select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500 || ARCH_S5PV310)
++              ARCH_S5PV310 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
++      select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_S5PV310 || \
++              ARCH_U8500 || ARCH_VEXPRESS)
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
@@@ -1184,10 -1211,11 +1209,11 @@@ source kernel/Kconfig.preemp
  
  config HZ
        int
-       default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || ARCH_S5P6442 || ARCH_S5PV210
 -      default 128 if ARCH_L7200
 -      default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || ARCH_S5P6442 || \
 -                     ARCH_S5PV210 || ARCH_S5PV310
++      default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || \
++              ARCH_S5P6442 || ARCH_S5PV210 || ARCH_S5PV310
        default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
        default AT91_TIMER_HZ if ARCH_AT91
 +      default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
        default 100
  
  config THUMB2_KERNEL
@@@ -1240,6 -1268,10 +1266,6 @@@ config OABI_COMPA
  config ARCH_HAS_HOLES_MEMORYMODEL
        bool
  
 -# Discontigmem is deprecated
 -config ARCH_DISCONTIGMEM_ENABLE
 -      bool
 -
  config ARCH_SPARSEMEM_ENABLE
        bool
  
@@@ -1247,7 -1279,13 +1273,7 @@@ config ARCH_SPARSEMEM_DEFAUL
        def_bool ARCH_SPARSEMEM_ENABLE
  
  config ARCH_SELECT_MEMORY_MODEL
 -      def_bool ARCH_DISCONTIGMEM_ENABLE && ARCH_SPARSEMEM_ENABLE
 -
 -config NODES_SHIFT
 -      int
 -      default "4" if ARCH_LH7A40X
 -      default "2"
 -      depends on NEED_MULTIPLE_NODES
 +      def_bool ARCH_SPARSEMEM_ENABLE
  
  config HIGHMEM
        bool "High Memory Support (EXPERIMENTAL)"
@@@ -1279,33 -1317,8 +1305,33 @@@ config HW_PERF_EVENT
          Enable hardware performance counter support for perf events. If
          disabled, perf events will use software events only.
  
 +config SPARSE_IRQ
 +      def_bool n
 +      help
 +        This enables support for sparse irqs. This is useful in general
 +        as most CPUs have a fairly sparse array of IRQ vectors, which
 +        the irq_desc then maps directly on to. Systems with a high
 +        number of off-chip IRQs will want to treat this as
 +        experimental until they have been independently verified.
 +
  source "mm/Kconfig"
  
 +config FORCE_MAX_ZONEORDER
 +      int "Maximum zone order" if ARCH_SHMOBILE
 +      range 11 64 if ARCH_SHMOBILE
 +      default "9" if SA1111
 +      default "11"
 +      help
 +        The kernel memory allocator divides physically contiguous memory
 +        blocks into "zones", where each zone is a power of two number of
 +        pages.  This option selects the largest power of two that the kernel
 +        keeps in the memory allocator.  If you need to allocate very large
 +        blocks of physically contiguous memory, then you may need to
 +        increase this value.
 +
 +        This config option is actually maximum order plus one. For example,
 +        a value of 11 means that the largest free memory block is 2^10 pages.
 +
  config LEDS
        bool "Timer and CPU usage LEDs"
        depends on ARCH_CDB89712 || ARCH_EBSA110 || \
@@@ -1389,24 -1402,6 +1415,24 @@@ config UACCESS_WITH_MEMCP
          However, if the CPU data cache is using a write-allocate mode,
          this option is unlikely to provide any performance gain.
  
 +config CC_STACKPROTECTOR
 +      bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
 +      help
 +        This option turns on the -fstack-protector GCC feature. This
 +        feature puts, at the beginning of functions, a canary value on
 +        the stack just before the return address, and validates
 +        the value just before actually returning.  Stack based buffer
 +        overflows (that need to overwrite this return address) now also
 +        overwrite the canary, which gets detected and the attack is then
 +        neutralized via a kernel panic.
 +        This feature requires gcc version 4.2 or above.
 +
 +config DEPRECATED_PARAM_STRUCT
 +      bool "Provide old way to pass kernel parameters"
 +      help
 +        This was deprecated in 2001 and announced to live on for 5 years.
 +        Some old boot loaders still use this way.
 +
  endmenu
  
  menu "Boot options"
@@@ -1517,105 -1512,6 +1543,105 @@@ config ATAGS_PRO
          Should the atags used to boot the kernel be exported in an "atags"
          file in procfs. Useful with kexec.
  
 +config AUTO_ZRELADDR
 +      bool "Auto calculation of the decompressed kernel image address"
 +      depends on !ZBOOT_ROM && !ARCH_U300
 +      help
 +        ZRELADDR is the physical address where the decompressed kernel
 +        image will be placed. If AUTO_ZRELADDR is selected, the address
 +        will be determined at run-time by masking the current IP with
 +        0xf8000000. This assumes the zImage being placed in the first 128MB
 +        from start of memory.
 +
 +config ZRELADDR
 +      hex "Physical address of the decompressed kernel image"
 +      depends on !AUTO_ZRELADDR
 +      default 0x00008000 if ARCH_BCMRING ||\
 +              ARCH_CNS3XXX ||\
 +              ARCH_DOVE ||\
 +              ARCH_EBSA110 ||\
 +              ARCH_FOOTBRIDGE ||\
 +              ARCH_INTEGRATOR ||\
 +              ARCH_IOP13XX ||\
 +              ARCH_IOP33X ||\
 +              ARCH_IXP2000 ||\
 +              ARCH_IXP23XX ||\
 +              ARCH_IXP4XX ||\
 +              ARCH_KIRKWOOD ||\
 +              ARCH_KS8695 ||\
 +              ARCH_LOKI ||\
 +              ARCH_MMP ||\
 +              ARCH_MV78XX0 ||\
 +              ARCH_NOMADIK ||\
 +              ARCH_NUC93X ||\
 +              ARCH_NS9XXX ||\
 +              ARCH_ORION5X ||\
 +              ARCH_SPEAR3XX ||\
 +              ARCH_SPEAR6XX ||\
 +              ARCH_U8500 ||\
 +              ARCH_VERSATILE ||\
 +              ARCH_W90X900
 +      default 0x08008000 if ARCH_MX1 ||\
 +              ARCH_SHARK
 +      default 0x10008000 if ARCH_MSM ||\
 +              ARCH_OMAP1 ||\
 +              ARCH_RPC
 +      default 0x20008000 if ARCH_S5P6440 ||\
 +              ARCH_S5P6442 ||\
 +              ARCH_S5PC100 ||\
 +              ARCH_S5PV210
 +      default 0x30008000 if ARCH_S3C2410 ||\
 +              ARCH_S3C2400 ||\
 +              ARCH_S3C2412 ||\
 +              ARCH_S3C2416 ||\
 +              ARCH_S3C2440 ||\
 +              ARCH_S3C2443
 +      default 0x40008000 if ARCH_STMP378X ||\
 +              ARCH_STMP37XX ||\
 +              ARCH_SH7372 ||\
 +              ARCH_SH7377
 +      default 0x50008000 if ARCH_S3C64XX ||\
 +              ARCH_SH7367
 +      default 0x60008000 if ARCH_VEXPRESS
 +      default 0x80008000 if ARCH_MX25 ||\
 +              ARCH_MX3 ||\
 +              ARCH_NETX ||\
 +              ARCH_OMAP2PLUS ||\
 +              ARCH_PNX4008
 +      default 0x90008000 if ARCH_MX5 ||\
 +              ARCH_MX91231
 +      default 0xa0008000 if ARCH_IOP32X ||\
 +              ARCH_PXA ||\
 +              MACH_MX27
 +      default 0xc0008000 if ARCH_LH7A40X ||\
 +              MACH_MX21
 +      default 0xf0008000 if ARCH_AAEC2000 ||\
 +              ARCH_L7200
 +      default 0xc0028000 if ARCH_CLPS711X
 +      default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
 +      default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
 +      default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
 +      default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
 +      default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
 +      default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
 +      default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
 +      default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
 +      default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
 +      default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
 +      default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
 +      default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
 +      default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
 +      default 0xc0208000 if ARCH_SA1100 && SA1111
 +      default 0xc0008000 if ARCH_SA1100 && !SA1111
 +      default 0x30108000 if ARCH_S3C2410 && PM_H1940
 +      default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
 +      default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
 +      help
 +        ZRELADDR is the physical address where the decompressed kernel
 +        image will be placed. ZRELADDR has to be specified when the
 +        assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
 +        selected.
 +
  endmenu
  
  menu "CPU Power Management"
diff --combined arch/arm/Makefile
index 63d998e8c672ef4488eb72df2cfdcce2f7ae502f,d80c9f98d1bfa0d6fe032ddd4fb64ed5065bd432..24f58d8576ede99484de36c48c9fe7d402dd9b7d
@@@ -34,10 -34,6 +34,10 @@@ ifeq ($(CONFIG_FRAME_POINTER),y
  KBUILD_CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
  endif
  
 +ifeq ($(CONFIG_CC_STACKPROTECTOR),y)
 +KBUILD_CFLAGS +=-fstack-protector
 +endif
 +
  ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
  KBUILD_CPPFLAGS       += -mbig-endian
  AS            += -EB
@@@ -143,14 -139,14 +143,14 @@@ machine-$(CONFIG_ARCH_IXP23XX)          := ixp2
  machine-$(CONFIG_ARCH_IXP4XX)         := ixp4xx
  machine-$(CONFIG_ARCH_KIRKWOOD)               := kirkwood
  machine-$(CONFIG_ARCH_KS8695)         := ks8695
 -machine-$(CONFIG_ARCH_L7200)          := l7200
  machine-$(CONFIG_ARCH_LH7A40X)                := lh7a40x
  machine-$(CONFIG_ARCH_LOKI)           := loki
 +machine-$(CONFIG_ARCH_LPC32XX)                := lpc32xx
  machine-$(CONFIG_ARCH_MMP)            := mmp
  machine-$(CONFIG_ARCH_MSM)            := msm
  machine-$(CONFIG_ARCH_MV78XX0)                := mv78xx0
 -machine-$(CONFIG_ARCH_MX1)            := mx1
 -machine-$(CONFIG_ARCH_MX2)            := mx2
 +machine-$(CONFIG_ARCH_MX1)            := imx
 +machine-$(CONFIG_ARCH_MX2)            := imx
  machine-$(CONFIG_ARCH_MX25)           := mx25
  machine-$(CONFIG_ARCH_MX3)            := mx3
  machine-$(CONFIG_ARCH_MX5)            := mx5
@@@ -174,6 -170,7 +174,7 @@@ machine-$(CONFIG_ARCH_S5P6440)             := s5p6
  machine-$(CONFIG_ARCH_S5P6442)                := s5p6442
  machine-$(CONFIG_ARCH_S5PC100)                := s5pc100
  machine-$(CONFIG_ARCH_S5PV210)                := s5pv210
+ machine-$(CONFIG_ARCH_S5PV310)                := s5pv310
  machine-$(CONFIG_ARCH_SA1100)         := sa1100
  machine-$(CONFIG_ARCH_SHARK)          := shark
  machine-$(CONFIG_ARCH_SHMOBILE)       := shmobile
diff --combined arch/arm/mm/Kconfig
index 87ec141fcaa6e5ad0d5d7eef0e1a8249ac2bdcc3,9ca76bfe471c2bbd2e5cd64de096e8a4c3f28a5d..d6ffcee4316efa36a3cce326b093e5a871bfaade
@@@ -717,6 -717,17 +717,6 @@@ config TLS_REG_EMU
          a few prototypes like that in existence) and therefore access to
          that required register must be emulated.
  
 -config HAS_TLS_REG
 -      bool
 -      depends on !TLS_REG_EMUL
 -      default y if SMP || CPU_32v7
 -      help
 -        This selects support for the CP15 thread register.
 -        It is defined to be available on some ARMv6 processors (including
 -        all SMP capable ARMv6's) or later processors.  User space may
 -        assume directly accessing that register and always obtain the
 -        expected value only on ARMv7 and above.
 -
  config NEEDS_SYSCALL_FOR_CMPXCHG
        bool
        help
@@@ -771,7 -782,8 +771,8 @@@ config CACHE_L2X
        bool "Enable the L2x0 outer cache controller"
        depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \
                   REALVIEW_EB_A9MP || ARCH_MX35 || ARCH_MX31 || MACH_REALVIEW_PBX || \
-                  ARCH_NOMADIK || ARCH_OMAP4 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4
+                  ARCH_NOMADIK || ARCH_OMAP4 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
+                  ARCH_S5PV310
        default y
        select OUTER_CACHE
        select OUTER_CACHE_SYNC
index 29e01f6238a7d24e29543a4dffea9a98479f4b7f,80143899ccec7799ddc6aaeada63ffc9cd795015..15a9702e29416a959d8d6fed59559620eed8390f
@@@ -521,12 -521,19 +521,19 @@@ config I2C_PXA_SLAV
          is necessary for systems where the PXA may be a target on the
          I2C bus.
  
+ config HAVE_S3C2410_I2C
+       bool
+       help
+         This will include I2C support for Samsung SoCs. If you want to
+         include I2C support for any machine, kindly select this in the
+         respective Kconfig file.
  config I2C_S3C2410
        tristate "S3C2410 I2C Driver"
-       depends on ARCH_S3C2410 || ARCH_S3C64XX
+       depends on HAVE_S3C2410_I2C
        help
          Say Y here to include support for I2C controller in the
-         Samsung S3C2410 based System-on-Chip devices.
+         Samsung SoCs.
  
  config I2C_S6000
        tristate "S6000 I2C support"
@@@ -549,7 -556,7 +556,7 @@@ config I2C_SH776
  
  config I2C_SH_MOBILE
        tristate "SuperH Mobile I2C Controller"
 -      depends on SUPERH
 +      depends on SUPERH || ARCH_SHMOBILE
        help
          If you say yes to this option, support will be included for the
          built-in I2C interface on the Renesas SH-Mobile processor.
diff --combined drivers/rtc/Kconfig
index 4301a6c7ed3b5c65fecb5a16136591076b8ed4ee,c43732ff1800fee154fafe9ab3cc550df25626af..9238c8f40f0388f9511dafd2d8bb2b4984324a6b
@@@ -645,9 -645,16 +645,16 @@@ config RTC_DRV_OMA
          DA8xx/OMAP-L13x chips.  This driver can also be built as a
          module called rtc-omap.
  
+ config HAVE_S3C_RTC
+       bool
+       help
+         This will include RTC support for Samsung SoCs. If
+         you want to include RTC support for any machine, kindly
+         select this in the respective mach-XXXX/Kconfig file.
  config RTC_DRV_S3C
        tristate "Samsung S3C series SoC RTC"
-       depends on ARCH_S3C2410 || ARCH_S3C64XX
+       depends on ARCH_S3C2410 || ARCH_S3C64XX || HAVE_S3C_RTC
        help
          RTC (Realtime Clock) driver for the clock inbuilt into the
          Samsung S3C24XX series of SoCs. This can provide periodic
@@@ -774,7 -781,7 +781,7 @@@ config RTC_DRV_AT91SAM9_GPB
  
  config RTC_DRV_AU1XXX
        tristate "Au1xxx Counter0 RTC support"
 -      depends on SOC_AU1X00
 +      depends on MIPS_ALCHEMY
        help
          This is a driver for the Au1xxx on-chip Counter0 (Time-Of-Year
          counter) to be used as a RTC.
@@@ -905,15 -912,4 +912,15 @@@ config RTC_DRV_MPC512
          This driver can also be built as a module. If so, the module
          will be called rtc-mpc5121.
  
 +config RTC_DRV_JZ4740
 +      tristate "Ingenic JZ4740 SoC"
 +      depends on RTC_CLASS
 +      depends on MACH_JZ4740
 +      help
 +        If you say yes here you get support for the Ingenic JZ4740 SoC RTC
 +        controller.
 +
 +        This driver can also be buillt as a module. If so, the module
 +        will be called rtc-jz4740.
 +
  endif # RTC_CLASS
diff --combined drivers/serial/Kconfig
index e437ce8c1748b29b0c6ab8f5de633d7c43106ee9,aa220108cecec8d1fe4cabcb9b2f38b8c3560bfe..8f23eb54f498fdced490a372b915df4fd1429645
@@@ -258,6 -258,14 +258,6 @@@ config SERIAL_8250_ACOR
          system, say Y to this option.  The driver can handle 1, 2, or 3 port
          cards.  If unsure, say N.
  
 -config SERIAL_8250_AU1X00
 -      bool "Au1x00 serial port support"
 -      depends on SERIAL_8250 != n && SOC_AU1X00
 -      help
 -        If you have an Au1x00 SOC based board and want to use the serial port,
 -        say Y to this option. The driver can handle up to 4 serial ports,
 -        depending on the SOC. If unsure, say N.
 -
  config SERIAL_8250_RM9K
        bool "Support for MIPS RM9xxx integrated serial port"
        depends on SERIAL_8250 != n && SERIAL_RM9000
@@@ -536,8 -544,8 +536,8 @@@ config SERIAL_S3C640
  
  config SERIAL_S5PV210
        tristate "Samsung S5PV210 Serial port support"
-       depends on SERIAL_SAMSUNG && (CPU_S5PV210 || CPU_S5P6442)
-       select SERIAL_SAMSUNG_UARTS_4 if CPU_S5PV210
+       depends on SERIAL_SAMSUNG && (CPU_S5PV210 || CPU_S5P6442 || CPU_S5PV310)
+       select SERIAL_SAMSUNG_UARTS_4 if (CPU_S5PV210 || CPU_S5PV310)
        default y
        help
          Serial port support for Samsung's S5P Family of SoC's