]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
Merge commit 'a88f9e27498afaea615ad3e93af4f26df1f84987' into after-upstream-android
authorDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 08:36:41 +0000 (01:36 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 08:36:41 +0000 (01:36 -0700)
Conflicts:
arch/arm/common/Kconfig
arch/arm/mm/Makefile
arch/arm/mm/cache-l2x0.c
arch/arm/mm/mmu.c
drivers/input/Kconfig
drivers/input/Makefile
drivers/power/Kconfig
kernel/futex.c

53 files changed:
1  2 
arch/arm/Kconfig
arch/arm/common/Kconfig
arch/arm/include/asm/cacheflush.h
arch/arm/include/asm/hardware/cache-l2x0.h
arch/arm/kernel/process.c
arch/arm/kernel/smp.c
arch/arm/mm/cache-l2x0.c
arch/arm/mm/fault.c
arch/arm/mm/mmu.c
block/genhd.c
drivers/cpufreq/Makefile
drivers/cpufreq/cpufreq_stats.c
drivers/cpuidle/governors/menu.c
drivers/input/Kconfig
drivers/input/Makefile
drivers/input/misc/Kconfig
drivers/input/misc/Makefile
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/mmc/card/block.c
drivers/mmc/core/core.c
drivers/mmc/core/sd.c
drivers/mmc/core/sdio.c
drivers/mmc/core/sdio_io.c
drivers/mtd/nand/Kconfig
drivers/net/tun.c
drivers/net/wireless/Kconfig
drivers/power/Kconfig
drivers/power/Makefile
drivers/tty/serial/serial_core.c
drivers/usb/gadget/Kconfig
drivers/usb/gadget/Makefile
drivers/usb/gadget/f_rndis.c
drivers/usb/gadget/udc-core.c
drivers/usb/phy/Kconfig
drivers/usb/phy/Makefile
drivers/video/Kconfig
include/linux/cgroup.h
include/linux/cpufreq.h
include/linux/mmc/host.h
include/net/bluetooth/hci_core.h
include/trace/events/power.h
include/uapi/linux/if_pppox.h
kernel/cgroup.c
kernel/cpu.c
kernel/fork.c
kernel/printk.c
kernel/trace/Kconfig
kernel/trace/Makefile
kernel/trace/trace.c
kernel/trace/trace.h
lib/Kconfig.debug
mm/page_alloc.c

Simple merge
index 7d94dbd20af23294743497032b4c4495bcba886f,992d4046bb8ac7766002cf16d3dd733668b9c121..afb9a1da3b5c0ff36c9ab28d19193e3665536c55
@@@ -18,11 -18,52 +18,60 @@@ config SHARP_PARA
  config SHARP_SCOOP
        bool
  
+ config FIQ_GLUE
+       bool
+       select FIQ
+ config FIQ_DEBUGGER
+       bool "FIQ Mode Serial Debugger"
+       select FIQ
+       select FIQ_GLUE
+       default n
+       help
+         The FIQ serial debugger can accept commands even when the
+         kernel is unresponsive due to being stuck with interrupts
+         disabled.
+ config FIQ_DEBUGGER_NO_SLEEP
+       bool "Keep serial debugger active"
+       depends on FIQ_DEBUGGER
+       default n
+       help
+         Enables the serial debugger at boot. Passing
+         fiq_debugger.no_sleep on the kernel commandline will
+         override this config option.
+ config FIQ_DEBUGGER_WAKEUP_IRQ_ALWAYS_ON
+       bool "Don't disable wakeup IRQ when debugger is active"
+       depends on FIQ_DEBUGGER
+       default n
+       help
+         Don't disable the wakeup irq when enabling the uart clock.  This will
+         cause extra interrupts, but it makes the serial debugger usable with
+         on some MSM radio builds that ignore the uart clock request in power
+         collapse.
+ config FIQ_DEBUGGER_CONSOLE
+       bool "Console on FIQ Serial Debugger port"
+       depends on FIQ_DEBUGGER
+       default n
+       help
+         Enables a console so that printk messages are displayed on
+         the debugger serial port as the occur.
+ config FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE
+       bool "Put the FIQ debugger into console mode by default"
+       depends on FIQ_DEBUGGER_CONSOLE
+       default n
+       help
+         If enabled, this puts the fiq debugger into console mode by default.
+         Otherwise, the fiq debugger will start out in debug mode.
 +config GIC_SET_MULTIPLE_CPUS
 +      bool "Use affinity hint to allow multiple CPUs for IRQ"
 +      depends on ARM_GIC && SMP
 +      default n
 +      help
 +        IRQ affinity is always set by gic to the 1st cpu in the requested
 +        mask. If this option is enabled, affinity is also set to all cpus
 +        present in affinity_hint and requested masks.
Simple merge
index 8a78297295f512ed3c4f06dc62626fdc245f3a67,0ca0f5a7c84b33774d6e80ab564103b15ebfdbf0..650ddf380261fe1dcab31161802d81148d4f33cd
  
  #define L2X0_WAY_SIZE_SHIFT           3
  
+ #define REV_PL310_R2P0                                4
  #ifndef __ASSEMBLY__
 -extern void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask);
 +extern void l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask);
 +extern void l2x0_enable(void);
  #if defined(CONFIG_CACHE_L2X0) && defined(CONFIG_OF)
  extern int l2x0_of_init(u32 aux_val, u32 aux_mask);
  #else
Simple merge
Simple merge
index 36f7a621d85e7424e383934d829101db54d082ce,90a130f98acfd1b527d096b034b1632fcf93bd74..27c3e03a3c36091d3ef62a1fdbc7da569ab47559
@@@ -330,46 -363,40 +373,44 @@@ static void l2x0_unlock(u32 cache_id
        }
  }
  
 -void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
 +void l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
  {
        u32 aux;
-       u32 cache_id;
        u32 way_size = 0;
-       int ways;
        int way_size_shift = L2X0_WAY_SIZE_SHIFT;
        const char *type;
  
        l2x0_base = base;
        if (cache_id_part_number_from_dt)
-               cache_id = cache_id_part_number_from_dt;
+               l2x0_cache_id = cache_id_part_number_from_dt;
        else
-               cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID);
+               l2x0_cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID);
        aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
  
 -      aux &= aux_mask;
 -      aux |= aux_val;
 -
        /* Determine the number of ways */
-       switch (cache_id & L2X0_CACHE_ID_PART_MASK) {
+       switch (l2x0_cache_id & L2X0_CACHE_ID_PART_MASK) {
        case L2X0_CACHE_ID_PART_L310:
                if (aux & (1 << 16))
-                       ways = 16;
+                       l2x0_ways = 16;
                else
-                       ways = 8;
+                       l2x0_ways = 8;
                type = "L310";
  #ifdef CONFIG_PL310_ERRATA_753970
                /* Unmapped register. */
                sync_reg_offset = L2X0_DUMMY_REG;
  #endif
-               if ((cache_id & L2X0_CACHE_ID_RTL_MASK) <= L2X0_CACHE_ID_RTL_R3P0)
+               if ((l2x0_cache_id & L2X0_CACHE_ID_RTL_MASK) <= L2X0_CACHE_ID_RTL_R3P0)
                        outer_cache.set_debug = pl310_set_debug;
 +
 +              /*
 +               * Set bit 22 in the auxiliary control register. If this bit
 +               * is cleared, PL310 treats Normal Shared Non-cacheable
 +               * accesses as Cacheable no-allocate.
 +               */
 +              aux_val |= 1 << 22;
                break;
        case L2X0_CACHE_ID_PART_L210:
-               ways = (aux >> 13) & 0xf;
+               l2x0_ways = (aux >> 13) & 0xf;
                type = "L210";
                break;
  
         */
        if (!(readl_relaxed(l2x0_base + L2X0_CTRL) & L2X0_CTRL_EN)) {
                /* Make sure that I&D is not locked down when starting */
-               l2x0_unlock(cache_id);
+               l2x0_unlock(l2x0_cache_id);
  
 +              aux &= aux_mask;
 +              aux |= aux_val;
 +
                /* l2x0 controller is disabled */
                writel_relaxed(aux, l2x0_base + L2X0_AUX_CTRL);
  
                outer_cache.disable = l2x0_disable;
        }
  
 -      printk(KERN_INFO "%s cache controller enabled\n", type);
 -      printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL 0x%08x, Cache size: %d B\n",
 +      pr_info_once("%s cache controller enabled\n", type);
 +      pr_info_once("l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL 0x%08x, Cache size: %d B\n",
-                       ways, cache_id, aux, l2x0_size);
+                       l2x0_ways, l2x0_cache_id, aux, l2x0_size);
  }
  
  #ifdef CONFIG_OF
Simple merge
index c68646dfe70e5a7a9e90dd43687b355ec90b515a,394342d0482e0f14f75e15558b12aa6e38a23ff1..e103fe1115fa775751360b6c1d127a60d2a6f312
@@@ -645,11 -665,10 +665,12 @@@ static void __init __map_init_section(p
  
  static void __init alloc_init_pmd(pud_t *pud, unsigned long addr,
                                      unsigned long end, phys_addr_t phys,
-                                     const struct mem_type *type)
+                                     const struct mem_type *type,
+                                     bool force_pages)
  {
        pmd_t *pmd = pmd_offset(pud, addr);
 +      unsigned long pages_2m = 0, pages_4k = 0;
 +      unsigned long stash_phys = phys;
        unsigned long next;
  
        do {
                 * aligned to a section boundary.
                 */
                if (type->prot_sect &&
-                               ((addr | next | phys) & ~SECTION_MASK) == 0) {
+                               ((addr | next | phys) & ~SECTION_MASK) == 0 &&
+                               !force_pages) {
 +                      pages_2m += (end-addr) >> (PGDIR_SHIFT);
                        __map_init_section(pmd, addr, next, phys, type);
                } else {
 +                      pages_4k += (end-addr) >> PAGE_SHIFT;
                        alloc_init_pte(pmd, addr, next,
                                                __phys_to_pfn(phys), type);
                }
@@@ -1229,27 -1265,15 +1274,27 @@@ static void __init devicemaps_init(stru
        map.pfn = __phys_to_pfn(virt_to_phys(vectors));
        map.virtual = 0xffff0000;
        map.length = PAGE_SIZE;
 +#ifdef CONFIG_KUSER_HELPERS
        map.type = MT_HIGH_VECTORS;
-       create_mapping(&map);
 +#else
 +      map.type = MT_LOW_VECTORS;
 +#endif
+       create_mapping(&map, false);
  
        if (!vectors_high()) {
                map.virtual = 0;
 +              map.length = PAGE_SIZE * 2;
                map.type = MT_LOW_VECTORS;
-               create_mapping(&map);
+               create_mapping(&map, false);
        }
  
-       create_mapping(&map);
 +      /* Now create a kernel read-only mapping */
 +      map.pfn += 1;
 +      map.virtual = 0xffff0000 + PAGE_SIZE;
 +      map.length = PAGE_SIZE;
 +      map.type = MT_LOW_VECTORS;
++      create_mapping(&map, false);
 +
        /*
         * Ask the machine support to map in the statically mapped devices.
         */
diff --cc block/genhd.c
Simple merge
Simple merge
index 6fc2acefc27b0f14012ddb9337d376bb39231809,2ccfaed7d8441076f14a6e44c7e619a5067e411b..914b8b15a9bb4261d73bdc3c703d3bc71c87e446
@@@ -362,9 -376,16 +383,13 @@@ static int __cpuinit cpufreq_stat_cpu_c
                cpufreq_stats_free_sysfs(cpu);
                break;
        case CPU_DEAD:
 -              cpufreq_stats_free_table(cpu);
 -              break;
 -      case CPU_UP_CANCELED_FROZEN:
 -              cpufreq_stats_free_sysfs(cpu);
 +      case CPU_DEAD_FROZEN:
                cpufreq_stats_free_table(cpu);
                break;
+       case CPU_DOWN_FAILED:
+       case CPU_DOWN_FAILED_FROZEN:
+               cpufreq_stats_create_table_cpu(cpu);
+               break;
        }
        return NOTIFY_OK;
  }
Simple merge
index 9fdb483be9653e187a0045c1a6a6cfefe348af75,3ad49c1f0a304fbc2fe777f009e3d6eda3914295..27607e7c5ec6a92ce88885ee15b75aff2efc6494
@@@ -174,16 -174,15 +174,25 @@@ config INPUT_APMPOWE
          To compile this driver as a module, choose M here: the
          module will be called apm-power.
  
+ config INPUT_KEYRESET
+       tristate "Reset key"
+       depends on INPUT
+       ---help---
+         Say Y here if you want to reboot when some keys are pressed;
+         To compile this driver as a module, choose M here: the
+         module will be called keyreset.
 +config INPUT_CFBOOST
 +      tristate "Input event CPU frequency booster"
 +      depends on INPUT && CPU_FREQ
 +      help
 +        Say Y here if you want to temporarily boost CPU frequency upon input
 +        events.
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called input-cfboost.
 +
  comment "Input Device Drivers"
  
  source "drivers/input/keyboard/Kconfig"
index a91b24b7c7d7e268e3dcd4393e06ca59b5f5680f,191ea43d0800f8036aba0b065d5e580de4521fe0..891b60bb247f1de8f6317db1b70e89ba26252a76
@@@ -25,5 -25,4 +25,6 @@@ obj-$(CONFIG_INPUT_TOUCHSCREEN)       += touc
  obj-$(CONFIG_INPUT_MISC)      += misc/
  
  obj-$(CONFIG_INPUT_APMPOWER)  += apm-power.o
+ obj-$(CONFIG_INPUT_KEYRESET)  += keyreset.o
 +
 +obj-$(CONFIG_INPUT_CFBOOST)   += input-cfboost.o
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 57c5c035481b54fac4ea1af6c96b86ca2da82f58,8fdeb07723a67b49c94f2f79e75e904713170ae9..63dc16b830799a72567b33c6057f8a1a2bc2a4e2
mode 100644,100755..100755
Simple merge
Simple merge
Simple merge
index 0ca0e8012fd31d9136eb883ec97109bd093b6dba,430ef8c8b6a808a09da9e0f99c8fb7ed7ff8de66..ce80850088555ac805d747e85e5f928b34e41caa
@@@ -231,15 -204,16 +231,25 @@@ config BATTERY_MAX1704
          with MAX17042. This driver also supports max17047/50 chips which are
          improved version of max17042.
  
 +config BATTERY_MAX17048
 +      tristate "Maxim MAX17048/17049 Fuel Gauge"
 +      depends on I2C
 +      help
 +        MAX17048 is fuel-gauge systems for lithium-ion (Li+) batteries
 +        in handheld and portable equipment. The MAX17048 is configured
 +        to operate with a single lithium cell, and MAX17049 for two lithium
 +        cells.
 +
+ config BATTERY_ANDROID
+       tristate "Battery driver for Android"
+       help
+         Say Y to enable generic support for battery charging according
+         to common Android policies.
+         This driver adds periodic battery level and health monitoring,
+         kernel log reporting and other debugging features, common board
+         battery file glue logic for battery/case temperature sensors,
+         etc.
  config BATTERY_Z2
        tristate "Z2 battery driver"
        depends on I2C && MACH_ZIPIT2
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/cgroup.c
Simple merge
diff --cc kernel/cpu.c
Simple merge
diff --cc kernel/fork.c
Simple merge
diff --cc kernel/printk.c
Simple merge
Simple merge
index 2ac813c96712ae0573102fe7bb411df7c6d4a692,45012122fbb6cb30eb42e62d57c1aa4a293cd64b..40e9b13e0b30737c237d2912859d7721645fa4e6
@@@ -58,9 -58,8 +58,10 @@@ endi
  ifeq ($(CONFIG_TRACING),y)
  obj-$(CONFIG_KGDB_KDB) += trace_kdb.o
  endif
 +obj-$(CONFIG_TRACELEVEL) += tracelevel.o
 +obj-$(CONFIG_TRACEDUMP) += tracedump.o
  obj-$(CONFIG_PROBE_EVENTS) += trace_probe.o
  obj-$(CONFIG_UPROBE_EVENT) += trace_uprobe.o
+ obj-$(CONFIG_GPU_TRACEPOINTS) += gpu-traces.o
  
  libftrace-y := ftrace.o
Simple merge
Simple merge
Simple merge
diff --cc mm/page_alloc.c
Simple merge