Merge remote-tracking branch 'lsk/v3.10/topic/aosp' into linux-linaro-lsk-android
authorMark Brown <broonie@linaro.org>
Thu, 19 Jun 2014 10:42:18 +0000 (11:42 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 19 Jun 2014 10:42:18 +0000 (11:42 +0100)
Conflicts:
net/wireless/nl80211.c

1  2 
arch/arm64/boot/dts/Makefile
drivers/cpufreq/cpufreq_interactive.c
drivers/cpufreq/cpufreq_stats.c
net/netfilter/xt_qtaguid.c
net/wireless/nl80211.c

Simple merge
Simple merge
index 038c7cca0cf3ea239d84d3ae44d196b09fe368d2,3f5e279ff9d8d6a8a9e43963bb5b9c2da8f16d4d..0aba4d750559c12bf91d58bf2740d7553528521d
  #include <linux/kobject.h>
  #include <linux/spinlock.h>
  #include <linux/notifier.h>
+ #include <linux/sort.h>
+ #include <linux/err.h>
  #include <asm/cputime.h>
 +#ifdef CONFIG_BL_SWITCHER
 +#include <asm/bL_switcher.h>
 +#endif
  
  static spinlock_t cpufreq_stats_lock;
  
@@@ -432,10 -645,15 +647,16 @@@ static int cpufreq_stats_setup(void
                return ret;
        }
  
+       create_all_freq_table();
+       ret = sysfs_create_file(cpufreq_global_kobject,
+                       &_attr_all_time_in_state.attr);
+       if (ret)
+               pr_warn("Error creating sysfs file for cpufreq stats\n");
        return 0;
  }
 -static void __exit cpufreq_stats_exit(void)
 +
 +static void cpufreq_stats_cleanup(void)
  {
        unsigned int cpu;
  
                cpufreq_stats_free_table(cpu);
                cpufreq_stats_free_sysfs(cpu);
        }
+       cpufreq_allstats_free();
  }
  
 +#ifdef CONFIG_BL_SWITCHER
 +static int cpufreq_stats_switcher_notifier(struct notifier_block *nfb,
 +                                      unsigned long action, void *_arg)
 +{
 +      switch (action) {
 +      case BL_NOTIFY_PRE_ENABLE:
 +      case BL_NOTIFY_PRE_DISABLE:
 +              cpufreq_stats_cleanup();
 +              break;
 +
 +      case BL_NOTIFY_POST_ENABLE:
 +      case BL_NOTIFY_POST_DISABLE:
 +              cpufreq_stats_setup();
 +              break;
 +
 +      default:
 +              return NOTIFY_DONE;
 +      }
 +
 +      return NOTIFY_OK;
 +}
 +
 +static struct notifier_block switcher_notifier = {
 +      .notifier_call = cpufreq_stats_switcher_notifier,
 +};
 +#endif
 +
 +static int __init cpufreq_stats_init(void)
 +{
 +      int ret;
 +      spin_lock_init(&cpufreq_stats_lock);
 +
 +      ret = cpufreq_stats_setup();
 +#ifdef CONFIG_BL_SWITCHER
 +      if (!ret)
 +              bL_switcher_register_notifier(&switcher_notifier);
 +#endif
 +      return ret;
 +}
 +
 +static void __exit cpufreq_stats_exit(void)
 +{
 +#ifdef CONFIG_BL_SWITCHER
 +      bL_switcher_unregister_notifier(&switcher_notifier);
 +#endif
 +      cpufreq_stats_cleanup();
 +}
 +
  MODULE_AUTHOR("Zou Nan hai <nanhai.zou@intel.com>");
  MODULE_DESCRIPTION("'cpufreq_stats' - A driver to export cpufreq stats "
                                "through sysfs filesystem");
Simple merge
Simple merge