1
linux/drivers/acpi
Mario Limonciello b79276dcac ACPI: processor: Move arch_init_invariance_cppc() call later
arch_init_invariance_cppc() is called at the end of
acpi_cppc_processor_probe() in order to configure frequency invariance
based upon the values from _CPC.

This however doesn't work on AMD CPPC shared memory designs that have
AMD preferred cores enabled because _CPC needs to be analyzed from all
cores to judge if preferred cores are enabled.

This issue manifests to users as a warning since commit 21fb59ab4b
("ACPI: CPPC: Adjust debug messages in amd_set_max_freq_ratio() to warn"):
```
Could not retrieve highest performance (-19)
```

However the warning isn't the cause of this, it was actually
commit 279f838a61 ("x86/amd: Detect preferred cores in
amd_get_boost_ratio_numerator()") which exposed the issue.

To fix this problem, change arch_init_invariance_cppc() into a new weak
symbol that is called at the end of acpi_processor_driver_init().
Each architecture that supports it can declare the symbol to override
the weak one.

Define it for x86, in arch/x86/kernel/acpi/cppc.c, and for all of the
architectures using the generic arch_topology.c code.

Fixes: 279f838a61 ("x86/amd: Detect preferred cores in amd_get_boost_ratio_numerator()")
Reported-by: Ivan Shapovalov <intelfx@intelfx.name>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219431
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://patch.msgid.link/20241104222855.3959267-1-superm1@kernel.org
[ rjw: Changelog edit ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2024-11-06 21:31:36 +01:00
..
acpica Merge branch 'acpica' 2024-09-11 21:42:20 +02:00
apei cxl fixes for 6.12-rc2 2024-10-05 10:40:16 -07:00
arm64 ACPI/IORT: Add PMCG platform information for HiSilicon HIP10/11 2024-08-20 14:14:07 +01:00
dptf
nfit ACPI: NFIT: add missing MODULE_DESCRIPTION() macro 2024-06-17 18:41:17 -05:00
numa mm: introduce numa_memblks 2024-09-03 21:15:30 -07:00
pmic ACPI: PMIC: Remove unneeded check in tps68470_pmic_opregion_probe() 2024-08-02 17:05:08 +02:00
riscv ACPI: RISC-V: Implement function to add implicit dependencies 2024-08-27 15:48:35 +02:00
x86 ACPI: x86: Make Lenovo Yoga Tab 3 X90F DMI match less strict 2024-08-29 12:47:53 +02:00
ac.c ACPI: AC: Use strscpy() instead of strcpy() 2024-08-26 19:11:58 +02:00
acpi_adxl.c
acpi_apd.c ACPI: APD: Add AMDI0015 as platform device 2024-08-20 16:34:47 +02:00
acpi_configfs.c
acpi_dbg.c
acpi_extlog.c
acpi_ffh.c
acpi_fpdt.c
acpi_ipmi.c
acpi_lpat.c
acpi_lpit.c
acpi_memhotplug.c
acpi_pad.c Merge branches 'acpi-video', 'acpi-resource', 'acpi-pad' and 'acpi-misc' 2024-09-11 22:05:16 +02:00
acpi_pcc.c
acpi_platform.c
acpi_pnp.c
acpi_processor.c Merge branches 'acpi-video', 'acpi-resource', 'acpi-pad' and 'acpi-misc' 2024-09-11 22:05:16 +02:00
acpi_tad.c ACPI: add missing MODULE_DESCRIPTION() macros 2024-06-13 21:06:30 +02:00
acpi_video.c ACPI: video: Use strscpy() instead of strcpy() 2024-07-04 14:21:37 +02:00
acpi_watchdog.c
battery.c ACPI updates for 6.12-rc2 2024-10-04 11:59:36 -07:00
bgrt.c
bus.c ACPI: bus: Add RINTC IRQ model for RISC-V 2024-08-27 15:48:35 +02:00
button.c ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue 2024-10-21 14:00:59 +02:00
container.c
cppc_acpi.c ACPI: processor: Move arch_init_invariance_cppc() call later 2024-11-06 21:31:36 +01:00
debugfs.c
device_pm.c
device_sysfs.c ACPI: sysfs: remove return value of acpi_device_setup_files() 2024-08-02 16:44:22 +02:00
dock.c
ec_sys.c
ec.c Merge an earlier EC driver change for 6.12. 2024-08-19 14:38:41 +02:00
event.c
evged.c
fan_attr.c
fan_core.c ACPI: fan: Add hwmon support 2024-05-28 11:53:35 +02:00
fan_hwmon.c ACPI: fan: Add hwmon support 2024-05-28 11:53:35 +02:00
fan.h ACPI: fan: Add hwmon support 2024-05-28 11:53:35 +02:00
glue.c
hed.c
internal.h Merge branches 'acpi-ec', 'acpi-sysfs', 'acpi-utils' and 'acpi-soc' 2024-09-11 21:45:36 +02:00
ioapic.c
irq.c
Kconfig LoongArch: Enable ACPI BGRT handling 2024-09-24 15:32:06 +08:00
Makefile ACPI: fan: Add hwmon support 2024-05-28 11:53:35 +02:00
mipi-disco-img.c ACPI: mipi-disco-img: Switch to new Intel CPU model defines 2024-06-17 21:37:57 +02:00
nhlt.c
nvs.c
osi.c
osl.c
pci_irq.c xen/pvh: Setup gsi for passthrough device 2024-09-25 09:54:52 +02:00
pci_link.c ACPI: pci_link: Clear the dependencies after probe 2024-08-27 15:48:35 +02:00
pci_mcfg.c PCI/ACPI: Increase Loongson max PCI hosts to 8 2024-08-01 18:04:05 -05:00
pci_root.c Merge branch 'pci/misc' 2024-07-19 10:10:33 -05:00
pci_slot.c
pfr_telemetry.c
pfr_update.c
platform_profile.c ACPI: add missing MODULE_DESCRIPTION() macros 2024-06-13 21:06:30 +02:00
power.c
pptt.c
prmt.c ACPI: PRM: Clean up guid type in struct prm_handler_info 2024-10-24 17:31:41 +02:00
proc.c
processor_core.c Updates for the interrupt subsystem: 2024-07-22 13:52:05 -07:00
processor_driver.c ACPI: processor: Move arch_init_invariance_cppc() call later 2024-11-06 21:31:36 +01:00
processor_idle.c ACPI: processor_idle: Fix invalid comparison with insertion sort for latency 2024-07-02 20:35:29 +02:00
processor_pdc.c
processor_perflib.c
processor_thermal.c
processor_throttling.c
property.c
reboot.c
resource.c ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[] 2024-10-21 13:54:57 +02:00
sbs.c ACPI: SBS: manage alarm sysfs attribute through psy core 2024-06-13 21:30:00 +02:00
sbshc.c
sbshc.h
scan.c Merge branches 'acpi-ec', 'acpi-sysfs', 'acpi-utils' and 'acpi-soc' 2024-09-11 21:45:36 +02:00
sleep.c ACPI: PM: Quirk ASUS ROG M16 to default to S3 sleep 2024-09-10 20:19:52 +02:00
sleep.h
spcr.c
sysfs.c
tables.c ACPI: tables: Print MULTIPROC_WAKEUP when MADT is parsed 2024-06-17 17:46:28 +02:00
thermal_lib.c
thermal.c thermal: ACPI: Use the .should_bind() thermal zone callback 2024-08-22 17:43:14 +02:00
tiny-power-button.c
utils.c ACPI: utils: Add rev/func to message when acpi_evaluate_dsm() fails 2024-08-29 13:34:09 +02:00
video_detect.c ACPI: video: Add backlight=native quirk for Dell OptiPlex 5480 AIO 2024-10-01 20:51:26 +02:00
viot.c iommu: Resolve fwspec ops automatically 2024-07-04 14:36:03 +01:00
wakeup.c