There are also a few new quirks, a bunch of fixes, including the platform-level _OSC handling change to make it actually take the platform firmware response into account, some code and documentation cleanups and a notable update of the ACPI device enumeration documentation. Specifics: - Use uintptr_t and offsetof() in the ACPICA code to avoid compiler warnings regarding NULL pointer arithmetic (Rafael Wysocki). - Fix possible NULL pointer dereference in acpi_ns_walk_namespace() when passed "acpi=off" in the command line (Rafael Wysocki). - Fix and clean up acpi_os_read/write_port() (Rafael Wysocki). - Introduce acpi_bus_for_each_dev() and use it for walking all ACPI device objects in the Type C code (Rafael Wysocki). - Fix the _OSC platform capabilities negotioation and prevent CPPC from being used if the platform firmware indicates that it not supported via _OSC (Rafael Wysocki). - Use ida_alloc() instead of ida_simple_get() for ACPI enumeration of devices (Rafael Wysocki). - Add AGDI and CEDT to the list of known ACPI table signatures (Ilkka Koskinen, Robert Kiraly). - Add power management debug messages related to suspend-to-idle in two places (Rafael Wysocki). - Fix __acpi_node_get_property_reference() return value and clean up that function (Andy Shevchenko, Sakari Ailus). - Fix return value of the __setup handler in the ACPI PM timer clock source driver (Randy Dunlap). - Clean up double words in two comments (Tom Rix). - Add "skip i2c clients" quirks for Lenovo Yoga Tablet 1050F/L and Nextbook Ares 8 (Hans de Goede). - Clean up frequency invariance handling on x86 in the ACPI CPPC library (Huang Rui). - Work around broken XSDT on the Advantech DAC-BJ01 board (Mark Cilissen). - Make wakeup events checks in the ACPI EC driver more straightforward and clean up acpi_ec_submit_event() (Rafael Wysocki). - Make it possible to obtain the CPU capacity with the help of CPPC information (Ionela Voinescu). - Improve fine grained fan control in the ACPI fan driver and document it (Srinivas Pandruvada). - Add device HID and quirk for Microsoft Surface Go 3 to the ACPI battery driver (Maximilian Luz). - Make the ACPI driver for Intel SoCs (LPSS) let the SPI driver know the exact type of the controller (Andy Shevchenko). - Force native backlight mode on Clevo NL5xRU and NL5xNU (Werner Sembach). - Fix return value of __setup handlers in the APEI code (Randy Dunlap). - Add Arm Generic Diagnostic Dump and Reset device driver (Ilkka Koskinen). - Limit printable size of BERT table data (Darren Hart). - Fix up HEST and GHES initialization (Shuai Xue). - Update the ACPI device enumeration documentation and unify the ASL style in GPIO-related examples (Andy Shevchenko). Thanks! --------------- Andy Shevchenko (12): ACPI: property: Get rid of redundant 'else' ACPI: platform: Constify properties parameter in acpi_create_platform_device() ACPI: LPSS: Constify properties member in struct lpss_device_desc ACPI: LPSS: Provide an SSP type to the driver ACPI: docs: enumeration: Discourage to use custom _DSM methods ACPI: docs: enumeration: Update UART serial bus resource documentation ACPI: docs: enumeration: Remove redundant .owner assignment ACPI: docs: enumeration: Amend PWM enumeration ASL example ACPI: docs: enumeration: Drop ugly ifdeffery from the examples ACPI: docs: enumeration: Drop comma for terminator entry ACPI: docs: enumeration: Unify Package () for properties ACPI: docs: gpio-properties: Unify ASL style for GPIO examples Darren Hart (1): ACPI/APEI: Limit printable size of BERT table data Hans de Goede (2): ACPI / x86: Add skip i2c clients quirk for Nextbook Ares 8 ACPI / x86: Add skip i2c clients quirk for Lenovo Yoga Tablet 1050F/L Huang Rui (4): x86/ACPI: CPPC: Rename cppc_msr.c to cppc.c x86/ACPI: CPPC: Move AMD maximum frequency ratio setting function into x86 CPPC x86: Expose init_freq_invariance() to topology header x86/ACPI: CPPC: Move init_freq_invariance_cppc() into x86 CPPC Ilkka Koskinen (2): ACPI: tables: Add AGDI to the list of known table signatures ACPI: AGDI: Add driver for Arm Generic Diagnostic Dump and Reset device Ionela Voinescu (3): x86, ACPI: rename init_freq_invariance_cppc() to arch_init_invariance_cppc() arch_topology: obtain cpu capacity using information from CPPC arm64, topology: enable use of init_cpu_capacity_cppc() Mark Cilissen (1): ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board Maximilian Luz (1): ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3 Rafael J. Wysocki (12): ACPICA: Use uintptr_t and offsetof() in Linux kernel builds ACPI: OSL: Fix and clean up acpi_os_read/write_port() ACPI: PM: Print additional debug message in acpi_s2idle_wake() ACPI: EC / PM: Print additional debug message in acpi_ec_dispatch_gpe() ACPI: EC: Do not return result from advance_transaction() ACPI: EC: Reduce indentation level in acpi_ec_submit_event() ACPI: EC: Rearrange code in acpi_ec_submit_event() ACPI: scan: Use ida_alloc() instead of ida_simple_get() ACPI: bus: Introduce acpi_bus_for_each_dev() ACPICA: Avoid walking the ACPI Namespace if it is not there Revert "ACPI: Pass the same capabilities to the _OSC regardless of the query flag" ACPI: bus: Avoid using CPPC if not supported by firmware Randy Dunlap (2): ACPI: APEI: fix return value of __setup handlers clocksource: acpi_pm: fix return value of __setup handler Robert Kiraly (1): ACPI: tables: Add CEDT signature to the list of known tables Sakari Ailus (1): ACPI: properties: Consistently return -ENOENT if there are no more references Shuai Xue (2): ACPI: APEI: explicit init of HEST and GHES in apci_init() ACPI: APEI: rename ghes_init() with an "acpi_" prefix Srinivas Pandruvada (6): ACPI: fan: Fix error reporting to user space ACPI: fan: Separate file for attributes creation ACPI: fan: Optimize struct acpi_fan_fif ACPI: fan: Properly handle fine grain control ACPI: fan: Add additional attributes for fine grain control Documentation/admin-guide/acpi: Add documentation for fine grain control Tom Rix (1): ACPI: clean up double words in two comments Werner Sembach (1): ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU --------------- .../admin-guide/acpi/fan_performance_states.rst | 28 +++ Documentation/driver-api/gpio/board.rst | 21 +-- Documentation/firmware-guide/acpi/enumeration.rst | 111 +++++------ .../firmware-guide/acpi/gpio-properties.rst | 26 +-- arch/arm64/include/asm/topology.h | 4 + arch/x86/include/asm/topology.h | 15 +- arch/x86/kernel/acpi/Makefile | 2 +- arch/x86/kernel/acpi/boot.c | 24 +++ arch/x86/kernel/acpi/cppc.c | 103 +++++++++++ arch/x86/kernel/acpi/cppc_msr.c | 49 ----- arch/x86/kernel/smpboot.c | 72 +------- drivers/acpi/Kconfig | 2 +- drivers/acpi/Makefile | 3 + drivers/acpi/acpi_lpss.c | 33 +++- drivers/acpi/acpi_platform.c | 2 +- drivers/acpi/acpica/nswalk.c | 3 + drivers/acpi/apei/bert.c | 10 +- drivers/acpi/apei/erst.c | 2 +- drivers/acpi/apei/ghes.c | 19 +- drivers/acpi/apei/hest.c | 2 +- drivers/acpi/arm64/Kconfig | 10 + drivers/acpi/arm64/Makefile | 1 + drivers/acpi/arm64/agdi.c | 116 ++++++++++++ drivers/acpi/battery.c | 12 ++ drivers/acpi/bus.c | 46 ++++- drivers/acpi/cppc_acpi.c | 9 +- drivers/acpi/ec.c | 90 ++++----- drivers/acpi/fan.h | 44 +++++ drivers/acpi/fan_attr.c | 137 ++++++++++++++ drivers/acpi/{fan.c => fan_core.c} | 204 +++++++++------------ drivers/acpi/internal.h | 2 - drivers/acpi/osl.c | 19 +- drivers/acpi/pci_link.c | 2 +- drivers/acpi/pci_root.c | 3 - drivers/acpi/property.c | 29 +-- drivers/acpi/scan.c | 5 +- drivers/acpi/sleep.c | 2 + drivers/acpi/tables.c | 2 +- drivers/acpi/video_detect.c | 75 ++++++++ drivers/acpi/x86/utils.c | 21 +++ drivers/base/arch_topology.c | 45 ++++- drivers/clocksource/acpi_pm.c | 6 +- drivers/firmware/Kconfig | 1 + drivers/firmware/arm_sdei.c | 13 +- drivers/usb/typec/port-mapper.c | 2 +- include/acpi/acpi_bus.h | 2 + include/acpi/actypes.h | 4 + include/acpi/apei.h | 4 +- include/acpi/platform/aclinux.h | 5 + include/linux/acpi.h | 5 +- include/linux/acpi_agdi.h | 13 ++ include/linux/arch_topology.h | 4 + include/linux/arm_sdei.h | 2 + 53 files changed, 1007 insertions(+), 459 deletions(-)