Loading drivers/acpi/cppc_acpi.c +2 −1 Original line number Diff line number Diff line Loading @@ -1944,7 +1944,7 @@ static void cppc_find_dmi_mhz(const struct dmi_header *dm, void *private) } /* Look up the max frequency in DMI */ static u64 cppc_get_dmi_max_khz(void) u64 cppc_get_dmi_max_khz(void) { u16 mhz = 0; Loading @@ -1958,6 +1958,7 @@ static u64 cppc_get_dmi_max_khz(void) return KHZ_PER_MHZ * mhz; } EXPORT_SYMBOL_GPL(cppc_get_dmi_max_khz); /* * If CPPC lowest_freq and nominal_freq registers are exposed then we can Loading drivers/cpufreq/acpi-cpufreq.c +24 −7 Original line number Diff line number Diff line Loading @@ -675,6 +675,29 @@ static inline u64 get_max_boost_ratio(unsigned int cpu, u64 *nominal_freq) } #endif static void acpi_cpufreq_resolve_max_freq(struct cpufreq_policy *policy, unsigned int pss_max_freq) { #ifdef CONFIG_ACPI_CPPC_LIB u64 max_speed = cppc_get_dmi_max_khz(); /* * Use DMI "Max Speed" if it looks plausible: must be * above _PSS P0 frequency and within 2x of it. */ if (max_speed > pss_max_freq && max_speed < pss_max_freq * 2) { policy->cpuinfo.max_freq = max_speed; return; } #endif /* * If the maximum "boost" frequency is unknown, ask the arch * scale-invariance code to use the "nominal" performance for * CPU utilization scaling so as to prevent the schedutil * governor from selecting inadequate CPU frequencies. */ arch_set_max_freq_ratio(true); } static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) { struct cpufreq_frequency_table *freq_table; Loading Loading @@ -849,13 +872,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) policy->cpuinfo.max_freq = freq * max_boost_ratio >> SCHED_CAPACITY_SHIFT; } else { /* * If the maximum "boost" frequency is unknown, ask the arch * scale-invariance code to use the "nominal" performance for * CPU utilization scaling so as to prevent the schedutil * governor from selecting inadequate CPU frequencies. */ arch_set_max_freq_ratio(true); acpi_cpufreq_resolve_max_freq(policy, freq_table[0].frequency); } policy->freq_table = freq_table; Loading drivers/cpufreq/cpufreq.c +2 −2 Original line number Diff line number Diff line Loading @@ -2364,8 +2364,8 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy, target_freq = __resolve_freq(policy, target_freq, policy->min, policy->max, relation); pr_debug("target for CPU %u: %u kHz, relation %u, requested %u kHz\n", policy->cpu, target_freq, relation, old_target_freq); pr_debug("CPU %u: cur %u kHz -> target %u kHz (req %u kHz, rel %u)\n", policy->cpu, policy->cur, target_freq, old_target_freq, relation); /* * This might look like a redundant call as we are checking it again Loading drivers/cpufreq/cpufreq_governor.h +3 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <linux/kernel_stat.h> #include <linux/module.h> #include <linux/mutex.h> #include <linux/sysfs.h> /* Ondemand Sampling types */ enum {OD_NORMAL_SAMPLE, OD_SUB_SAMPLE}; Loading Loading @@ -57,7 +58,7 @@ static ssize_t file_name##_show \ { \ struct dbs_data *dbs_data = to_dbs_data(attr_set); \ struct _gov##_dbs_tuners *tuners = dbs_data->tuners; \ return sprintf(buf, "%u\n", tuners->file_name); \ return sysfs_emit(buf, "%u\n", tuners->file_name); \ } #define gov_show_one_common(file_name) \ Loading @@ -65,7 +66,7 @@ static ssize_t file_name##_show \ (struct gov_attr_set *attr_set, char *buf) \ { \ struct dbs_data *dbs_data = to_dbs_data(attr_set); \ return sprintf(buf, "%u\n", dbs_data->file_name); \ return sysfs_emit(buf, "%u\n", dbs_data->file_name); \ } #define gov_attr_ro(_name) \ Loading drivers/cpufreq/intel_pstate.c +1 −1 Original line number Diff line number Diff line Loading @@ -3472,7 +3472,7 @@ static int intel_pstate_update_status(const char *buf, size_t size) { if (size == 3 && !strncmp(buf, "off", size)) { if (!intel_pstate_driver) return -EINVAL; return 0; if (hwp_active) return -EBUSY; Loading Loading
drivers/acpi/cppc_acpi.c +2 −1 Original line number Diff line number Diff line Loading @@ -1944,7 +1944,7 @@ static void cppc_find_dmi_mhz(const struct dmi_header *dm, void *private) } /* Look up the max frequency in DMI */ static u64 cppc_get_dmi_max_khz(void) u64 cppc_get_dmi_max_khz(void) { u16 mhz = 0; Loading @@ -1958,6 +1958,7 @@ static u64 cppc_get_dmi_max_khz(void) return KHZ_PER_MHZ * mhz; } EXPORT_SYMBOL_GPL(cppc_get_dmi_max_khz); /* * If CPPC lowest_freq and nominal_freq registers are exposed then we can Loading
drivers/cpufreq/acpi-cpufreq.c +24 −7 Original line number Diff line number Diff line Loading @@ -675,6 +675,29 @@ static inline u64 get_max_boost_ratio(unsigned int cpu, u64 *nominal_freq) } #endif static void acpi_cpufreq_resolve_max_freq(struct cpufreq_policy *policy, unsigned int pss_max_freq) { #ifdef CONFIG_ACPI_CPPC_LIB u64 max_speed = cppc_get_dmi_max_khz(); /* * Use DMI "Max Speed" if it looks plausible: must be * above _PSS P0 frequency and within 2x of it. */ if (max_speed > pss_max_freq && max_speed < pss_max_freq * 2) { policy->cpuinfo.max_freq = max_speed; return; } #endif /* * If the maximum "boost" frequency is unknown, ask the arch * scale-invariance code to use the "nominal" performance for * CPU utilization scaling so as to prevent the schedutil * governor from selecting inadequate CPU frequencies. */ arch_set_max_freq_ratio(true); } static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) { struct cpufreq_frequency_table *freq_table; Loading Loading @@ -849,13 +872,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) policy->cpuinfo.max_freq = freq * max_boost_ratio >> SCHED_CAPACITY_SHIFT; } else { /* * If the maximum "boost" frequency is unknown, ask the arch * scale-invariance code to use the "nominal" performance for * CPU utilization scaling so as to prevent the schedutil * governor from selecting inadequate CPU frequencies. */ arch_set_max_freq_ratio(true); acpi_cpufreq_resolve_max_freq(policy, freq_table[0].frequency); } policy->freq_table = freq_table; Loading
drivers/cpufreq/cpufreq.c +2 −2 Original line number Diff line number Diff line Loading @@ -2364,8 +2364,8 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy, target_freq = __resolve_freq(policy, target_freq, policy->min, policy->max, relation); pr_debug("target for CPU %u: %u kHz, relation %u, requested %u kHz\n", policy->cpu, target_freq, relation, old_target_freq); pr_debug("CPU %u: cur %u kHz -> target %u kHz (req %u kHz, rel %u)\n", policy->cpu, policy->cur, target_freq, old_target_freq, relation); /* * This might look like a redundant call as we are checking it again Loading
drivers/cpufreq/cpufreq_governor.h +3 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <linux/kernel_stat.h> #include <linux/module.h> #include <linux/mutex.h> #include <linux/sysfs.h> /* Ondemand Sampling types */ enum {OD_NORMAL_SAMPLE, OD_SUB_SAMPLE}; Loading Loading @@ -57,7 +58,7 @@ static ssize_t file_name##_show \ { \ struct dbs_data *dbs_data = to_dbs_data(attr_set); \ struct _gov##_dbs_tuners *tuners = dbs_data->tuners; \ return sprintf(buf, "%u\n", tuners->file_name); \ return sysfs_emit(buf, "%u\n", tuners->file_name); \ } #define gov_show_one_common(file_name) \ Loading @@ -65,7 +66,7 @@ static ssize_t file_name##_show \ (struct gov_attr_set *attr_set, char *buf) \ { \ struct dbs_data *dbs_data = to_dbs_data(attr_set); \ return sprintf(buf, "%u\n", dbs_data->file_name); \ return sysfs_emit(buf, "%u\n", dbs_data->file_name); \ } #define gov_attr_ro(_name) \ Loading
drivers/cpufreq/intel_pstate.c +1 −1 Original line number Diff line number Diff line Loading @@ -3472,7 +3472,7 @@ static int intel_pstate_update_status(const char *buf, size_t size) { if (size == 3 && !strncmp(buf, "off", size)) { if (!intel_pstate_driver) return -EINVAL; return 0; if (hwp_active) return -EBUSY; Loading