Commit ff7e593c authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

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
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -35,9 +35,7 @@ only one way to cause the system to go into the Suspend-To-RAM state (write
The default suspend mode (ie. the one to be used without writing anything into
/sys/power/mem_sleep) is either "deep" (if Suspend-To-RAM is supported) or
"s2idle", but it can be overridden by the value of the "mem_sleep_default"
parameter in the kernel command line.  On some ACPI-based systems, depending on
the information in the FADT, the default may be "s2idle" even if Suspend-To-RAM
is supported.
parameter in the kernel command line.

The properties of all of the sleep states are described below.

+0 −8
Original line number Diff line number Diff line
@@ -674,14 +674,6 @@ static void acpi_sleep_suspend_setup(void)
		if (acpi_sleep_state_supported(i))
			sleep_states[i] = 1;

	/*
	 * Use suspend-to-idle by default if ACPI_FADT_LOW_POWER_S0 is set and
	 * the default suspend mode was not selected from the command line.
	 */
	if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0 &&
	    mem_sleep_default > PM_SUSPEND_MEM)
		mem_sleep_default = PM_SUSPEND_FREEZE;

	suspend_set_ops(old_suspend_ordering ?
		&acpi_suspend_ops_old : &acpi_suspend_ops);
	freeze_set_ops(&acpi_freeze_ops);
+13 −1
Original line number Diff line number Diff line
@@ -2005,7 +2005,8 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
			limits = &performance_limits;
			perf_limits = limits;
		}
		if (policy->max >= policy->cpuinfo.max_freq) {
		if (policy->max >= policy->cpuinfo.max_freq &&
		    !limits->no_turbo) {
			pr_debug("set performance\n");
			intel_pstate_set_performance_limits(perf_limits);
			goto out;
@@ -2047,6 +2048,17 @@ static int intel_pstate_verify_policy(struct cpufreq_policy *policy)
	    policy->policy != CPUFREQ_POLICY_PERFORMANCE)
		return -EINVAL;

	/* When per-CPU limits are used, sysfs limits are not used */
	if (!per_cpu_limits) {
		unsigned int max_freq, min_freq;

		max_freq = policy->cpuinfo.max_freq *
						limits->max_sysfs_pct / 100;
		min_freq = policy->cpuinfo.max_freq *
						limits->min_sysfs_pct / 100;
		cpufreq_verify_within_limits(policy, min_freq, max_freq);
	}

	return 0;
}

+0 −2
Original line number Diff line number Diff line
@@ -194,8 +194,6 @@ struct platform_freeze_ops {
};

#ifdef CONFIG_SUSPEND
extern suspend_state_t mem_sleep_default;

/**
 * suspend_set_ops - set platform dependent suspend operations
 * @ops: The new suspend operations to set.
+2 −2
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ static const char * const mem_sleep_labels[] = {
const char *mem_sleep_states[PM_SUSPEND_MAX];

suspend_state_t mem_sleep_current = PM_SUSPEND_FREEZE;
suspend_state_t mem_sleep_default = PM_SUSPEND_MAX;
static suspend_state_t mem_sleep_default = PM_SUSPEND_MEM;

unsigned int pm_suspend_global_flags;
EXPORT_SYMBOL_GPL(pm_suspend_global_flags);
@@ -168,7 +168,7 @@ void suspend_set_ops(const struct platform_suspend_ops *ops)
	}
	if (valid_state(PM_SUSPEND_MEM)) {
		mem_sleep_states[PM_SUSPEND_MEM] = mem_sleep_labels[PM_SUSPEND_MEM];
		if (mem_sleep_default >= PM_SUSPEND_MEM)
		if (mem_sleep_default == PM_SUSPEND_MEM)
			mem_sleep_current = PM_SUSPEND_MEM;
	}