Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Oct 2010 23:42:32 +0000 (16:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Oct 2010 23:42:32 +0000 (16:42 -0700)
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits)
  arm: remove machine_desc.io_pg_offst and .phys_io
  arm: use addruart macro to establish debug mappings
  arm: return both physical and virtual addresses from addruart
  arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC
  ARM: make struct machine_desc definition coherent with its comment
  eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free
  cpuimx27: fix compile when ULPI is selected
  mach-pcm037_eet: fix compile errors
  Fixing ethernet driver compilation error for i.MX31 ADS board
  cpuimx51: update board support
  mx5: add cpuimx51sd module and its baseboard
  iomux-mx51: fix GPIO_1_xx 's IOMUX configuration
  imx-esdhc: update devices registration
  mx51: add resources for SD/MMC on i.MX51
  iomux-mx51: fix SD1 and SD2's iomux configuration
  clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability
  clock-mx51: factorize clk_set_parent and clk_get_rate
  eukrea_mbimxsd: add support for DVI displays
  cpuimx25 & cpuimx35: fix OTG port registration in host mode
  i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472
  ...

1  2 
MAINTAINERS
Makefile
arch/arm/Kconfig
arch/arm/mach-lpc32xx/phy3250.c
arch/arm/mach-ux500/board-mop500.c
arch/arm/plat-samsung/include/plat/s3c64xx-spi.h
drivers/spi/Kconfig
kernel/trace/Kconfig
scripts/Makefile.build

diff --combined MAINTAINERS
@@@ -990,11 -990,23 +990,23 @@@ S:      Supporte
  F:    arch/arm/mach-shmobile/
  F:    drivers/sh/
  
+ ARM/TELECHIPS ARM ARCHITECTURE
+ M:    "Hans J. Koch" <hjk@linutronix.de>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm/plat-tcc/
+ F:    arch/arm/mach-tcc8k/
  ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
+ ARM/TETON BGA MACHINE SUPPORT
+ M:    Mark F. Brown <mark.brown314@gmail.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
  ARM/THECUS N2100 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1527,8 -1539,6 +1539,8 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/filesystems/ceph.txt
  F:    fs/ceph
 +F:    net/ceph
 +F:    include/linux/ceph
  
  CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
  M:    David Vrabel <david.vrabel@csr.com>
@@@ -3164,7 -3174,7 +3176,7 @@@ F:      drivers/net/ioc3-eth.
  
  IOC3 SERIAL DRIVER
  M:    Pat Gefre <pfg@sgi.com>
 -L:    linux-mips@linux-mips.org
 +L:    linux-serial@vger.kernel.org
  S:    Maintained
  F:    drivers/serial/ioc3_serial.c
  
@@@ -3241,12 -3251,6 +3253,12 @@@ F:    drivers/net/irda
  F:    include/net/irda/
  F:    net/irda/
  
 +IRQ SUBSYSTEM
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq/core
 +F:    kernel/irq/
 +
  ISAPNP
  M:    Jaroslav Kysela <perex@perex.cz>
  S:    Maintained
@@@ -4813,15 -4817,6 +4825,15 @@@ F:    fs/qnx4
  F:    include/linux/qnx4_fs.h
  F:    include/linux/qnxtypes.h
  
 +RADOS BLOCK DEVICE (RBD)
 +F:    include/linux/qnxtypes.h
 +M:    Yehuda Sadeh <yehuda@hq.newdream.net>
 +M:    Sage Weil <sage@newdream.net>
 +M:    ceph-devel@vger.kernel.org
 +S:    Supported
 +F:    drivers/block/rbd.c
 +F:    drivers/block/rbd_types.h
 +
  RADEON FRAMEBUFFER DISPLAY DRIVER
  M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
  L:    linux-fbdev@vger.kernel.org
diff --combined Makefile
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 36
 -EXTRAVERSION = -rc8
 +EXTRAVERSION =
  NAME = Flesh-Eating Bats with Fangs
  
  # *DOCUMENTATION*
@@@ -554,8 -554,15 +554,15 @@@ endi
  ifdef CONFIG_FRAME_POINTER
  KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
  else
+ # Some targets (ARM with Thumb2, for example), can't be built with frame
+ # pointers.  For those, we don't have FUNCTION_TRACER automatically
+ # select FRAME_POINTER.  However, FUNCTION_TRACER adds -pg, and this is
+ # incompatible with -fomit-frame-pointer with current GCC, so we don't use
+ # -fomit-frame-pointer with FUNCTION_TRACER.
+ ifndef CONFIG_FUNCTION_TRACER
  KBUILD_CFLAGS += -fomit-frame-pointer
  endif
+ endif
  
  ifdef CONFIG_DEBUG_INFO
  KBUILD_CFLAGS += -g
@@@ -568,12 -575,6 +575,12 @@@ endi
  
  ifdef CONFIG_FUNCTION_TRACER
  KBUILD_CFLAGS += -pg
 +ifdef CONFIG_DYNAMIC_FTRACE
 +      ifdef CONFIG_HAVE_C_RECORDMCOUNT
 +              BUILD_C_RECORDMCOUNT := y
 +              export BUILD_C_RECORDMCOUNT
 +      endif
 +endif
  endif
  
  # We trigger additional mismatches with less inlining
@@@ -597,11 -598,6 +604,11 @@@ KBUILD_CFLAGS    += $(call cc-option,-fno-
  # conserve stack if available
  KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
  
 +# check for 'asm goto'
 +ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
 +      KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
 +endif
 +
  # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
  # But warn user when we do so
  warn-assign = \
diff --combined arch/arm/Kconfig
@@@ -19,14 -19,16 +19,17 @@@ config AR
        select HAVE_KPROBES if (!XIP_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_GENERIC_DMA_COHERENT
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZO
        select HAVE_KERNEL_LZMA
 +      select HAVE_IRQ_WORK
        select HAVE_PERF_EVENTS
        select PERF_USE_VMALLOC
        select HAVE_REGS_AND_STACK_ACCESS_API
+       select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V7))
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@@ -146,6 -148,9 +149,9 @@@ config ARCH_HAS_CPUFRE
          and that the relevant menu configurations are displayed for
          it.
  
+ config ARCH_HAS_CPU_IDLE_WAIT
+        def_bool y
  config GENERIC_HWEIGHT
        bool
        default y
@@@ -511,6 -516,7 +517,7 @@@ config ARCH_MM
        select GENERIC_CLOCKEVENTS
        select TICK_ONESHOT
        select PLAT_PXA
+       select SPARSE_IRQ
        help
          Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
  
@@@ -588,6 -594,7 +595,7 @@@ config ARCH_PX
        select GENERIC_CLOCKEVENTS
        select TICK_ONESHOT
        select PLAT_PXA
+       select SPARSE_IRQ
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
  
@@@ -679,8 -686,8 +687,8 @@@ config ARCH_S3C64X
        help
          Samsung S3C64XX series based systems
  
- config ARCH_S5P6440
-       bool "Samsung S5P6440"
+ config ARCH_S5P64X0
+       bool "Samsung S5P6440 S5P6450"
        select CPU_V6
        select GENERIC_GPIO
        select HAVE_CLK
        select HAVE_S3C2410_I2C
        select HAVE_S3C_RTC
        help
-         Samsung S5P6440 CPU based systems
+         Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
+         SMDK6450.
  
  config ARCH_S5P6442
        bool "Samsung S5P6442"
@@@ -748,6 -756,15 +757,15 @@@ config ARCH_SHAR
          Support for the StrongARM based Digital DNARD machine, also known
          as "Shark" (<http://www.shark-linux.de/shark.html>).
  
+ config ARCH_TCC_926
+       bool "Telechips TCC ARM926-based systems"
+       select CPU_ARM926T
+       select HAVE_CLK
+       select COMMON_CLKDEV
+       select GENERIC_CLOCKEVENTS
+       help
+         Support for Telechips TCC ARM926-based systems.
  config ARCH_LH7A40X
        bool "Sharp LH7A40X"
        select CPU_ARM922T
@@@ -916,6 -933,8 +934,8 @@@ source "arch/arm/plat-s5p/Kconfig
  
  source "arch/arm/plat-spear/Kconfig"
  
+ source "arch/arm/plat-tcc/Kconfig"
  if ARCH_S3C2410
  source "arch/arm/mach-s3c2400/Kconfig"
  source "arch/arm/mach-s3c2410/Kconfig"
@@@ -929,7 -948,7 +949,7 @@@ if ARCH_S3C64X
  source "arch/arm/mach-s3c64xx/Kconfig"
  endif
  
- source "arch/arm/mach-s5p6440/Kconfig"
+ source "arch/arm/mach-s5p64x0/Kconfig"
  
  source "arch/arm/mach-s5p6442/Kconfig"
  
@@@ -1003,7 -1022,7 +1023,7 @@@ endi
  
  config ARM_ERRATA_411920
        bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
-       depends on CPU_V6 && !SMP
+       depends on CPU_V6
        help
          Invalidation of the Instruction Cache operation can
          fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
@@@ -1182,13 -1201,13 +1202,13 @@@ source "kernel/time/Kconfig
  
  config SMP
        bool "Symmetric Multi-Processing (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\
-                MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
-                ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
+       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
        select USE_GENERIC_SMP_HELPERS
-       select HAVE_ARM_SCU if ARCH_REALVIEW || ARCH_OMAP4 || ARCH_S5PV310 ||\
-                ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4
+       select HAVE_ARM_SCU
        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
  
          If you don't know what to do here, say N.
  
+ config SMP_ON_UP
+       bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       depends on SMP && !XIP && !THUMB2_KERNEL
+       default y
+       help
+         SMP kernels contain instructions which fail on non-SMP processors.
+         Enabling this option allows the kernel to modify itself to make
+         these instructions safe.  Disabling it allows about 1K of space
+         savings.
+         If you don't know what to do here, say Y.
  config HAVE_ARM_SCU
        bool
        depends on SMP
@@@ -1256,12 -1288,9 +1289,9 @@@ config HOTPLUG_CP
  
  config LOCAL_TIMERS
        bool "Use local timer interrupts"
-       depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
-               REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
-               ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
+       depends on SMP
        default y
-       select HAVE_ARM_TWD if ARCH_REALVIEW || ARCH_OMAP4 || ARCH_S5PV310 || \
-               ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS
+       select HAVE_ARM_TWD
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
@@@ -1272,7 -1301,7 +1302,7 @@@ source kernel/Kconfig.preemp
  
  config HZ
        int
-       default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || \
+       default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \
                ARCH_S5P6442 || ARCH_S5PV210 || ARCH_S5PV310
        default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
        default AT91_TIMER_HZ if ARCH_AT91
@@@ -1478,6 -1507,20 +1508,20 @@@ 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 SECCOMP
+       bool
+       prompt "Enable seccomp to safely compute untrusted bytecode"
+       ---help---
+         This kernel feature is useful for number crunching applications
+         that may need to compute untrusted bytecode during their
+         execution. By using pipes or other transports made available to
+         the process as file descriptors supporting the read/write
+         syscalls, it's possible to isolate those applications in
+         their own address space using seccomp. Once seccomp is
+         enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
+         and the task is only allowed to execute a few safe syscalls
+         defined by each seccomp mode.
  config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
        help
@@@ -172,12 -172,18 +172,12 @@@ static void phy3250_spi_cs_set(u32 cont
  }
  
  static struct pl022_config_chip spi0_chip_info = {
 -      .lbm                    = LOOPBACK_DISABLED,
        .com_mode               = INTERRUPT_TRANSFER,
        .iface                  = SSP_INTERFACE_MOTOROLA_SPI,
        .hierarchy              = SSP_MASTER,
        .slave_tx_disable       = 0,
 -      .endian_tx              = SSP_TX_LSB,
 -      .endian_rx              = SSP_RX_LSB,
 -      .data_size              = SSP_DATA_BITS_8,
        .rx_lev_trig            = SSP_RX_4_OR_MORE_ELEM,
        .tx_lev_trig            = SSP_TX_4_OR_MORE_EMPTY_LOC,
 -      .clk_phase              = SSP_CLK_FIRST_EDGE,
 -      .clk_pol                = SSP_CLK_POL_IDLE_LOW,
        .ctrl_len               = SSP_BITS_8,
        .wait_state             = SSP_MWIRE_WAIT_ZERO,
        .duplex                 = SSP_MICROWIRE_CHANNEL_FULL_DUPLEX,
@@@ -233,7 -239,6 +233,7 @@@ static int __init phy3250_spi_board_reg
                        .max_speed_hz = 5000000,
                        .bus_num = 0,
                        .chip_select = 0,
 +                      .mode = SPI_MODE_0,
                        .platform_data = &eeprom,
                        .controller_data = &spi0_chip_info,
                },
@@@ -382,8 -387,6 +382,6 @@@ arch_initcall(lpc32xx_display_uid)
  
  MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller")
        /* Maintainer: Kevin Wells, NXP Semiconductors */
-       .phys_io        = LPC32XX_UART5_BASE,
-       .io_pg_offst    = ((IO_ADDRESS(LPC32XX_UART5_BASE))>>18) & 0xfffc,
        .boot_params    = 0x80000100,
        .map_io         = lpc32xx_map_io,
        .init_irq       = lpc32xx_init_irq,
  #include <mach/hardware.h>
  #include <mach/setup.h>
  #include <mach/devices.h>
+ #include <mach/irqs.h>
  
  #include "pins-db8500.h"
+ #include "board-mop500.h"
  
  static pin_cfg_t mop500_pins[] = {
        /* SSP0 */
@@@ -55,13 -57,19 +57,13 @@@ static void ab4500_spi_cs_control(u32 c
  }
  
  struct pl022_config_chip ab4500_chip_info = {
 -      .lbm = LOOPBACK_DISABLED,
        .com_mode = INTERRUPT_TRANSFER,
        .iface = SSP_INTERFACE_MOTOROLA_SPI,
        /* we can act as master only */
        .hierarchy = SSP_MASTER,
        .slave_tx_disable = 0,
 -      .endian_rx = SSP_RX_MSB,
 -      .endian_tx = SSP_TX_MSB,
 -      .data_size = SSP_DATA_BITS_24,
        .rx_lev_trig = SSP_RX_1_OR_MORE_ELEM,
        .tx_lev_trig = SSP_TX_1_OR_MORE_EMPTY_LOC,
 -      .clk_phase = SSP_CLK_SECOND_EDGE,
 -      .clk_pol = SSP_CLK_POL_IDLE_HIGH,
        .cs_control = ab4500_spi_cs_control,
  };
  
@@@ -69,15 -77,33 +71,33 @@@ static struct ab8500_platform_data ab85
        .irq_base       = MOP500_AB8500_IRQ_BASE,
  };
  
- static struct spi_board_info u8500_spi_devices[] = {
+ static struct resource ab8500_resources[] = {
+       [0] = {
+               .start = IRQ_AB8500,
+               .end = IRQ_AB8500,
+               .flags = IORESOURCE_IRQ
+       }
+ };
+ struct platform_device ab8500_device = {
+       .name = "ab8500-i2c",
+       .id = 0,
+       .dev = {
+               .platform_data = &ab8500_platdata,
+       },
+       .num_resources = 1,
+       .resource = ab8500_resources,
+ };
+ static struct spi_board_info ab8500_spi_devices[] = {
        {
-               .modalias = "ab8500",
+               .modalias = "ab8500-spi",
                .controller_data = &ab4500_chip_info,
                .platform_data = &ab8500_platdata,
                .max_speed_hz = 12000000,
                .bus_num = 0,
                .chip_select = 0,
 -              .mode = SPI_MODE_0,
 +              .mode = SPI_MODE_3,
                .irq = IRQ_DB8500_AB8500,
        },
  };
@@@ -157,14 -183,18 +177,18 @@@ static void __init u8500_init_machine(v
  
        platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs));
  
-       spi_register_board_info(u8500_spi_devices,
-                       ARRAY_SIZE(u8500_spi_devices));
+       mop500_sdi_init();
+       /* If HW is early drop (ED) or V1.0 then use SPI to access AB8500 */
+       if (cpu_is_u8500ed() || cpu_is_u8500v10())
+               spi_register_board_info(ab8500_spi_devices,
+                       ARRAY_SIZE(ab8500_spi_devices));
+       else /* If HW is v.1.1 or later use I2C to access AB8500 */
+               platform_device_register(&ab8500_device);
  }
  
  MACHINE_START(U8500, "ST-Ericsson MOP500 platform")
        /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */
-       .phys_io        = U8500_UART2_BASE,
-       .io_pg_offst    = (IO_ADDRESS(U8500_UART2_BASE) >> 18) & 0xfffc,
        .boot_params    = 0x100,
        .map_io         = u8500_map_io,
        .init_irq       = ux500_init_irq,
@@@ -32,8 -32,6 +32,8 @@@ struct s3c64xx_spi_csinfo 
   * struct s3c64xx_spi_info - SPI Controller defining structure
   * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field.
   * @src_clk_name: Platform name of the corresponding clock.
 + * @clk_from_cmu: If the SPI clock/prescalar control block is present
 + *     by the platform's clock-management-unit and not in SPI controller.
   * @num_cs: Number of CS this controller emulates.
   * @cfg_gpio: Configure pins for this SPI controller.
   * @fifo_lvl_mask: All tx fifo_lvl fields start at offset-6
@@@ -43,7 -41,6 +43,7 @@@
  struct s3c64xx_spi_info {
        int src_clk_nr;
        char *src_clk_name;
 +      bool clk_from_cmu;
  
        int num_cs;
  
@@@ -68,7 -65,7 +68,7 @@@
  extern void s3c64xx_spi_set_info(int cntrlr, int src_clk_nr, int num_cs);
  extern void s5pc100_spi_set_info(int cntrlr, int src_clk_nr, int num_cs);
  extern void s5pv210_spi_set_info(int cntrlr, int src_clk_nr, int num_cs);
- extern void s5p6440_spi_set_info(int cntrlr, int src_clk_nr, int num_cs);
+ extern void s5p64x0_spi_set_info(int cntrlr, int src_clk_nr, int num_cs);
  extern void s5p6442_spi_set_info(int cntrlr, int src_clk_nr, int num_cs);
  
  #endif /* __S3C64XX_PLAT_SPI_H */
diff --combined drivers/spi/Kconfig
@@@ -143,10 -143,26 +143,26 @@@ config SPI_GPI
          GPIO operations, you should be able to leverage that for better
          speed with a custom version of this driver; see the source code.
  
+ config SPI_IMX_VER_IMX1
+       def_bool y if SOC_IMX1
+ config SPI_IMX_VER_0_0
+       def_bool y if SOC_IMX21 || SOC_IMX27
+ config SPI_IMX_VER_0_4
+       def_bool y if ARCH_MX31
+ config SPI_IMX_VER_0_7
+       def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51
+ config SPI_IMX_VER_2_3
+       def_bool y if ARCH_MX51
  config SPI_IMX
        tristate "Freescale i.MX SPI controllers"
        depends on ARCH_MXC
        select SPI_BITBANG
+       default m if IMX_HAVE_PLATFORM_SPI_IMX
        help
          This enables using the Freescale i.MX SPI controllers in master
          mode.
@@@ -182,27 -198,12 +198,27 @@@ config SPI_MPC512x_PS
          This enables using the Freescale MPC5121 Programmable Serial
          Controller in SPI master mode.
  
 -config SPI_MPC8xxx
 -      tristate "Freescale MPC8xxx SPI controller"
 +config SPI_FSL_LIB
 +      tristate
        depends on FSL_SOC
 +
 +config SPI_FSL_SPI
 +      tristate "Freescale SPI controller"
 +      depends on FSL_SOC
 +      select SPI_FSL_LIB
        help
 -        This enables using the Freescale MPC8xxx SPI controllers in master
 -        mode.
 +        This enables using the Freescale SPI controllers in master mode.
 +        MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
 +        MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
 +
 +config SPI_FSL_ESPI
 +      tristate "Freescale eSPI controller"
 +      depends on FSL_SOC
 +      select SPI_FSL_LIB
 +      help
 +        This enables using the Freescale eSPI controllers in master mode.
 +        From MPC8536, 85xx platform uses the controller, and all P10xx,
 +        P20xx, P30xx,P40xx, P50xx uses this controller.
  
  config SPI_OMAP_UWIRE
        tristate "OMAP1 MicroWire"
@@@ -313,13 -314,6 +329,13 @@@ config SPI_STMP3XX
        help
          SPI driver for Freescale STMP37xx/378x SoC SSP interface
  
 +config SPI_TOPCLIFF_PCH
 +      tristate "Topcliff PCH SPI Controller"
 +      depends on PCI
 +      help
 +        SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
 +        used in some x86 embedded processors.
 +
  config SPI_TXX9
        tristate "Toshiba TXx9 SPI controller"
        depends on GENERIC_GPIO && CPU_TX49XX
diff --combined kernel/trace/Kconfig
@@@ -49,11 -49,6 +49,11 @@@ config HAVE_SYSCALL_TRACEPOINT
        help
          See Documentation/trace/ftrace-design.txt
  
 +config HAVE_C_RECORDMCOUNT
 +      bool
 +      help
 +        C version of recordmcount available?
 +
  config TRACER_MAX_TRACE
        bool
  
@@@ -126,7 -121,7 +126,7 @@@ if FTRAC
  config FUNCTION_TRACER
        bool "Kernel Function Tracer"
        depends on HAVE_FUNCTION_TRACER
-       select FRAME_POINTER
+       select FRAME_POINTER if (!ARM_UNWIND)
        select KALLSYMS
        select GENERIC_TRACER
        select CONTEXT_SWITCH_TRACER
diff --combined scripts/Makefile.build
@@@ -209,22 -209,13 +209,23 @@@ cmd_modversions =                                                               
  endif
  
  ifdef CONFIG_FTRACE_MCOUNT_RECORD
 +ifdef BUILD_C_RECORDMCOUNT
 +# Due to recursion, we must skip empty.o.
 +# The empty.o file is created in the make process in order to determine
 +#  the target endianness and word size. It is made before all other C
 +#  files, including recordmcount.
 +cmd_record_mcount = if [ $(@) != "scripts/mod/empty.o" ]; then                        \
 +                      $(objtree)/scripts/recordmcount "$(@)";                 \
 +                  fi;
 +else
  cmd_record_mcount = set -e ; perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \
        "$(if $(CONFIG_CPU_BIG_ENDIAN),big,little)" \
        "$(if $(CONFIG_64BIT),64,32)" \
-       "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" "$(NM)" "$(RM)" "$(MV)" \
+       "$(OBJDUMP)" "$(OBJCOPY)" "$(CC) $(KBUILD_CFLAGS)" \
+       "$(LD)" "$(NM)" "$(RM)" "$(MV)" \
        "$(if $(part-of-module),1,0)" "$(@)";
  endif
 +endif
  
  define rule_cc_o_c
        $(call echo-cmd,checksrc) $(cmd_checksrc)                         \