1. 23 7月, 2015 3 次提交
  2. 17 7月, 2015 2 次提交
  3. 27 5月, 2015 1 次提交
  4. 30 4月, 2014 1 次提交
  5. 07 4月, 2014 1 次提交
  6. 20 3月, 2014 1 次提交
    • S
      acpi-cpufreq: Fix CPU hotplug callback registration · 0197fbd2
      Srivatsa S. Bhat 提交于
      Subsystems that want to register CPU hotplug callbacks, as well as perform
      initialization for the CPUs that are already online, often do it as shown
      below:
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	put_online_cpus();
      
      This is wrong, since it is prone to ABBA deadlocks involving the
      cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
      with CPU hotplug operations).
      
      Instead, the correct and race-free way of performing the callback
      registration is:
      
      	cpu_notifier_register_begin();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	/* Note the use of the double underscored version of the API */
      	__register_cpu_notifier(&foobar_cpu_notifier);
      
      	cpu_notifier_register_done();
      
      Fix the acpi-cpufreq code by using this latter form of callback registration.
      
      Cc: Ingo Molnar <mingo@kernel.org>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0197fbd2
  7. 12 3月, 2014 1 次提交
  8. 29 1月, 2014 1 次提交
  9. 17 1月, 2014 1 次提交
  10. 31 10月, 2013 1 次提交
  11. 26 10月, 2013 1 次提交
    • V
      cpufreq: Implement light weight ->target_index() routine · 9c0ebcf7
      Viresh Kumar 提交于
      Currently, the prototype of cpufreq_drivers target routines is:
      
      int target(struct cpufreq_policy *policy, unsigned int target_freq,
      		unsigned int relation);
      
      And most of the drivers call cpufreq_frequency_table_target() to get a valid
      index of their frequency table which is closest to the target_freq. And they
      don't use target_freq and relation after that.
      
      So, it makes sense to just do this work in cpufreq core before calling
      cpufreq_frequency_table_target() and simply pass index instead. But this can be
      done only with drivers which expose their frequency table with cpufreq core. For
      others we need to stick with the old prototype of target() until those drivers
      are converted to expose frequency tables.
      
      This patch implements the new light weight prototype for target_index() routine.
      It looks like this:
      
      int target_index(struct cpufreq_policy *policy, unsigned int index);
      
      CPUFreq core will call cpufreq_frequency_table_target() before calling this
      routine and pass index to it. Because CPUFreq core now requires to call routines
      present in freq_table.c CONFIG_CPU_FREQ_TABLE must be enabled all the time.
      
      This also marks target() interface as deprecated. So, that new drivers avoid
      using it. And Documentation is updated accordingly.
      
      It also converts existing .target() to newly defined light weight
      .target_index() routine for many driver.
      Acked-by: NHans-Christian Egtvedt <egtvedt@samfundet.no>
      Acked-by: NJesper Nilsson <jesper.nilsson@axis.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NRussell King <linux@arm.linux.org.uk>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Tested-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rjw@rjwysocki.net>
      9c0ebcf7
  12. 25 10月, 2013 1 次提交
  13. 17 10月, 2013 1 次提交
  14. 16 10月, 2013 2 次提交
  15. 01 10月, 2013 1 次提交
  16. 25 9月, 2013 1 次提交
  17. 15 8月, 2013 1 次提交
  18. 10 8月, 2013 1 次提交
  19. 08 8月, 2013 1 次提交
  20. 26 7月, 2013 1 次提交
  21. 28 6月, 2013 1 次提交
  22. 24 6月, 2013 1 次提交
  23. 07 6月, 2013 1 次提交
  24. 05 6月, 2013 1 次提交
  25. 04 6月, 2013 1 次提交
  26. 27 5月, 2013 1 次提交
  27. 02 4月, 2013 1 次提交
  28. 25 3月, 2013 1 次提交
  29. 02 2月, 2013 2 次提交
  30. 23 1月, 2013 1 次提交
  31. 10 9月, 2012 4 次提交
    • A
      acpi-cpufreq: Add compatibility for legacy AMD cpb sysfs knob · 11269ff5
      Andre Przywara 提交于
      The powernow-k8 driver supported a sysfs knob called "cpb", which was
      instantiated per CPU, but actually acted globally for the whole
      system. To keep some compatibility with this feature, we re-introduce
      this behavior here, but:
      a) only enable it on AMD CPUs and
      b) protect it with a Kconfig switch
      
      I'd like to consider this feature obsolete. Lets keep it around for
      some kernel versions and then phase it out.
      Signed-off-by: NAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      11269ff5
    • A
      acpi-cpufreq: Add support for disabling dynamic overclocking · 615b7300
      Andre Przywara 提交于
      One feature present in powernow-k8 that isn't present in acpi-cpufreq
      is support for enabling or disabling AMD's core performance boost
      technology. This patch adds support to acpi-cpufreq, but also
      includes support for Intel's dynamic acceleration.
      
      The original boost disabling sysfs file was per CPU, but acted
      globally. Also the naming (cpb) was at least not intuitive.
      So lets introduce a single file simply called "boost", which sits
      once in /sys/devices/system/cpu/cpufreq.
      This should be the only way of using this feature, so add
      documentation about the rationale and the usage.
      
      A following patch will re-introduce the cpb knob for compatibility
      reasons on AMD CPUs.
      
      Per-CPU boost switching is possible, but not trivial and is thus
      postponed to a later patch series.
      Signed-off-by: NAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      615b7300
    • A
      acpi-cpufreq: Add quirk to disable _PSD usage on all AMD CPUs · acd31624
      Andre Przywara 提交于
      To workaround some Windows specific behavior, the ACPI _PSD table
      on AMD desktop boards advertises all cores as dependent, meaning
      that they all can only use the same P-state. acpi-cpufreq strictly
      obeys this description, instantiating one CPU only and symlinking
      the others. But the hardware can have distinct frequencies for each
      core and powernow-k8 did it that way.
      So, in order to use the hardware to its full potential and keep the
      original powernow-k8 behavior, lets override the _PSD table setting
      on AMD hardware.
      We use the siblings table, as it matches the current hardware
      behavior.
      Signed-off-by: NAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      acd31624
    • M
      acpi-cpufreq: Add support for modern AMD CPUs · 3dc9a633
      Matthew Garrett 提交于
      The programming model for P-states on modern AMD CPUs is very similar to
      that of Intel and VIA. It makes sense to consolidate this support into one
      driver rather than duplicating functionality between two of them. This
      patch adds support for AMDs with hardware P-state control to acpi-cpufreq.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Signed-off-by: NAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      3dc9a633
  32. 14 7月, 2011 1 次提交