# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/linux/hotfix-intel-epb-default.patch # Copyright (C) 2024 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License version 2 as used by the T2 SDE. # --- T2-COPYRIGHT-NOTE-END --- --- linux-6.9/arch/x86/kernel/cpu/intel_epb.c.vanilla 2024-06-26 12:40:56.472879229 +0200 +++ linux-6.9/arch/x86/kernel/cpu/intel_epb.c 2024-06-26 12:46:46.386853531 +0200 @@ -67,7 +67,7 @@ EPB_INDEX_POWERSAVE, }; -static u8 energ_perf_values[] = { +static u8 energy_perf_values[] = { [EPB_INDEX_PERFORMANCE] = ENERGY_PERF_BIAS_PERFORMANCE, [EPB_INDEX_BALANCE_PERFORMANCE] = ENERGY_PERF_BIAS_BALANCE_PERFORMANCE, [EPB_INDEX_NORMAL] = ENERGY_PERF_BIAS_NORMAL, @@ -89,6 +89,15 @@ return 0; } +static const char * const energy_perf_strings[] = { + [EPB_INDEX_PERFORMANCE] = "performance", + [EPB_INDEX_BALANCE_PERFORMANCE] = "balance-performance", + [EPB_INDEX_NORMAL] = "normal", + [EPB_INDEX_BALANCE_POWERSAVE] = "balance-power", + [EPB_INDEX_POWERSAVE] = "power", +}; + + static void intel_epb_restore(void) { u64 val = this_cpu_read(saved_epb); @@ -107,8 +116,9 @@ */ val = epb & EPB_MASK; if (val == ENERGY_PERF_BIAS_PERFORMANCE) { - val = energ_perf_values[EPB_INDEX_NORMAL]; - pr_warn_once("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n"); + val = energy_perf_values[EPB_INDEX_BALANCE_PERFORMANCE]; + pr_warn_once("ENERGY_PERF_BIAS: Set to '%s', was 'performance'\n", + energy_perf_strings[EPB_INDEX_BALANCE_PERFORMANCE]); } } wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, (epb & ~EPB_MASK) | val); @@ -119,14 +129,6 @@ .resume = intel_epb_restore, }; -static const char * const energy_perf_strings[] = { - [EPB_INDEX_PERFORMANCE] = "performance", - [EPB_INDEX_BALANCE_PERFORMANCE] = "balance-performance", - [EPB_INDEX_NORMAL] = "normal", - [EPB_INDEX_BALANCE_POWERSAVE] = "balance-power", - [EPB_INDEX_POWERSAVE] = "power", -}; - static ssize_t energy_perf_bias_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -153,7 +155,7 @@ ret = __sysfs_match_string(energy_perf_strings, ARRAY_SIZE(energy_perf_strings), buf); if (ret >= 0) - val = energ_perf_values[ret]; + val = energy_perf_values[ret]; else if (kstrtou64(buf, 0, &val) || val > MAX_EPB) return -EINVAL; @@ -222,7 +224,7 @@ return -ENODEV; if (id) - energ_perf_values[EPB_INDEX_NORMAL] = id->driver_data; + energy_perf_values[EPB_INDEX_NORMAL] = id->driver_data; ret = cpuhp_setup_state(CPUHP_AP_X86_INTEL_EPB_ONLINE, "x86/intel/epb:online", intel_epb_online,