Skip to content

Commit cf1d2b4

Browse files
committed
Merge tag 'acpi-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI updates from Rafael Wysocki: "These add support for generic initiator-only proximity domains to the ACPI NUMA code and the architectures using it, clean up some non-ACPICA code referring to debug facilities from ACPICA, reduce the overhead related to accessing GPE registers, add a new DPTF (Dynamic Power and Thermal Framework) participant driver, update the ACPICA code in the kernel to upstream revision 20200925, add a new ACPI backlight whitelist entry, fix a few assorted issues and clean up some code. Specifics: - Add support for generic initiator-only proximity domains to the ACPI NUMA code and the architectures using it (Jonathan Cameron) - Clean up some non-ACPICA code referring to debug facilities from ACPICA that are not actually used in there (Hanjun Guo) - Add new DPTF driver for the PCH FIVR participant (Srinivas Pandruvada) - Reduce overhead related to accessing GPE registers in ACPICA and the OS interface layer and make it possible to access GPE registers using logical addresses if they are memory-mapped (Rafael Wysocki) - Update the ACPICA code in the kernel to upstream revision 20200925 including changes as follows: + Add predefined names from the SMBus sepcification (Bob Moore) + Update acpi_help UUID list (Bob Moore) + Return exceptions for string-to-integer conversions in iASL (Bob Moore) + Add a new "ALL <NameSeg>" debugger command (Bob Moore) + Add support for 64 bit risc-v compilation (Colin Ian King) + Do assorted cleanups (Bob Moore, Colin Ian King, Randy Dunlap) - Add new ACPI backlight whitelist entry for HP 635 Notebook (Alex Hung) - Move TPS68470 OpRegion driver to drivers/acpi/pmic/ and split out Kconfig and Makefile specific for ACPI PMIC (Andy Shevchenko) - Clean up the ACPI SoC driver for AMD SoCs (Hanjun Guo) - Add missing config_item_put() to fix refcount leak (Hanjun Guo) - Drop lefrover field from struct acpi_memory_device (Hanjun Guo) - Make the ACPI extlog driver check for RDMSR failures (Ben Hutchings) - Fix handling of lid state changes in the ACPI button driver when input device is closed (Dmitry Torokhov) - Fix several assorted build issues (Barnabás Pőcze, John Garry, Nathan Chancellor, Tian Tao) - Drop unused inline functions and reduce code duplication by using kobj_to_dev() in the NFIT parsing code (YueHaibing, Wang Qing) - Serialize tools/power/acpi Makefile (Thomas Renninger)" * tag 'acpi-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (64 commits) ACPICA: Update version to 20200925 Version 20200925 ACPICA: Remove unnecessary semicolon ACPICA: Debugger: Add a new command: "ALL <NameSeg>" ACPICA: iASL: Return exceptions for string-to-integer conversions ACPICA: acpi_help: Update UUID list ACPICA: Add predefined names found in the SMBus sepcification ACPICA: Tree-wide: fix various typos and spelling mistakes ACPICA: Drop the repeated word "an" in a comment ACPICA: Add support for 64 bit risc-v compilation ACPI: button: fix handling lid state changes when input device closed tools/power/acpi: Serialize Makefile ACPI: scan: Replace ACPI_DEBUG_PRINT() with pr_debug() ACPI: memhotplug: Remove 'state' from struct acpi_memory_device ACPI / extlog: Check for RDMSR failure ACPI: Make acpi_evaluate_dsm() prototype consistent docs: mm: numaperf.rst Add brief description for access class 1. node: Add access1 class to represent CPU to memory characteristics ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3 ACPI: Let ACPI know we support Generic Initiator Affinity Structures x86: Support Generic Initiator only proximity domains ...
2 parents 0b8417c + 8be2362 commit cf1d2b4

78 files changed

Lines changed: 953 additions & 328 deletions

Some content is hidden

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

Documentation/ABI/testing/sysfs-platform-dptf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,19 @@ Contact: linux-acpi@vger.kernel.org
9292
Description:
9393
(RO) The battery discharge current capability obtained from battery fuel gauge in
9494
milli Amps.
95+
96+
What: /sys/bus/platform/devices/INTC1045:00/pch_fivr_switch_frequency/freq_mhz_low_clock
97+
Date: November, 2020
98+
KernelVersion: v5.10
99+
Contact: linux-acpi@vger.kernel.org
100+
Description:
101+
(RW) The PCH FIVR (Fully Integrated Voltage Regulator) switching frequency in MHz,
102+
when FIVR clock is 19.2MHz or 24MHz.
103+
104+
What: /sys/bus/platform/devices/INTC1045:00/pch_fivr_switch_frequency/freq_mhz_high_clock
105+
Date: November, 2020
106+
KernelVersion: v5.10
107+
Contact: linux-acpi@vger.kernel.org
108+
Description:
109+
(RW) The PCH FIVR (Fully Integrated Voltage Regulator) switching frequency in MHz,
110+
when FIVR clock is 38.4MHz.

Documentation/admin-guide/mm/numaperf.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ nodes' access characteristics share the same performance relative to other
5656
linked initiator nodes. Each target within an initiator's access class,
5757
though, do not necessarily perform the same as each other.
5858

59+
The access class "1" is used to allow differentiation between initiators
60+
that are CPUs and hence suitable for generic task scheduling, and
61+
IO initiators such as GPUs and NICs. Unlike access class 0, only
62+
nodes containing CPUs are considered.
63+
5964
================
6065
NUMA Performance
6166
================
@@ -88,6 +93,9 @@ The latency attributes are provided in nanoseconds.
8893
The values reported here correspond to the rated latency and bandwidth
8994
for the platform.
9095

96+
Access class 1 takes the same form but only includes values for CPU to
97+
memory activity.
98+
9199
==========
92100
NUMA Cache
93101
==========

MAINTAINERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ F: drivers/platform/x86/i2c-multi-instantiate.c
405405
ACPI PMIC DRIVERS
406406
M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
407407
M: Len Brown <lenb@kernel.org>
408-
R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
408+
R: Andy Shevchenko <andy@kernel.org>
409409
R: Mika Westerberg <mika.westerberg@linux.intel.com>
410410
L: linux-acpi@vger.kernel.org
411411
S: Supported
@@ -8953,7 +8953,7 @@ F: drivers/gpio/gpio-*cove.c
89538953
F: drivers/gpio/gpio-msic.c
89548954

89558955
INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
8956-
R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
8956+
M: Andy Shevchenko <andy@kernel.org>
89578957
S: Maintained
89588958
F: drivers/mfd/intel_msic.c
89598959
F: drivers/mfd/intel_soc_pmic*

arch/x86/include/asm/numa.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,14 @@ extern void numa_clear_node(int cpu);
6363
extern void __init init_cpu_to_node(void);
6464
extern void numa_add_cpu(int cpu);
6565
extern void numa_remove_cpu(int cpu);
66+
extern void init_gi_nodes(void);
6667
#else /* CONFIG_NUMA */
6768
static inline void numa_set_node(int cpu, int node) { }
6869
static inline void numa_clear_node(int cpu) { }
6970
static inline void init_cpu_to_node(void) { }
7071
static inline void numa_add_cpu(int cpu) { }
7172
static inline void numa_remove_cpu(int cpu) { }
73+
static inline void init_gi_nodes(void) { }
7274
#endif /* CONFIG_NUMA */
7375

7476
#ifdef CONFIG_DEBUG_PER_CPU_MAPS

arch/x86/kernel/setup.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,6 +1199,7 @@ void __init setup_arch(char **cmdline_p)
11991199
prefill_possible_map();
12001200

12011201
init_cpu_to_node();
1202+
init_gi_nodes();
12021203

12031204
io_apic_init_mappings();
12041205

arch/x86/mm/numa.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,27 @@ static void __init init_memory_less_node(int nid)
745745
*/
746746
}
747747

748+
/*
749+
* A node may exist which has one or more Generic Initiators but no CPUs and no
750+
* memory.
751+
*
752+
* This function must be called after init_cpu_to_node(), to ensure that any
753+
* memoryless CPU nodes have already been brought online, and before the
754+
* node_data[nid] is needed for zone list setup in build_all_zonelists().
755+
*
756+
* When this function is called, any nodes containing either memory and/or CPUs
757+
* will already be online and there is no need to do anything extra, even if
758+
* they also contain one or more Generic Initiators.
759+
*/
760+
void __init init_gi_nodes(void)
761+
{
762+
int nid;
763+
764+
for_each_node_state(nid, N_GENERIC_INITIATOR)
765+
if (!node_online(nid))
766+
init_memory_less_node(nid);
767+
}
768+
748769
/*
749770
* Setup early cpu_to_node.
750771
*

drivers/acpi/Kconfig

Lines changed: 1 addition & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -504,55 +504,6 @@ config ACPI_EXTLOG
504504
config ACPI_ADXL
505505
bool
506506

507-
menuconfig PMIC_OPREGION
508-
bool "PMIC (Power Management Integrated Circuit) operation region support"
509-
help
510-
Select this option to enable support for ACPI operation
511-
region of the PMIC chip. The operation region can be used
512-
to control power rails and sensor reading/writing on the
513-
PMIC chip.
514-
515-
if PMIC_OPREGION
516-
config BYTCRC_PMIC_OPREGION
517-
bool "ACPI operation region support for Bay Trail Crystal Cove PMIC"
518-
depends on INTEL_SOC_PMIC
519-
help
520-
This config adds ACPI operation region support for the Bay Trail
521-
version of the Crystal Cove PMIC.
522-
523-
config CHTCRC_PMIC_OPREGION
524-
bool "ACPI operation region support for Cherry Trail Crystal Cove PMIC"
525-
depends on INTEL_SOC_PMIC
526-
help
527-
This config adds ACPI operation region support for the Cherry Trail
528-
version of the Crystal Cove PMIC.
529-
530-
config XPOWER_PMIC_OPREGION
531-
bool "ACPI operation region support for XPower AXP288 PMIC"
532-
depends on MFD_AXP20X_I2C && IOSF_MBI=y
533-
help
534-
This config adds ACPI operation region support for XPower AXP288 PMIC.
535-
536-
config BXT_WC_PMIC_OPREGION
537-
bool "ACPI operation region support for BXT WhiskeyCove PMIC"
538-
depends on INTEL_SOC_PMIC_BXTWC
539-
help
540-
This config adds ACPI operation region support for BXT WhiskeyCove PMIC.
541-
542-
config CHT_WC_PMIC_OPREGION
543-
bool "ACPI operation region support for CHT Whiskey Cove PMIC"
544-
depends on INTEL_SOC_PMIC_CHTWC
545-
help
546-
This config adds ACPI operation region support for CHT Whiskey Cove PMIC.
547-
548-
config CHT_DC_TI_PMIC_OPREGION
549-
bool "ACPI operation region support for Dollar Cove TI PMIC"
550-
depends on INTEL_SOC_PMIC_CHTDC_TI
551-
help
552-
This config adds ACPI operation region support for Dollar Cove TI PMIC.
553-
554-
endif
555-
556507
config ACPI_CONFIGFS
557508
tristate "ACPI configfs support"
558509
select CONFIGFS_FS
@@ -568,21 +519,7 @@ config ACPI_PPTT
568519
bool
569520
endif
570521

571-
config TPS68470_PMIC_OPREGION
572-
bool "ACPI operation region support for TPS68470 PMIC"
573-
depends on MFD_TPS68470
574-
help
575-
This config adds ACPI operation region support for TI TPS68470 PMIC.
576-
TPS68470 device is an advanced power management unit that powers
577-
a Compact Camera Module (CCM), generates clocks for image sensors,
578-
drives a dual LED for flash and incorporates two LED drivers for
579-
general purpose indicators.
580-
This driver enables ACPI operation region support control voltage
581-
regulators and clocks.
582-
583-
This option is a bool as it provides an ACPI operation
584-
region, which must be available before any of the devices
585-
using this, are probed.
522+
source "drivers/acpi/pmic/Kconfig"
586523

587524
endif # ACPI
588525

drivers/acpi/Makefile

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,17 +107,9 @@ obj-$(CONFIG_ACPI_APEI) += apei/
107107

108108
obj-$(CONFIG_ACPI_EXTLOG) += acpi_extlog.o
109109

110-
obj-$(CONFIG_PMIC_OPREGION) += pmic/intel_pmic.o
111-
obj-$(CONFIG_BYTCRC_PMIC_OPREGION) += pmic/intel_pmic_bytcrc.o
112-
obj-$(CONFIG_CHTCRC_PMIC_OPREGION) += pmic/intel_pmic_chtcrc.o
113-
obj-$(CONFIG_XPOWER_PMIC_OPREGION) += pmic/intel_pmic_xpower.o
114-
obj-$(CONFIG_BXT_WC_PMIC_OPREGION) += pmic/intel_pmic_bxtwc.o
115-
obj-$(CONFIG_CHT_WC_PMIC_OPREGION) += pmic/intel_pmic_chtwc.o
116-
obj-$(CONFIG_CHT_DC_TI_PMIC_OPREGION) += pmic/intel_pmic_chtdc_ti.o
117-
118110
obj-$(CONFIG_ACPI_CONFIGFS) += acpi_configfs.o
119111

120-
obj-$(CONFIG_TPS68470_PMIC_OPREGION) += pmic/tps68470_pmic.o
112+
obj-y += pmic/
121113

122114
video-objs += acpi_video.o video_detect.o
123115
obj-y += dptf/

drivers/acpi/acpi_apd.c

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,28 @@
77
* Wu, Jeff <Jeff.Wu@amd.com>
88
*/
99

10-
#include <linux/clk-provider.h>
11-
#include <linux/platform_data/clk-fch.h>
12-
#include <linux/platform_device.h>
13-
#include <linux/pm_domain.h>
14-
#include <linux/clkdev.h>
1510
#include <linux/acpi.h>
11+
#include <linux/clkdev.h>
12+
#include <linux/clk-provider.h>
1613
#include <linux/err.h>
1714
#include <linux/io.h>
18-
#include <linux/pm.h>
15+
#include <linux/platform_data/clk-fch.h>
16+
#include <linux/platform_device.h>
1917

2018
#include "internal.h"
2119

22-
ACPI_MODULE_NAME("acpi_apd");
2320
struct apd_private_data;
2421

25-
/**
26-
* ACPI_APD_SYSFS : add device attributes in sysfs
27-
* ACPI_APD_PM : attach power domain to device
28-
*/
29-
#define ACPI_APD_SYSFS BIT(0)
30-
#define ACPI_APD_PM BIT(1)
31-
3222
/**
3323
* struct apd_device_desc - a descriptor for apd device
34-
* @flags: device flags like %ACPI_APD_SYSFS, %ACPI_APD_PM
3524
* @fixed_clk_rate: fixed rate input clock source for acpi device;
3625
* 0 means no fixed rate input clock source
26+
* @properties: build-in properties of the device such as UART
3727
* @setup: a hook routine to set device resource during create platform device
3828
*
3929
* Device description defined as acpi_device_id.driver_data
4030
*/
4131
struct apd_device_desc {
42-
unsigned int flags;
4332
unsigned int fixed_clk_rate;
4433
struct property_entry *properties;
4534
int (*setup)(struct apd_private_data *pdata);
@@ -71,7 +60,6 @@ static int acpi_apd_setup(struct apd_private_data *pdata)
7160
}
7261

7362
#ifdef CONFIG_X86_AMD_PLATFORM_DEVICE
74-
7563
static int misc_check_res(struct acpi_resource *ares, void *data)
7664
{
7765
struct resource res;
@@ -142,7 +130,7 @@ static const struct apd_device_desc cz_uart_desc = {
142130
static const struct apd_device_desc fch_misc_desc = {
143131
.setup = fch_misc_setup,
144132
};
145-
#endif
133+
#endif /* CONFIG_X86_AMD_PLATFORM_DEVICE */
146134

147135
#ifdef CONFIG_ARM64
148136
static const struct apd_device_desc xgene_i2c_desc = {
@@ -184,13 +172,9 @@ static const struct apd_device_desc hip08_spi_desc = {
184172
.setup = acpi_apd_setup,
185173
.fixed_clk_rate = 250000000,
186174
};
187-
#endif
175+
#endif /* CONFIG_ARM64 */
188176

189-
#else
190-
191-
#define APD_ADDR(desc) (0UL)
192-
193-
#endif /* CONFIG_X86_AMD_PLATFORM_DEVICE */
177+
#endif
194178

195179
/**
196180
* Create platform device during acpi scan attach handle.

drivers/acpi/acpi_cmos_rtc.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
#include "internal.h"
1717

18-
ACPI_MODULE_NAME("cmos rtc");
19-
2018
static const struct acpi_device_id acpi_cmos_rtc_ids[] = {
2119
{ "PNP0B00" },
2220
{ "PNP0B01" },

0 commit comments

Comments
 (0)