]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
Merge branch 'android/android-3.10' into dev-kernel-3.10
authorDeepak Nibade <dnibade@nvidia.com>
Wed, 23 Jul 2014 10:15:28 +0000 (15:45 +0530)
committerDeepak Nibade <dnibade@nvidia.com>
Wed, 6 Aug 2014 11:33:35 +0000 (17:03 +0530)
Bug 200023653

Change-Id: Ia906220709d21b03b8e01f7eb23b8f565f2ebdb3
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
48 files changed:
1  2 
Documentation/networking/ip-sysctl.txt
arch/arm/common/Kconfig
arch/arm64/Kconfig
arch/arm64/Makefile
arch/arm64/boot/Makefile
arch/arm64/boot/dts/Makefile
drivers/cpufreq/cpufreq_interactive.c
drivers/cpufreq/cpufreq_stats.c
drivers/hid/hid-input.c
drivers/input/Kconfig
drivers/input/Makefile
drivers/of/fdt.c
drivers/power/power_supply_sysfs.c
drivers/staging/android/Kconfig
drivers/staging/android/fiq_debugger/fiq_debugger.c
drivers/usb/gadget/f_accessory.c
drivers/usb/gadget/f_mtp.c
fs/pstore/ram.c
include/linux/ipv6.h
include/linux/of_fdt.h
include/linux/power_supply.h
include/net/addrconf.h
include/net/cfg80211.h
include/net/ip.h
include/net/ip6_route.h
include/net/ipv6.h
include/uapi/linux/input.h
include/uapi/linux/nl80211.h
kernel/futex.c
net/core/fib_rules.c
net/ipv4/fib_frontend.c
net/ipv4/ip_output.c
net/ipv4/ping.c
net/ipv4/raw.c
net/ipv4/route.c
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_ipv4.c
net/ipv4/udp.c
net/ipv6/addrconf.c
net/ipv6/datagram.c
net/ipv6/icmp.c
net/ipv6/raw.c
net/ipv6/route.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/wireless/nl80211.c
net/wireless/scan.c
security/selinux/hooks.c

index 3e6e2180643e782aa848356d7cb4c2d356a0b8b3,ce01364a96e3b37ae4b7e2147515834131ca2922..709d853886214347bd31c9c7c688cdae965f63f4
@@@ -21,58 -21,3 +21,12 @@@ config SHARP_SCOO
  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 529a3818f3049d5c10f92a0a8e06fd961fbf5e3e,d69354dbd78945a4bd2725752195574df2e733bd..ed63bc052362d59c6dc35c156a4e7e636f031eb7
@@@ -53,10 -41,15 +53,15 @@@ libs-y             := arch/arm64/lib/ $(libs-y
  libs-y                += $(LIBGCC)
  
  # Default target when executing plain make
+ ifeq ($(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE),y)
+ KBUILD_IMAGE  := Image.gz-dtb
+ else
  KBUILD_IMAGE  := Image.gz
+ endif
  KBUILD_DTBS   := dtbs
  
 -all:  $(KBUILD_IMAGE) $(KBUILD_DTBS)
 +all:  $(KBUILD_IMAGE) $(KBUILD_DTBS) zImage
  
  boot := arch/arm64/boot
  
index 985f046586d02d50660050ae6cba72e6db425526,df519849fa00fdf246c5fa1a686accfc9cd40e2f..349f4a76faa93681202cc715652e44585cba52e3
  # Based on the ia64 boot/Makefile.
  #
  
 -targets := Image Image.gz
+ include $(srctree)/arch/arm64/boot/dts/Makefile
 +targets := Image Image.gz zImage
  
+ DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))
+ ifneq ($(DTB_NAMES),)
+ DTB_LIST := $(addsuffix .dtb,$(DTB_NAMES))
+ else
+ DTB_LIST := $(dtb-y)
+ endif
+ DTB_OBJS := $(addprefix $(obj)/dts/,$(DTB_LIST))
  $(obj)/Image: vmlinux FORCE
        $(call if_changed,objcopy)
  
  $(obj)/Image.gz: $(obj)/Image FORCE
        $(call if_changed,gzip)
  
 +$(obj)/zImage: $(obj)/Image FORCE
 +      $(call if_changed,gzip)
 +
+ $(obj)/Image.gz-dtb: $(obj)/Image.gz $(DTB_OBJS) FORCE
+       $(call if_changed,cat)
  install: $(obj)/Image
        $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
        $(obj)/Image System.map "$(INSTALL_PATH)"
index 8202dab31994a158cdd4caadcc30caa08a659ff6,d58ea71119e6de51d7595a3ab287553e77db2917..852d4bac353f1b4dd8d87d70ffae096be22f04ab
@@@ -1,36 -1,15 +1,44 @@@
  dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
  
  targets += dtbs
 +dtb-$(CONFIG_MACH_EXUMA) += tegra132-exuma.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-norrin-pm374-0001-a00-00.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-norrin-pm374-0001-a01-00.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-norrin-tegrasim.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-laguna.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-bowmore-e1973-1000-a01-00.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-bowmore-e1971-1100-a00-00.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-bowmore-e1971-1100-a00-00-pcie.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-bowmore-e1971-1100-a00-00-battery.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-bowmore-e1971-1100-a00-00-powerconfig.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-tn8-p1761-1270-a03-battery.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-tn8-p1761-1270-a03.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-interposer-e2141-1100-a00-00.dtb
 +dtb-$(CONFIG_MACH_T132REF) += tegra132-interposer-e2141-1100-a00-00-battery.dtb
 +dtb-$(CONFIG_MACH_GRENADA) += tegra210-grenada.dtb
 +dtb-$(CONFIG_MACH_GRENADA) += tegra210-ers-e2190-1100-a00-00.dtb
 +dtb-$(CONFIG_MACH_GRENADA) += tegra210-ers-e2220-1100-a00-00.dtb
 +dtb-$(CONFIG_ARCH_TEGRA_18x_SOC) += tegra186-sim.dtb
 +targets += $(dtb-y)
 +
 +DTC_FLAGS := -i $(srctree)/arch/arm/boot/dts
 +ifeq ($(CONFIG_ARCH_TEGRA_18x_SOC),y)
 +DTC_FLAGS += -i $(srctree)/../kernel-t18x/arch/arm64/boot/dts
 +endif
 +
 +DTCCPP_FLAGS := -I$(srctree)/arch/arm/boot/dts
 +ifeq ($(CONFIG_ARCH_TEGRA_18x_SOC),y)
 +DTCCPP_FLAGS += -I$(srctree)/../kernel-t18x/arch/arm64/boot/dts
 +endif
  
 -dtbs: $(addprefix $(obj)/, $(DTB_LIST))
+ DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))
+ ifneq ($(DTB_NAMES),)
+ DTB_LIST := $(addsuffix .dtb,$(DTB_NAMES))
+ else
+ DTB_LIST := $(dtb-y)
+ endif
+ targets += $(DTB_LIST)
 +dtbs: $(addprefix $(obj)/, $(dtb-y))
  
- clean-files := *.dtb
+ clean-files := dts/*.dtb *.dtb
index 9c62003a19a8215b8e6e1114e99f6d45792ac495,437aaed570572fcb78944c75bc3889641d0f83af..a260fdd185d28f5c3c0794edb16a808f40c866e2
@@@ -42,14 -42,14 +42,16 @@@ struct cpufreq_interactive_cpuinfo 
        spinlock_t load_lock; /* protects the next 4 fields */
        u64 time_in_idle;
        u64 time_in_idle_timestamp;
 +      u64 time_in_iowait;
        u64 cputime_speedadj;
        u64 cputime_speedadj_timestamp;
 +      unsigned int io_consecutive;
        struct cpufreq_policy *policy;
        struct cpufreq_frequency_table *freq_table;
+       spinlock_t target_freq_lock; /*protects target freq */
        unsigned int target_freq;
        unsigned int floor_freq;
+       unsigned int max_freq;
        u64 floor_validate_time;
        u64 hispeed_validate_time;
        struct rw_semaphore enable_sem;
@@@ -1292,7 -1265,10 +1305,8 @@@ static int cpufreq_governor_interactive
                                ktime_to_us(ktime_get());
                        pcpu->hispeed_validate_time =
                                pcpu->floor_validate_time;
+                       pcpu->max_freq = policy->max;
                        down_write(&pcpu->enable_sem);
 -                      del_timer_sync(&pcpu->cpu_timer);
 -                      del_timer_sync(&pcpu->cpu_slack_timer);
                        cpufreq_interactive_timer_start(tunables, j);
                        pcpu->governor_enabled = 1;
                        up_write(&pcpu->enable_sem);
index d601c30aa606d37061dc3f4f12b833846714a480,7a2bcac3ad7f48e97f47688b6aba0f51aa5f67bc..b409ce8526602eba83deb805fb69462d05d43259
@@@ -57,10 -75,13 +75,14 @@@ static int cpufreq_stats_update(unsigne
                spin_unlock(&cpufreq_stats_lock);
                return 0;
        }
 -      if (stat->time_in_state) {
 +
-       if (stat->time_in_state && stat->last_index >= 0)
++      if (stat->time_in_state && stat->last_index >= 0) {
                stat->time_in_state[stat->last_index] +=
                        cur_time - stat->last_time;
+               if (all_stat)
+                       all_stat->time_in_state[stat->last_index] +=
+                                       cur_time - stat->last_time;
+       }
        stat->last_time = cur_time;
        spin_unlock(&cpufreq_stats_lock);
        return 0;
Simple merge
index 67543a8f4443540ceee5bc69614eaa67a3b893dd,c8c3d1568888381ddd9dadc1ff375cdd696ce8f5..f0b0fe8ce6d4f38ef4d09b5760efb938779307d3
@@@ -183,16 -184,15 +184,25 @@@ config INPUT_KEYRESE
          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.
 +
+ config INPUT_KEYCOMBO
+       tristate "Key combo"
+       depends on INPUT
+       ---help---
+         Say Y here if you want to take action when some keys are pressed;
+         To compile this driver as a module, choose M here: the
+         module will be called keycombo.
  comment "Input Device Drivers"
  
  source "drivers/input/keyboard/Kconfig"
index 827e7a372d6f4dd4abdc9136d409f60dab5211ce,ee4c06520bb436a12c4d80f26a0df277b63652e9..78b53cdcdd96089f686382b7259afc4215f7ad8e
@@@ -28,5 -26,5 +28,7 @@@ obj-$(CONFIG_INPUT_MISC)      += misc
  
  obj-$(CONFIG_INPUT_APMPOWER)  += apm-power.o
  obj-$(CONFIG_INPUT_KEYRESET)  += keyreset.o
 -obj-$(CONFIG_INPUT_KEYCOMBO)  += keycombo.o
  
 +obj-$(CONFIG_INPUT_CFBOOST)   += input-cfboost.o
++
++obj-$(CONFIG_INPUT_KEYCOMBO)  += keycombo.o
Simple merge
Simple merge
Simple merge
index 759204eed0f1eecd04f0d100f15d1f29c210d247,7d6b4ae8a2cdb4a6bc8695e9bedc6cb3dbc869a6..789a73f55abfc0e7ea0e2a95585af460d7b2d9eb
@@@ -1264,9 -1075,8 +1076,9 @@@ static int fiq_debugger_probe(struct pl
        platform_set_drvdata(pdev, state);
  
        spin_lock_init(&state->sleep_timer_lock);
 +      spin_lock_init(&state->debug_fiq_lock);
  
-       if (state->wakeup_irq < 0 && debug_have_fiq(state))
+       if (state->wakeup_irq < 0 && fiq_debugger_have_fiq(state))
                state->no_sleep = true;
        state->ignore_next_wakeup_irq = !state->no_sleep;
  
Simple merge
Simple merge
diff --cc fs/pstore/ram.c
Simple merge
Simple merge
index 98b340d2b14cc44f58a3480911982964d9902d38,7e190a98b388c4e6c32fac40b78128a4e283a54f..043f89c0768a7fcd894271ecc54a142026453306
@@@ -91,8 -91,30 +91,29 @@@ extern int of_flat_dt_is_compatible(uns
  extern int of_flat_dt_match(unsigned long node, const char *const *matches);
  extern unsigned long of_get_flat_dt_root(void);
  
+ /*
+  * early_init_dt_scan_chosen - scan the device tree for ramdisk and bootargs
+  *
+  * The boot arguments will be placed into the memory pointed to by @data.
+  * That memory should be COMMAND_LINE_SIZE big and initialized to be a valid
+  * (possibly empty) string.  Logic for what will be in @data after this
+  * function finishes:
+  *
+  * - CONFIG_CMDLINE_FORCE=true
+  *     CONFIG_CMDLINE
+  * - CONFIG_CMDLINE_EXTEND=true, @data is non-empty string
+  *     @data + dt bootargs (even if dt bootargs are empty)
+  * - CONFIG_CMDLINE_EXTEND=true, @data is empty string
+  *     CONFIG_CMDLINE + dt bootargs (even if dt bootargs are empty)
+  * - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=non-empty:
+  *     dt bootargs
+  * - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=empty, @data is non-empty string
+  *     @data is left unchanged
+  * - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=empty, @data is empty string
+  *     CONFIG_CMDLINE (or "" if that's not defined)
+  */
  extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
                                     int depth, void *data);
 -extern void early_init_dt_check_for_initrd(unsigned long node);
  extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
                                     int depth, void *data);
  extern void early_init_dt_add_memory_arch(u64 base, u64 size);
index f196536b5acbd6f9e0c5ef46c3709a01bbfeea31,03d921feb09489060c6afabf2648fd34673a4ab1..4d5aebb3a74f7072f127b76d2c4043e1ac8de45c
@@@ -16,7 -15,7 +16,8 @@@
  
  #include <linux/workqueue.h>
  #include <linux/leds.h>
 +#include <linux/errno.h>
+ #include <linux/types.h>
  
  struct device;
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/futex.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/ping.c
Simple merge
diff --cc net/ipv4/raw.c
index 448e5a77fa88d622cc540d5fb6e06b0a28a5934b,b8287330c57960ec366b23500d2617171c1d174d..84b874e59b69177c085b554da81756b93146fed2
@@@ -571,9 -571,9 +571,10 @@@ static int raw_sendmsg(struct kiocb *io
        flowi4_init_output(&fl4, ipc.oif, sk->sk_mark, tos,
                           RT_SCOPE_UNIVERSE,
                           inet->hdrincl ? IPPROTO_RAW : sk->sk_protocol,
 -                         inet_sk_flowi_flags(sk) | FLOWI_FLAG_CAN_SLEEP,
 +                         inet_sk_flowi_flags(sk) | FLOWI_FLAG_CAN_SLEEP |
 +                          (inet->hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),
-                          daddr, saddr, 0, 0);
+                          daddr, saddr, 0, 0,
+                          sock_i_uid(sk));
  
        if (!inet->hdrincl) {
                err = raw_probe_proto_opt(&fl4, msg);
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/udp.c
Simple merge
Simple merge
Simple merge
diff --cc net/ipv6/icmp.c
Simple merge
diff --cc net/ipv6/raw.c
Simple merge
index 6c389300f4e9f3a6ea5e8eca3ff045035be9ffb6,bad36468dcd7694ac8229fc7a23c240ad94e86e6..77aff05d7124ec9e27e17230c77e19c640408a99
@@@ -727,11 -683,7 +725,10 @@@ int rt6_route_rcv(struct net_device *de
                prefix = &prefix_buf;
        }
  
 -      rt = rt6_get_route_info(dev, prefix, rinfo->prefix_len, gwaddr);
 +      if (rinfo->prefix_len == 0)
 +              rt = rt6_get_dflt_router(gwaddr, dev);
 +      else
-               rt = rt6_get_route_info(net, prefix, rinfo->prefix_len,
-                                       gwaddr, dev->ifindex);
++              rt = rt6_get_route_info(dev, prefix, rinfo->prefix_len, gwaddr);
  
        if (rt && !lifetime) {
                ip6_del_rt(rt);
Simple merge
diff --cc net/ipv6/udp.c
Simple merge
Simple merge
Simple merge
Simple merge