Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 831f010

Browse files
Tudor AmbarusTreehugger Robot
authored andcommitted
Merge 923a327 ("Merge tag 'acpi-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm") into android-mainline
Steps on the way to v6.11-rc1 Change-Id: I4f546d8c67305a09454a70fbb98dd6e73969f48c Signed-off-by: Tudor Ambarus <tudordana@google.com>
2 parents c97cf61 + 923a327 commit 831f010

File tree

95 files changed

+2296
-1360
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+2296
-1360
lines changed

Documentation/admin-guide/pm/amd-pstate.rst

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,22 @@ integer values defined between 0 to 255 when EPP feature is enabled by platform
281281
firmware, if EPP feature is disabled, driver will ignore the written value
282282
This attribute is read-write.
283283

284+
``boost``
285+
The `boost` sysfs attribute provides control over the CPU core
286+
performance boost, allowing users to manage the maximum frequency limitation
287+
of the CPU. This attribute can be used to enable or disable the boost feature
288+
on individual CPUs.
289+
290+
When the boost feature is enabled, the CPU can dynamically increase its frequency
291+
beyond the base frequency, providing enhanced performance for demanding workloads.
292+
On the other hand, disabling the boost feature restricts the CPU to operate at the
293+
base frequency, which may be desirable in certain scenarios to prioritize power
294+
efficiency or manage temperature.
295+
296+
To manipulate the `boost` attribute, users can write a value of `0` to disable the
297+
boost or `1` to enable it, for the respective CPU using the sysfs path
298+
`/sys/devices/system/cpu/cpuX/cpufreq/boost`, where `X` represents the CPU number.
299+
284300
Other performance and frequency values can be read back from
285301
``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`.
286302

@@ -406,7 +422,7 @@ control its functionality at the system level. They are located in the
406422
``/sys/devices/system/cpu/amd_pstate/`` directory and affect all CPUs.
407423

408424
``status``
409-
Operation mode of the driver: "active", "passive" or "disable".
425+
Operation mode of the driver: "active", "passive", "guided" or "disable".
410426

411427
"active"
412428
The driver is functional and in the ``active mode``

Documentation/admin-guide/pm/cpufreq.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,10 @@ are the following:
267267
``related_cpus``
268268
List of all (online and offline) CPUs belonging to this policy.
269269

270+
``scaling_available_frequencies``
271+
List of available frequencies of the CPUs belonging to this policy
272+
(in kHz).
273+
270274
``scaling_available_governors``
271275
List of ``CPUFreq`` scaling governors present in the kernel that can
272276
be attached to this policy or (if the |intel_pstate| scaling driver is

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13047,6 +13047,7 @@ F: Documentation/arch/loongarch/
1304713047
F: Documentation/translations/zh_CN/arch/loongarch/
1304813048
F: arch/loongarch/
1304913049
F: drivers/*/*loongarch*
13050+
F: drivers/cpufreq/loongson3_cpufreq.c
1305013051

1305113052
LOONGSON GPIO DRIVER
1305213053
M: Yinbo Zhu <zhuyinbo@loongson.cn>

arch/x86/include/asm/cpufeatures.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@
361361
#define X86_FEATURE_HWP_ACT_WINDOW (14*32+ 9) /* "hwp_act_window" HWP Activity Window */
362362
#define X86_FEATURE_HWP_EPP (14*32+10) /* "hwp_epp" HWP Energy Perf. Preference */
363363
#define X86_FEATURE_HWP_PKG_REQ (14*32+11) /* "hwp_pkg_req" HWP Package Level Request */
364+
#define X86_FEATURE_HWP_HIGHEST_PERF_CHANGE (14*32+15) /* HWP Highest perf change */
364365
#define X86_FEATURE_HFI (14*32+19) /* "hfi" Hardware Feedback Interface */
365366

366367
/* AMD SVM Feature Identification, CPUID level 0x8000000a (EDX), word 15 */
@@ -471,6 +472,7 @@
471472
#define X86_FEATURE_BHI_CTRL (21*32+ 2) /* BHI_DIS_S HW control available */
472473
#define X86_FEATURE_CLEAR_BHB_HW (21*32+ 3) /* BHI_DIS_S HW control enabled */
473474
#define X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT (21*32+ 4) /* Clear branch history at vmexit using SW loop */
475+
#define X86_FEATURE_FAST_CPPC (21*32 + 5) /* AMD Fast CPPC */
474476

475477
/*
476478
* BUG word(s)

arch/x86/include/asm/msr-index.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,8 @@
783783
#define MSR_K7_HWCR_IRPERF_EN BIT_ULL(MSR_K7_HWCR_IRPERF_EN_BIT)
784784
#define MSR_K7_FID_VID_CTL 0xc0010041
785785
#define MSR_K7_FID_VID_STATUS 0xc0010042
786+
#define MSR_K7_HWCR_CPB_DIS_BIT 25
787+
#define MSR_K7_HWCR_CPB_DIS BIT_ULL(MSR_K7_HWCR_CPB_DIS_BIT)
786788

787789
/* K6 MSRs */
788790
#define MSR_K6_WHCR 0xc0000082

arch/x86/kernel/cpu/scattered.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ static const struct cpuid_bit cpuid_bits[] = {
4545
{ X86_FEATURE_HW_PSTATE, CPUID_EDX, 7, 0x80000007, 0 },
4646
{ X86_FEATURE_CPB, CPUID_EDX, 9, 0x80000007, 0 },
4747
{ X86_FEATURE_PROC_FEEDBACK, CPUID_EDX, 11, 0x80000007, 0 },
48+
{ X86_FEATURE_FAST_CPPC, CPUID_EDX, 15, 0x80000007, 0 },
4849
{ X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 },
4950
{ X86_FEATURE_SMBA, CPUID_EBX, 2, 0x80000020, 0 },
5051
{ X86_FEATURE_BMEC, CPUID_EBX, 3, 0x80000020, 0 },

drivers/acpi/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ obj-$(CONFIG_ACPI_TINY_POWER_BUTTON) += tiny-power-button.o
7777
obj-$(CONFIG_ACPI_FAN) += fan.o
7878
fan-objs := fan_core.o
7979
fan-objs += fan_attr.o
80+
fan-$(CONFIG_HWMON) += fan_hwmon.o
8081

8182
obj-$(CONFIG_ACPI_VIDEO) += video.o
8283
obj-$(CONFIG_ACPI_TAD) += acpi_tad.o

drivers/acpi/ac.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ static int get_ac_property(struct power_supply *psy,
112112
return 0;
113113
}
114114

115-
static enum power_supply_property ac_props[] = {
115+
static const enum power_supply_property ac_props[] = {
116116
POWER_SUPPLY_PROP_ONLINE,
117117
};
118118

drivers/acpi/acpi_pad.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
2626
#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
2727
#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
28+
29+
#define ACPI_PROCESSOR_AGGREGATOR_STATUS_SUCCESS 0
30+
#define ACPI_PROCESSOR_AGGREGATOR_STATUS_NO_ACTION 1
31+
2832
static DEFINE_MUTEX(isolated_cpus_lock);
2933
static DEFINE_MUTEX(round_robin_lock);
3034

@@ -382,16 +386,23 @@ static void acpi_pad_handle_notify(acpi_handle handle)
382386
.length = 4,
383387
.pointer = (void *)&idle_cpus,
384388
};
389+
u32 status;
385390

386391
mutex_lock(&isolated_cpus_lock);
387392
num_cpus = acpi_pad_pur(handle);
388393
if (num_cpus < 0) {
389-
mutex_unlock(&isolated_cpus_lock);
390-
return;
394+
/* The ACPI specification says that if no action was performed when
395+
* processing the _PUR object, _OST should still be evaluated, albeit
396+
* with a different status code.
397+
*/
398+
status = ACPI_PROCESSOR_AGGREGATOR_STATUS_NO_ACTION;
399+
} else {
400+
status = ACPI_PROCESSOR_AGGREGATOR_STATUS_SUCCESS;
401+
acpi_pad_idle_cpus(num_cpus);
391402
}
392-
acpi_pad_idle_cpus(num_cpus);
403+
393404
idle_cpus = acpi_pad_idle_cpus_num();
394-
acpi_evaluate_ost(handle, ACPI_PROCESSOR_AGGREGATOR_NOTIFY, 0, &param);
405+
acpi_evaluate_ost(handle, ACPI_PROCESSOR_AGGREGATOR_NOTIFY, status, &param);
395406
mutex_unlock(&isolated_cpus_lock);
396407
}
397408

drivers/acpi/acpi_processor.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -619,9 +619,9 @@ static bool __init acpi_early_processor_osc(void)
619619
void __init acpi_early_processor_control_setup(void)
620620
{
621621
if (acpi_early_processor_osc()) {
622-
pr_info("_OSC evaluated successfully for all CPUs\n");
622+
pr_debug("_OSC evaluated successfully for all CPUs\n");
623623
} else {
624-
pr_info("_OSC evaluation for CPUs failed, trying _PDC\n");
624+
pr_debug("_OSC evaluation for CPUs failed, trying _PDC\n");
625625
acpi_early_processor_set_pdc();
626626
}
627627
}

0 commit comments

Comments
 (0)