Merge branch 'linux-3.10.40' into rel-21
Ishan Mittal [Thu, 5 Jun 2014 08:01:21 +0000 (13:01 +0530)]
Bug 200004122

Conflicts:
drivers/cpufreq/cpufreq.c
drivers/regulator/core.c
sound/soc/codecs/max98090.c

Change-Id: I9418a05ad5c56b2e902249218bac2fa594d99f56
Signed-off-by: Ishan Mittal <imittal@nvidia.com>

46 files changed:
1  2 
Makefile
arch/arm/include/asm/outercache.h
arch/arm/include/asm/pgtable-2level.h
arch/arm/kernel/setup.c
arch/arm/mach-ixp4xx/common.c
arch/arm/mm/Kconfig
arch/arm/mm/mmap.c
arch/arm/mm/mmu.c
arch/arm/mm/proc-v7-2level.S
arch/arm64/include/asm/pgtable.h
arch/powerpc/kernel/signal_32.c
arch/s390/Kconfig
arch/sparc/Kconfig
drivers/cpufreq/cpufreq.c
drivers/cpufreq/cpufreq_governor.c
drivers/cpufreq/powernow-k6.c
drivers/net/usb/usbnet.c
drivers/regulator/core.c
drivers/tty/serial/8250/8250_core.c
drivers/usb/core/hub.c
drivers/usb/host/xhci.c
fs/fs-writeback.c
fs/nfs/nfs4proc.c
fs/proc/base.c
include/linux/mm.h
include/linux/usb/usbnet.h
include/net/sock.h
include/net/tcp.h
init/Kconfig
kernel/exit.c
kernel/futex.c
kernel/sysctl.c
mm/memcontrol.c
mm/mlock.c
mm/page_alloc.c
net/bluetooth/hci_event.c
net/core/sock.c
net/ipv4/tcp.c
net/ipv4/tcp_output.c
net/ipv6/exthdrs_core.c
net/ipv6/icmp.c
net/socket.c
net/unix/af_unix.c
security/selinux/hooks.c
sound/core/compress_offload.c
sound/soc/codecs/cs42l73.c

diff --cc Makefile
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -212,12 -161,10 +212,12 @@@ static inline void set_pte_at(struct mm
                              pte_t *ptep, pte_t pte)
  {
        if (pte_valid_user(pte)) {
-               if (pte_exec(pte))
+               if (!pte_special(pte) && pte_exec(pte))
                        __sync_icache_dcache(pte, addr);
 -              if (!pte_dirty(pte))
 -                      pte = pte_wrprotect(pte);
 +              if (pte_dirty(pte) && pte_write(pte))
 +                      pte_val(pte) &= ~PTE_RDONLY;
 +              else
 +                      pte_val(pte) |= PTE_RDONLY;
        }
  
        set_pte(ptep, pte);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -68,10 -135,9 +135,8 @@@ static void powernow_k6_set_cpu_multipl
   *
   *   Tries to change the PowerNow! multiplier
   */
 -static void powernow_k6_set_state(struct cpufreq_policy *policy,
 -              unsigned int best_i)
 +static void powernow_k6_set_state(unsigned int best_i)
  {
-       unsigned long outvalue = 0, invalue = 0;
-       unsigned long msrval;
        struct cpufreq_freqs freqs;
  
        if (clock_ratio[best_i].index > max_multiplier) {
  
        freqs.old = busfreq * powernow_k6_get_cpu_multiplier();
        freqs.new = busfreq * clock_ratio[best_i].index;
 +      freqs.cpu = 0; /* powernow-k6.c is UP only driver */
  
 -      cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
 +      cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
  
-       /* we now need to transform best_i to the BVC format, see AMD#23446 */
-       outvalue = (1<<12) | (1<<10) | (1<<9) | (best_i<<5);
-       msrval = POWERNOW_IOPORT + 0x1;
-       wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */
-       invalue = inl(POWERNOW_IOPORT + 0x8);
-       invalue = invalue & 0xf;
-       outvalue = outvalue | invalue;
-       outl(outvalue , (POWERNOW_IOPORT + 0x8));
-       msrval = POWERNOW_IOPORT + 0x0;
-       wrmsr(MSR_K6_EPMR, msrval, 0); /* disable it again */
+       powernow_k6_set_cpu_multiplier(best_i);
  
 -      cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
 +      cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
  
        return;
  }
Simple merge
@@@ -1096,37 -919,7 +1096,38 @@@ static int machine_constraints_voltage(
        return 0;
  }
  
 +static int machine_constraints_current(struct regulator_dev *rdev,
 +      struct regulation_constraints *constraints)
 +{
 +      struct regulator_ops *ops = rdev->desc->ops;
 +      int ret;
 +
 +      if (constraints->ignore_current_constraint_init)
 +              return 0;
 +      if (!constraints->min_uA && !constraints->max_uA)
 +              return 0;
 +
 +      if (constraints->min_uA > constraints->max_uA) {
 +              rdev_err(rdev, "Invalid current constraints\n");
 +              return -EINVAL;
 +      }
 +
 +      if (!ops->set_current_limit || !ops->get_current_limit) {
 +              rdev_warn(rdev, "Operation of current configuration missing\n");
 +              return 0;
 +      }
 +
 +      /* Set regulator current in constraints range */
 +      ret = ops->set_current_limit(rdev, constraints->min_uA,
 +                      constraints->max_uA);
 +      if (ret < 0) {
 +              rdev_err(rdev, "Failed to set current constraint, %d\n", ret);
 +              return ret;
 +      }
 +
 +      return 0;
 +}
+ static int _regulator_do_enable(struct regulator_dev *rdev);
  
  /**
   * set_machine_constraints - sets regulator constraints
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/proc/base.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc init/Kconfig
Simple merge
diff --cc kernel/exit.c
Simple merge
diff --cc kernel/futex.c
Simple merge
diff --cc kernel/sysctl.c
Simple merge
diff --cc mm/memcontrol.c
Simple merge
diff --cc mm/mlock.c
Simple merge
diff --cc mm/page_alloc.c
Simple merge
diff --cc net/core/sock.c
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
Simple merge
diff --cc net/ipv6/icmp.c
Simple merge
diff --cc net/socket.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge