Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa...
authorRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 22 Dec 2010 22:46:24 +0000 (22:46 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 22 Dec 2010 22:46:24 +0000 (22:46 +0000)
1  2 
arch/arm/Kconfig
arch/arm/kernel/Makefile
arch/arm/kernel/entry-armv.S

diff --combined arch/arm/Kconfig
@@@ -9,12 -9,11 +9,12 @@@ config AR
        select GENERIC_ATOMIC64 if (!CPU_32v6K || !AEABI)
        select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
        select HAVE_ARCH_KGDB
-       select HAVE_KPROBES if (!XIP_KERNEL)
+       select HAVE_KPROBES if (!XIP_KERNEL && !THUMB2_KERNEL)
        select HAVE_KRETPROBES if (HAVE_KPROBES)
        select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
        select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
        select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)
 +      select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZO
@@@ -1000,8 -999,8 +1000,8 @@@ source arch/arm/mm/Kconfi
  
  config IWMMXT
        bool "Enable iWMMXt support"
-       depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK
-       default y if PXA27x || PXA3xx || ARCH_MMP
+       depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
+       default y if PXA27x || PXA3xx || PXA95x || ARCH_MMP
        help
          Enable support for iWMMXt context switching at run time if
          running on a CPU that supports it.
@@@ -1206,11 -1205,10 +1206,11 @@@ config SM
        depends on EXPERIMENTAL
        depends on GENERIC_CLOCKEVENTS
        depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
 -               MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
 -               ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4
 +               MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
 +               ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
 +               ARCH_MSM_SCORPIONMP
        select USE_GENERIC_SMP_HELPERS
 -      select HAVE_ARM_SCU
 +      select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
        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
@@@ -1285,7 -1283,6 +1285,7 @@@ config NR_CPU
  config HOTPLUG_CPU
        bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
        depends on SMP && HOTPLUG && EXPERIMENTAL
 +      depends on !ARCH_MSM
        help
          Say Y here to experiment with turning CPUs off and on.  CPUs
          can be controlled through /sys/devices/system/cpu.
@@@ -1294,7 -1291,7 +1294,7 @@@ config LOCAL_TIMER
        bool "Use local timer interrupts"
        depends on SMP
        default y
 -      select HAVE_ARM_TWD
 +      select HAVE_ARM_TWD if !ARCH_MSM_SCORPIONMP
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
@@@ -1314,7 -1311,7 +1314,7 @@@ config H
  
  config THUMB2_KERNEL
        bool "Compile the kernel in Thumb-2 mode"
-       depends on CPU_V7 && EXPERIMENTAL
+       depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL
        select AEABI
        select ARM_ASM_UNIFIED
        help
@@@ -1762,7 -1759,7 +1762,7 @@@ comment "At least one emulation must b
  
  config FPE_NWFPE
        bool "NWFPE math emulation"
-       depends on !AEABI || OABI_COMPAT
+       depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL
        ---help---
          Say Y to include the NWFPE floating point emulator in the kernel.
          This is necessary to run most binaries. Linux does not currently
diff --combined arch/arm/kernel/Makefile
@@@ -5,7 -5,7 +5,7 @@@
  CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
  AFLAGS_head.o        := -DTEXT_OFFSET=$(TEXT_OFFSET)
  
 -ifdef CONFIG_DYNAMIC_FTRACE
 +ifdef CONFIG_FUNCTION_TRACER
  CFLAGS_REMOVE_ftrace.o = -pg
  endif
  
@@@ -33,7 -33,6 +33,7 @@@ obj-$(CONFIG_SMP)             += smp.
  obj-$(CONFIG_HAVE_ARM_SCU)    += smp_scu.o
  obj-$(CONFIG_HAVE_ARM_TWD)    += smp_twd.o
  obj-$(CONFIG_DYNAMIC_FTRACE)  += ftrace.o
 +obj-$(CONFIG_FUNCTION_GRAPH_TRACER)   += ftrace.o
  obj-$(CONFIG_KEXEC)           += machine_kexec.o relocate_kernel.o
  obj-$(CONFIG_KPROBES)         += kprobes.o kprobes-decode.o
  obj-$(CONFIG_ATAGS_PROC)      += atags.o
@@@ -51,6 -50,7 +51,7 @@@ AFLAGS_crunch-bits.o          := -Wa,-mcpu=ep93
  obj-$(CONFIG_CPU_XSCALE)      += xscale-cp0.o
  obj-$(CONFIG_CPU_XSC3)                += xscale-cp0.o
  obj-$(CONFIG_CPU_MOHAWK)      += xscale-cp0.o
+ obj-$(CONFIG_CPU_PJ4)         += pj4-cp0.o
  obj-$(CONFIG_IWMMXT)          += iwmmxt.o
  obj-$(CONFIG_CPU_HAS_PMU)     += pmu.o
  obj-$(CONFIG_HW_PERF_EVENTS)  += perf_event.o
@@@ -198,7 -198,6 +198,7 @@@ __dabt_svc
        @
        @ set desired IRQ state, then call main handler
        @
 +      debug_entry r1
        msr     cpsr_c, r9
        mov     r2, sp
        bl      do_DataAbort
@@@ -325,7 -324,6 +325,7 @@@ __pabt_svc
  #else
        bl      CPU_PABORT_HANDLER
  #endif
 +      debug_entry r1
        msr     cpsr_c, r9                      @ Maybe enable interrupts
        mov     r2, sp                          @ regs
        bl      do_PrefetchAbort                @ call abort handler
@@@ -441,7 -439,6 +441,7 @@@ __dabt_usr
        @
        @ IRQs on, then call the main handler
        @
 +      debug_entry r1
        enable_irq
        mov     r2, sp
        adr     lr, BSYM(ret_from_exception)
@@@ -706,7 -703,6 +706,7 @@@ __pabt_usr
  #else
        bl      CPU_PABORT_HANDLER
  #endif
 +      debug_entry r1
        enable_irq                              @ Enable interrupts
        mov     r2, sp                          @ regs
        bl      do_PrefetchAbort                @ call abort handler
@@@ -915,7 -911,7 +915,7 @@@ __kuser_cmpxchg:                           @ 0xffff0fc
         * A special ghost syscall is used for that (see traps.c).
         */
        stmfd   sp!, {r7, lr}
-       ldr     r7, =1f                 @ it's 20 bits
+       ldr     r7, 1f                  @ it's 20 bits
        swi     __ARM_NR_cmpxchg
        ldmfd   sp!, {r7, pc}
  1:    .word   __ARM_NR_cmpxchg