History

Merge branches 'pm-sleep' and 'pm-cpufreq'

* pm-sleep: Revert "PM / sleep / ACPI: Use the ACPI_FADT_LOW_POWER_S0 flag" * pm-cpufreq: cpufreq: intel_pstate: Fix sysfs limits enforcement for performance policy

Rafael J. Wysocki committed 9 years ago

Commit ff7e5933 parents 7a308bb e326ce0 1443ebb5 files · +16 −16Browse files

Unified · Split

5 files
  1. Documentation/power/states.txt +1 −3
  2. drivers/acpi/sleep.c +0 −8
  3. drivers/cpufreq/intel_pstate.c +13 −1
  4. include/linux/suspend.h +0 −2
  5. kernel/power/suspend.c +2 −2
Documentation/power/states.txt+1−3
@@ -35,9 +35,7 @@ only one way to cause the system to go into the Suspend-To-RAM state (write · 34 unmodified lines
3535 The default suspend mode (ie. the one to be used without writing anything into
3636 /sys/power/mem_sleep) is either "deep" (if Suspend-To-RAM is supported) or
3737 "s2idle", but it can be overridden by the value of the "mem_sleep_default"
38−parameter in the kernel command line. On some ACPI-based systems, depending on
39−the information in the FADT, the default may be "s2idle" even if Suspend-To-RAM
40−is supported.
38+parameter in the kernel command line.
4139
4240 The properties of all of the sleep states are described below.
4341
drivers/acpi/sleep.c+0−8
@@ -674,14 +674,6 @@ static void acpi_sleep_suspend_setup(void) · 673 unmodified lines
674674 if (acpi_sleep_state_supported(i))
675675 sleep_states[i] = 1;
676676
677− /*
678− * Use suspend-to-idle by default if ACPI_FADT_LOW_POWER_S0 is set and
679− * the default suspend mode was not selected from the command line.
680− */
681− if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0 &&
682− mem_sleep_default > PM_SUSPEND_MEM)
683− mem_sleep_default = PM_SUSPEND_FREEZE;
684−
685677 suspend_set_ops(old_suspend_ordering ?
686678 &acpi_suspend_ops_old : &acpi_suspend_ops);
687679 freeze_set_ops(&acpi_freeze_ops);
drivers/cpufreq/intel_pstate.c+13−1
@@ -2005,7 +2005,8 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy) · 2004 unmodified lines
20052005 limits = &performance_limits;
20062006 perf_limits = limits;
20072007 }
2008− if (policy->max >= policy->cpuinfo.max_freq) {
2008+ if (policy->max >= policy->cpuinfo.max_freq &&
2009+ !limits->no_turbo) {
20092010 pr_debug("set performance\n");
20102011 intel_pstate_set_performance_limits(perf_limits);
20112012 goto out;
@@ -2047,6 +2048,17 @@ static int intel_pstate_verify_policy(struct cpufreq_policy *policy) · 35 unmodified lines
20472048 policy->policy != CPUFREQ_POLICY_PERFORMANCE)
20482049 return -EINVAL;
20492050
2051+ /* When per-CPU limits are used, sysfs limits are not used */
2052+ if (!per_cpu_limits) {
2053+ unsigned int max_freq, min_freq;
2054+
2055+ max_freq = policy->cpuinfo.max_freq *
2056+ limits->max_sysfs_pct / 100;
2057+ min_freq = policy->cpuinfo.max_freq *
2058+ limits->min_sysfs_pct / 100;
2059+ cpufreq_verify_within_limits(policy, min_freq, max_freq);
2060+ }
2061+
20502062 return 0;
20512063 }
20522064
include/linux/suspend.h+0−2
@@ -194,8 +194,6 @@ struct platform_freeze_ops { · 193 unmodified lines
194194 };
195195
196196 #ifdef CONFIG_SUSPEND
197−extern suspend_state_t mem_sleep_default;
198−
199197 /**
200198 * suspend_set_ops - set platform dependent suspend operations
201199 * @ops: The new suspend operations to set.
kernel/power/suspend.c+2−2
@@ -46,7 +46,7 @@ static const char * const mem_sleep_labels[] = { · 45 unmodified lines
4646 const char *mem_sleep_states[PM_SUSPEND_MAX];
4747
4848 suspend_state_t mem_sleep_current = PM_SUSPEND_FREEZE;
49−suspend_state_t mem_sleep_default = PM_SUSPEND_MAX;
49+static suspend_state_t mem_sleep_default = PM_SUSPEND_MEM;
5050
5151 unsigned int pm_suspend_global_flags;
5252 EXPORT_SYMBOL_GPL(pm_suspend_global_flags);
@@ -168,7 +168,7 @@ void suspend_set_ops(const struct platform_suspend_ops *ops) · 115 unmodified lines
168168 }
169169 if (valid_state(PM_SUSPEND_MEM)) {
170170 mem_sleep_states[PM_SUSPEND_MEM] = mem_sleep_labels[PM_SUSPEND_MEM];
171− if (mem_sleep_default >= PM_SUSPEND_MEM)
171+ if (mem_sleep_default == PM_SUSPEND_MEM)
172172 mem_sleep_current = PM_SUSPEND_MEM;
173173 }
174174