Merge branch 'for-linus/samsung4' of git://git.fluff.org/bjdooks/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 19 May 2010 18:49:33 +0000 (11:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 19 May 2010 18:49:33 +0000 (11:49 -0700)
* 'for-linus/samsung4' of git://git.fluff.org/bjdooks/linux: (98 commits)
  Input: s3c24xx_ts - depend on SAMSUNG_DEV_TS and update menu entry
  Input: s3c24xx_ts - Add FEAT for Samsung touchscreen support
  Input: s3c24xx_ts - Implement generic GPIO configuration callback
  ARM: SAMSUNG: Move s3c64xx dev-ts.c to plat-samsung and rename configuration
  ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen
  ARM: S3C64XX: Add touchscreen platform device definition
  ARM: SAMSUNG: Move mach/ts.h to plat/ts.h
  ARM: S5PC100: Move i2c helpers from plat-s5pc1xx to mach-s5pc100
  ARM: S5PC100: Move frame buffer helpers from plat-s5pc1xx to mach-s5pc100
  ARM: S5PC100: gpio.h cleanup
  ARM: S5PC100: Move gpio support from plat-s5pc1xx to mach-s5pc100
  ARM: S5PC100: Use common functions for gpiolib implementation
  drivers: serial: S5PC100 serial driver cleanup
  ARM: S5PC100: Pre-requisite clock patch for plat-s5pc1xx to plat-s5p move
  ARM: SAMSUNG: Copy common I2C0 device helpers to machine directories
  ARM: SAMSUNG: move driver strength gpio configuration helper to common dir
  ARM: S5PV210: Add GPIOlib support
  ARM: SAMSUNGy: fix broken timer irq base
  ARM: SMDK6440: Add audio devices on board
  ARM: S5P6440: Add audio platform devices
  ...

1  2 
arch/arm/Makefile
arch/arm/mm/mmu.c
drivers/input/touchscreen/Kconfig

diff --combined arch/arm/Makefile
@@@ -110,6 -110,8 +110,8 @@@ CHECKFLAGS += -D__arm_
  head-y                := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
  textofs-y     := 0x00008000
  textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
+ # We don't want the htc bootloader to corrupt kernel during resume
+ textofs-$(CONFIG_PM_H1940)      := 0x00108000
  # SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
  ifeq ($(CONFIG_ARCH_SA1100),y)
  textofs-$(CONFIG_SA1111) := 0x00208000
@@@ -121,7 -123,6 +123,7 @@@ machine-$(CONFIG_ARCH_AAEC2000)            := aae
  machine-$(CONFIG_ARCH_AT91)           := at91
  machine-$(CONFIG_ARCH_BCMRING)                := bcmring
  machine-$(CONFIG_ARCH_CLPS711X)               := clps711x
 +machine-$(CONFIG_ARCH_CNS3XXX)                := cns3xxx
  machine-$(CONFIG_ARCH_DAVINCI)                := davinci
  machine-$(CONFIG_ARCH_DOVE)           := dove
  machine-$(CONFIG_ARCH_EBSA110)                := ebsa110
@@@ -176,14 -177,9 +178,14 @@@ machine-$(CONFIG_ARCH_STMP37XX)          := stm
  machine-$(CONFIG_ARCH_U300)           := u300
  machine-$(CONFIG_ARCH_U8500)          := ux500
  machine-$(CONFIG_ARCH_VERSATILE)      := versatile
 +machine-$(CONFIG_ARCH_VEXPRESS)               := vexpress
  machine-$(CONFIG_ARCH_W90X900)                := w90x900
  machine-$(CONFIG_ARCH_NUC93X)         := nuc93x
  machine-$(CONFIG_FOOTBRIDGE)          := footbridge
 +machine-$(CONFIG_MACH_SPEAR300)               := spear3xx
 +machine-$(CONFIG_MACH_SPEAR310)               := spear3xx
 +machine-$(CONFIG_MACH_SPEAR320)               := spear3xx
 +machine-$(CONFIG_MACH_SPEAR600)               := spear6xx
  
  # Platform directory name.  This list is sorted alphanumerically
  # by CONFIG_* macro name.
@@@ -198,8 -194,6 +200,8 @@@ plat-$(CONFIG_PLAT_PXA)            := px
  plat-$(CONFIG_PLAT_S3C24XX)   := s3c24xx samsung
  plat-$(CONFIG_PLAT_S5PC1XX)   := s5pc1xx samsung
  plat-$(CONFIG_PLAT_S5P)               := s5p samsung
 +plat-$(CONFIG_PLAT_SPEAR)     := spear
 +plat-$(CONFIG_PLAT_VERSATILE) := versatile
  
  ifeq ($(CONFIG_ARCH_EBSA110),y)
  # This is what happens if you forget the IOCS16 line.
diff --combined arch/arm/mm/mmu.c
@@@ -14,7 -14,6 +14,7 @@@
  #include <linux/bootmem.h>
  #include <linux/mman.h>
  #include <linux/nodemask.h>
 +#include <linux/sort.h>
  
  #include <asm/cputype.h>
  #include <asm/mach-types.h>
@@@ -604,7 -603,7 +604,7 @@@ static void __init create_36bit_mapping
   * offsets, and we take full advantage of sections and
   * supersections.
   */
 -void __init create_mapping(struct map_desc *md)
 +static void __init create_mapping(struct map_desc *md)
  {
        unsigned long phys, addr, length, end;
        const struct mem_type *type;
@@@ -870,9 -869,10 +870,10 @@@ void __init reserve_node_zero(pg_data_
        if (machine_is_p720t())
                res_size = 0x00014000;
  
-       /* H1940 and RX3715 need to reserve this for suspend */
+       /* H1940, RX3715 and RX1950 need to reserve this for suspend */
  
-       if (machine_is_h1940() || machine_is_rx3715()) {
+       if (machine_is_h1940() || machine_is_rx3715()
+               || machine_is_rx1950()) {
                reserve_bootmem_node(pgdat, 0x30003000, 0x1000,
                                BOOTMEM_DEFAULT);
                reserve_bootmem_node(pgdat, 0x30081000, 0x1000,
@@@ -1018,39 -1018,6 +1019,39 @@@ static void __init kmap_init(void
  #endif
  }
  
 +static inline void map_memory_bank(struct membank *bank)
 +{
 +      struct map_desc map;
 +
 +      map.pfn = bank_pfn_start(bank);
 +      map.virtual = __phys_to_virt(bank_phys_start(bank));
 +      map.length = bank_phys_size(bank);
 +      map.type = MT_MEMORY;
 +
 +      create_mapping(&map);
 +}
 +
 +static void __init map_lowmem(void)
 +{
 +      struct meminfo *mi = &meminfo;
 +      int i;
 +
 +      /* Map all the lowmem memory banks. */
 +      for (i = 0; i < mi->nr_banks; i++) {
 +              struct membank *bank = &mi->bank[i];
 +
 +              if (!bank->highmem)
 +                      map_memory_bank(bank);
 +      }
 +}
 +
 +static int __init meminfo_cmp(const void *_a, const void *_b)
 +{
 +      const struct membank *a = _a, *b = _b;
 +      long cmp = bank_pfn_start(a) - bank_pfn_start(b);
 +      return cmp < 0 ? -1 : cmp > 0 ? 1 : 0;
 +}
 +
  /*
   * paging_init() sets up the page tables, initialises the zone memory
   * maps, and sets up the zero page, bad page and bad page tables.
@@@ -1059,12 -1026,9 +1060,12 @@@ void __init paging_init(struct machine_
  {
        void *zero_page;
  
 +      sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
 +
        build_mem_type_table();
        sanity_check_meminfo();
        prepare_page_table();
 +      map_lowmem();
        bootmem_init();
        devicemaps_init(mdesc);
        kmap_init();
@@@ -99,6 -99,22 +99,6 @@@ config TOUCHSCREEN_BITS
          To compile this driver as a module, choose M here: the
          module will be called h3600_ts_input.
  
 -config TOUCHSCREEN_CORGI
 -      tristate "SharpSL (Corgi and Spitz series) touchscreen driver (DEPRECATED)"
 -      depends on PXA_SHARPSL
 -      select CORGI_SSP_DEPRECATED
 -      help
 -        Say Y here to enable the driver for the touchscreen on the
 -        Sharp SL-C7xx and SL-Cxx00 series of PDAs.
 -
 -        If unsure, say N.
 -
 -        To compile this driver as a module, choose M here: the
 -        module will be called corgi_ts.
 -
 -        NOTE: this driver is deprecated, try enable SPI and generic
 -        ADS7846-based touchscreen driver.
 -
  config TOUCHSCREEN_DA9034
        tristate "Touchscreen support for Dialog Semiconductor DA9034"
        depends on PMIC_DA903X
@@@ -142,8 -158,8 +142,8 @@@ config TOUCHSCREEN_FUJITS
          module will be called fujitsu-ts.
  
  config TOUCHSCREEN_S3C2410
-       tristate "Samsung S3C2410 touchscreen input driver"
-       depends on ARCH_S3C2410
+       tristate "Samsung S3C2410/generic touchscreen input driver"
+       depends on ARCH_S3C2410 || SAMSUNG_DEV_TS
        select S3C24XX_ADC
        help
          Say Y here if you have the s3c2410 touchscreen.