Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'acpi-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI updates from Rafael Wysocki:
"These update the ACPICA kernel code to upstream revision 20220331,
improve handling of PCI devices that are in D3cold during system
initialization, add support for a few features, fix bugs and clean up
code.

Specifics:

- Update ACPICA code in the kernel to upstream revision 20220331
including the following changes:
- Add support for the Windows 11 _OSI string (Mario Limonciello)
- Add the CFMWS subtable to the CEDT table (Lawrence Hileman).
- iASL: NHLT: Treat Terminator as specific_config (Piotr
Maziarz).
- iASL: NHLT: Fix parsing undocumented bytes at the end of
Endpoint Descriptor (Piotr Maziarz).
- iASL: NHLT: Rename linux specific strucures to device_info
(Piotr Maziarz).
- Add new ACPI 6.4 semantics to Load() and LoadTable() (Bob
Moore).
- Clean up double word in comment (Tom Rix).
- Update copyright notices to the year 2022 (Bob Moore).
- Remove some tabs and // comments - automated cleanup (Bob
Moore).
- Replace zero-length array with flexible-array member (Gustavo
A. R. Silva).
- Interpreter: Add units to time variable names (Paul Menzel).
- Add support for ARM Performance Monitoring Unit Table (Besar
Wicaksono).
- Inform users about ACPI spec violation related to sleep length
(Paul Menzel).
- iASL/MADT: Add OEM-defined subtable (Bob Moore).
- Interpreter: Fix some typo mistakes (Selvarasu Ganesan).
- Updates for revision E.d of IORT (Shameer Kolothum).
- Use ACPI_FORMAT_UINT64 for 64-bit output (Bob Moore).

- Improve debug messages in the ACPI device PM code (Rafael Wysocki).

- Block ASUS B1400CEAE from suspend to idle by default (Mario
Limonciello).

- Improve handling of PCI devices that are in D3cold during system
initialization (Rafael Wysocki).

- Fix BERT error region memory mapping (Lorenzo Pieralisi).

- Add support for NVIDIA 16550-compatible port subtype to the SPCR
parsing code (Jeff Brasen).

- Use static for BGRT_SHOW kobj_attribute defines (Tom Rix).

- Fix missing prototype warning for acpi_agdi_init() (Ilkka
Koskinen).

- Fix missing ERST record ID in the APEI code (Liu Xinpeng).

- Make APEI error injection to refuse to inject into the zero page
(Tony Luck).

- Correct description of INT3407 / INT3532 DPTF attributes in sysfs
(Sumeet Pawnikar).

- Add support for high frequency impedance notification to the DPTF
driver (Sumeet Pawnikar).

- Make mp_config_acpi_gsi() a void function (Li kunyu).

- Unify Package () representation for properties in the ACPI device
properties documentation (Andy Shevchenko).

- Include UUID in _DSM evaluation warning (Michael Niewöhner)"

* tag 'acpi-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (41 commits)
Revert "ACPICA: executer/exsystem: Warn about sleeps greater than 10 ms"
ACPI: utils: include UUID in _DSM evaluation warning
ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default
x86: ACPI: Make mp_config_acpi_gsi() a void function
ACPI: DPTF: Add support for high frequency impedance notification
ACPI: AGDI: Fix missing prototype warning for acpi_agdi_init()
ACPI: bus: Avoid non-ACPI device objects in walks over children
ACPI: DPTF: Correct description of INT3407 / INT3532 attributes
ACPI: BGRT: use static for BGRT_SHOW kobj_attribute defines
ACPI, APEI, EINJ: Refuse to inject into the zero page
ACPI: PM: Always print final debug message in acpi_device_set_power()
ACPI: SPCR: Add support for NVIDIA 16550-compatible port subtype
ACPI: docs: enumeration: Unify Package () for properties (part 2)
ACPI: APEI: Fix missing ERST record id
ACPICA: Update version to 20220331
ACPICA: exsystem.c: Use ACPI_FORMAT_UINT64 for 64-bit output
ACPICA: IORT: Updates for revision E.d
ACPICA: executer/exsystem: Fix some typo mistakes
ACPICA: iASL/MADT: Add OEM-defined subtable
ACPICA: executer/exsystem: Warn about sleeps greater than 10 ms
...

+627 -323
+1 -2
Documentation/firmware-guide/acpi/enumeration.rst
··· 167 167 Name (_DSD, Package () { 168 168 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), 169 169 Package () { 170 - Package () {"interrupt-names", 171 - Package (2) {"default", "alert"}}, 170 + Package () { "interrupt-names", Package () { "default", "alert" } }, 172 171 } 173 172 ... 174 173 })
+3 -4
arch/x86/kernel/acpi/boot.c
··· 435 435 isa_irq_to_gsi[bus_irq] = gsi; 436 436 } 437 437 438 - static int mp_config_acpi_gsi(struct device *dev, u32 gsi, int trigger, 438 + static void mp_config_acpi_gsi(struct device *dev, u32 gsi, int trigger, 439 439 int polarity) 440 440 { 441 441 #ifdef CONFIG_X86_MPPARSE ··· 447 447 u8 pin; 448 448 449 449 if (!acpi_ioapic) 450 - return 0; 450 + return; 451 451 if (!dev || !dev_is_pci(dev)) 452 - return 0; 452 + return; 453 453 454 454 pdev = to_pci_dev(dev); 455 455 number = pdev->bus->number; ··· 468 468 469 469 mp_save_irq(&mp_irq); 470 470 #endif 471 - return 0; 472 471 } 473 472 474 473 static int __init mp_register_ioapic_irq(u8 bus_irq, u8 polarity,
+3 -5
arch/x86/kernel/cpu/mce/apei.c
··· 177 177 /* no more record */ 178 178 if (*record_id == APEI_ERST_INVALID_RECORD_ID) 179 179 goto out; 180 - rc = erst_read(*record_id, &rcd.hdr, sizeof(rcd)); 180 + rc = erst_read_record(*record_id, &rcd.hdr, sizeof(rcd), sizeof(rcd), 181 + &CPER_CREATOR_MCE); 181 182 /* someone else has cleared the record, try next one */ 182 183 if (rc == -ENOENT) 183 184 goto retry; 184 185 else if (rc < 0) 185 186 goto out; 186 - /* try to skip other type records in storage */ 187 - else if (rc != sizeof(rcd) || 188 - !guid_equal(&rcd.hdr.creator_id, &CPER_CREATOR_MCE)) 189 - goto retry; 187 + 190 188 memcpy(m, &rcd.mce, sizeof(*m)); 191 189 rc = sizeof(*m); 192 190 out:
+2 -2
drivers/acpi/acpica/acapps.h
··· 3 3 * 4 4 * Module Name: acapps - common include for ACPI applications/tools 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 17 17 /* Common info for tool signons */ 18 18 19 19 #define ACPICA_NAME "Intel ACPI Component Architecture" 20 - #define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2021 Intel Corporation" 20 + #define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2022 Intel Corporation" 21 21 22 22 #if ACPI_MACHINE_WIDTH == 64 23 23 #define ACPI_WIDTH " (64-bit version)"
+1 -1
drivers/acpi/acpica/accommon.h
··· 3 3 * 4 4 * Name: accommon.h - Common include files for generation of ACPICA source 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acconvert.h
··· 3 3 * 4 4 * Module Name: acapps - common include for ACPI applications/tools 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acdebug.h
··· 3 3 * 4 4 * Name: acdebug.h - ACPI/AML debugger 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acdispat.h
··· 3 3 * 4 4 * Name: acdispat.h - dispatcher (parser to interpreter interface) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acevents.h
··· 3 3 * 4 4 * Name: acevents.h - Event subcomponent prototypes and defines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acglobal.h
··· 3 3 * 4 4 * Name: acglobal.h - Declarations for global variables 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/achware.h
··· 3 3 * 4 4 * Name: achware.h -- hardware specific interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acinterp.h
··· 3 3 * 4 4 * Name: acinterp.h - Interpreter subcomponent prototypes and defines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/aclocal.h
··· 3 3 * 4 4 * Name: aclocal.h - Internal data types used across the ACPI subsystem 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acmacros.h
··· 3 3 * 4 4 * Name: acmacros.h - C macros for the entire subsystem. 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acnamesp.h
··· 3 3 * 4 4 * Name: acnamesp.h - Namespace subcomponent prototypes and defines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acobject.h
··· 3 3 * 4 4 * Name: acobject.h - Definition of union acpi_operand_object (Internal object only) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acopcode.h
··· 3 3 * 4 4 * Name: acopcode.h - AML opcode information for the AML parser and interpreter 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acparser.h
··· 3 3 * 4 4 * Module Name: acparser.h - AML Parser subcomponent prototypes and defines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acpredef.h
··· 3 3 * 4 4 * Name: acpredef - Information table for ACPI predefined methods and objects 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acresrc.h
··· 3 3 * 4 4 * Name: acresrc.h - Resource Manager function prototypes 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acstruct.h
··· 3 3 * 4 4 * Name: acstruct.h - Internal structs 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/actables.h
··· 3 3 * 4 4 * Name: actables.h - ACPI table management 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/acutils.h
··· 3 3 * 4 4 * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/amlcode.h
··· 5 5 * Declarations and definitions contained herein are derived 6 6 * directly from the ACPI specification. 7 7 * 8 - * Copyright (C) 2000 - 2021, Intel Corp. 8 + * Copyright (C) 2000 - 2022, Intel Corp. 9 9 * 10 10 *****************************************************************************/ 11 11
+1 -1
drivers/acpi/acpica/amlresrc.h
··· 3 3 * 4 4 * Module Name: amlresrc.h - AML resource descriptors 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dbhistry.c
··· 3 3 * 4 4 * Module Name: dbhistry - debugger HISTORY command 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dsargs.c
··· 4 4 * Module Name: dsargs - Support for execution of dynamic arguments for static 5 5 * objects (regions, fields, buffer fields, etc.) 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/dscontrol.c
··· 4 4 * Module Name: dscontrol - Support for execution control opcodes - 5 5 * if/else/while/return 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/dsdebug.c
··· 3 3 * 4 4 * Module Name: dsdebug - Parser/Interpreter interface - debugging 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dsfield.c
··· 3 3 * 4 4 * Module Name: dsfield - Dispatcher field routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dsinit.c
··· 3 3 * 4 4 * Module Name: dsinit - Object initialization namespace walk 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dsmethod.c
··· 3 3 * 4 4 * Module Name: dsmethod - Parser/Interpreter interface - control method parsing 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dsobject.c
··· 3 3 * 4 4 * Module Name: dsobject - Dispatcher object management routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dsopcode.c
··· 3 3 * 4 4 * Module Name: dsopcode - Dispatcher support for regions and fields 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dspkginit.c
··· 3 3 * 4 4 * Module Name: dspkginit - Completion of deferred package initialization 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+2 -2
drivers/acpi/acpica/dswexec.c
··· 4 4 * Module Name: dswexec - Dispatcher method execution callbacks; 5 5 * dispatch to interpreter. 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10 ··· 30 30 acpi_ex_opcode_0A_0T_1R, 31 31 acpi_ex_opcode_1A_0T_0R, 32 32 acpi_ex_opcode_1A_0T_1R, 33 - acpi_ex_opcode_1A_1T_0R, 33 + NULL, /* Was: acpi_ex_opcode_1A_0T_0R (Was for Load operator) */ 34 34 acpi_ex_opcode_1A_1T_1R, 35 35 acpi_ex_opcode_2A_0T_0R, 36 36 acpi_ex_opcode_2A_0T_1R,
+1 -1
drivers/acpi/acpica/dswload.c
··· 3 3 * 4 4 * Module Name: dswload - Dispatcher first pass namespace load callbacks 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dswload2.c
··· 3 3 * 4 4 * Module Name: dswload2 - Dispatcher second pass namespace load callbacks 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dswscope.c
··· 3 3 * 4 4 * Module Name: dswscope - Scope stack manipulation 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/dswstate.c
··· 3 3 * 4 4 * Module Name: dswstate - Dispatcher parse tree walk management routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evevent.c
··· 3 3 * 4 4 * Module Name: evevent - Fixed Event handling and dispatch 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evglock.c
··· 3 3 * 4 4 * Module Name: evglock - Global Lock support 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evgpe.c
··· 3 3 * 4 4 * Module Name: evgpe - General Purpose Event handling and dispatch 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evgpeblk.c
··· 3 3 * 4 4 * Module Name: evgpeblk - GPE block creation and initialization. 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evgpeinit.c
··· 3 3 * 4 4 * Module Name: evgpeinit - System GPE initialization and update 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evgpeutil.c
··· 3 3 * 4 4 * Module Name: evgpeutil - GPE utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evhandler.c
··· 3 3 * 4 4 * Module Name: evhandler - Support for Address Space handlers 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evmisc.c
··· 3 3 * 4 4 * Module Name: evmisc - Miscellaneous event manager support functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evregion.c
··· 3 3 * 4 4 * Module Name: evregion - Operation Region support 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evrgnini.c
··· 3 3 * 4 4 * Module Name: evrgnini- ACPI address_space (op_region) init 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evxface.c
··· 3 3 * 4 4 * Module Name: evxface - External interfaces for ACPI events 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evxfevnt.c
··· 3 3 * 4 4 * Module Name: evxfevnt - External Interfaces, ACPI event disable/enable 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evxfgpe.c
··· 3 3 * 4 4 * Module Name: evxfgpe - External Interfaces for General Purpose Events (GPEs) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/evxfregn.c
··· 4 4 * Module Name: evxfregn - External Interfaces, ACPI Operation Regions and 5 5 * Address Spaces. 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/exconcat.c
··· 3 3 * 4 4 * Module Name: exconcat - Concatenate-type AML operators 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+38 -25
drivers/acpi/acpica/exconfig.c
··· 3 3 * 4 4 * Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 87 87 struct acpi_namespace_node *parent_node; 88 88 struct acpi_namespace_node *start_node; 89 89 struct acpi_namespace_node *parameter_node = NULL; 90 + union acpi_operand_object *return_obj; 90 91 union acpi_operand_object *ddb_handle; 91 92 u32 table_index; 92 93 93 94 ACPI_FUNCTION_TRACE(ex_load_table_op); 95 + 96 + /* Create the return object */ 97 + 98 + return_obj = acpi_ut_create_integer_object((u64)0); 99 + if (!return_obj) { 100 + return_ACPI_STATUS(AE_NO_MEMORY); 101 + } 102 + 103 + *return_desc = return_obj; 94 104 95 105 /* Find the ACPI table in the RSDT/XSDT */ 96 106 ··· 116 106 117 107 /* Table not found, return an Integer=0 and AE_OK */ 118 108 119 - ddb_handle = acpi_ut_create_integer_object((u64) 0); 120 - if (!ddb_handle) { 121 - return_ACPI_STATUS(AE_NO_MEMORY); 122 - } 123 - 124 - *return_desc = ddb_handle; 125 109 return_ACPI_STATUS(AE_OK); 126 110 } 127 111 ··· 202 198 } 203 199 } 204 200 205 - *return_desc = ddb_handle; 201 + /* Remove the reference to ddb_handle created by acpi_ex_add_table above */ 202 + 203 + acpi_ut_remove_reference(ddb_handle); 204 + 205 + /* Return -1 (non-zero) indicates success */ 206 + 207 + return_obj->integer.value = 0xFFFFFFFFFFFFFFFF; 206 208 return_ACPI_STATUS(status); 207 209 } 208 210 ··· 259 249 * 260 250 * PARAMETERS: obj_desc - Region or Buffer/Field where the table will be 261 251 * obtained 262 - * target - Where a handle to the table will be stored 252 + * target - Where the status of the load will be stored 263 253 * walk_state - Current state 264 254 * 265 255 * RETURN: Status ··· 287 277 u32 length; 288 278 289 279 ACPI_FUNCTION_TRACE(ex_load_op); 280 + 281 + if (target->common.descriptor_type == ACPI_DESC_TYPE_NAMED) { 282 + target = 283 + acpi_ns_get_attached_object(ACPI_CAST_PTR 284 + (struct acpi_namespace_node, 285 + target)); 286 + } 287 + if (target->common.type != ACPI_TYPE_INTEGER) { 288 + ACPI_EXCEPTION((AE_INFO, AE_TYPE, 289 + "Type not integer: %X\n", target->common.type)); 290 + return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 291 + } 292 + 293 + target->integer.value = 0; 290 294 291 295 /* Source Object can be either an op_region or a Buffer/Field */ 292 296 ··· 454 430 */ 455 431 status = acpi_ex_add_table(table_index, &ddb_handle); 456 432 if (ACPI_FAILURE(status)) { 457 - 458 - /* On error, table_ptr was deallocated above */ 459 - 460 433 return_ACPI_STATUS(status); 461 434 } 462 435 ··· 463 442 acpi_ns_initialize_objects(); 464 443 acpi_ex_enter_interpreter(); 465 444 466 - /* Store the ddb_handle into the Target operand */ 467 - 468 - status = acpi_ex_store(ddb_handle, target, walk_state); 469 - if (ACPI_FAILURE(status)) { 470 - (void)acpi_ex_unload_table(ddb_handle); 471 - 472 - /* table_ptr was deallocated above */ 473 - 474 - acpi_ut_remove_reference(ddb_handle); 475 - return_ACPI_STATUS(status); 476 - } 477 - 478 - /* Remove the reference by added by acpi_ex_store above */ 445 + /* Remove the reference to ddb_handle created by acpi_ex_add_table above */ 479 446 480 447 acpi_ut_remove_reference(ddb_handle); 448 + 449 + /* Return -1 (non-zero) indicates success */ 450 + 451 + target->integer.value = 0xFFFFFFFFFFFFFFFF; 481 452 return_ACPI_STATUS(status); 482 453 } 483 454
+1 -1
drivers/acpi/acpica/exconvrt.c
··· 3 3 * 4 4 * Module Name: exconvrt - Object conversion routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/excreate.c
··· 3 3 * 4 4 * Module Name: excreate - Named object creation 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exdebug.c
··· 3 3 * 4 4 * Module Name: exdebug - Support for stores to the AML Debug Object 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exdump.c
··· 3 3 * 4 4 * Module Name: exdump - Interpreter debug output routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exfield.c
··· 3 3 * 4 4 * Module Name: exfield - AML execution - field_unit read/write 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+2 -2
drivers/acpi/acpica/exfldio.c
··· 3 3 * 4 4 * Module Name: exfldio - Aml Field I/O 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 104 104 #ifdef ACPI_UNDER_DEVELOPMENT 105 105 /* 106 106 * If the Field access is any_acc, we can now compute the optimal 107 - * access (because we know know the length of the parent region) 107 + * access (because we know the length of the parent region) 108 108 */ 109 109 if (!(obj_desc->common.flags & AOPOBJ_DATA_VALID)) { 110 110 if (ACPI_FAILURE(status)) {
+1 -1
drivers/acpi/acpica/exmisc.c
··· 3 3 * 4 4 * Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exmutex.c
··· 3 3 * 4 4 * Module Name: exmutex - ASL Mutex Acquire/Release functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exnames.c
··· 3 3 * 4 4 * Module Name: exnames - interpreter/scanner name load/execute 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+22 -1
drivers/acpi/acpica/exoparg1.c
··· 3 3 * 4 4 * Module Name: exoparg1 - AML execution - opcodes with 1 argument 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 163 163 return_ACPI_STATUS(status); 164 164 } 165 165 166 + #ifdef _OBSOLETE_CODE /* Was originally used for Load() operator */ 166 167 /******************************************************************************* 167 168 * 168 169 * FUNCTION: acpi_ex_opcode_1A_1T_0R ··· 188 187 /* Examine the AML opcode */ 189 188 190 189 switch (walk_state->opcode) { 190 + #ifdef _OBSOLETE_CODE 191 191 case AML_LOAD_OP: 192 192 193 193 status = acpi_ex_load_op(operand[0], operand[1], walk_state); 194 194 break; 195 + #endif 195 196 196 197 default: /* Unknown opcode */ 197 198 ··· 207 204 208 205 return_ACPI_STATUS(status); 209 206 } 207 + #endif 210 208 211 209 /******************************************************************************* 212 210 * ··· 219 215 * 220 216 * DESCRIPTION: Execute opcode with one argument, one target, and a 221 217 * return value. 218 + * January 2022: Added Load operator, with new ACPI 6.4 219 + * semantics. 222 220 * 223 221 ******************************************************************************/ 224 222 ··· 245 239 case AML_FIND_SET_LEFT_BIT_OP: 246 240 case AML_FIND_SET_RIGHT_BIT_OP: 247 241 case AML_FROM_BCD_OP: 242 + case AML_LOAD_OP: 248 243 case AML_TO_BCD_OP: 249 244 case AML_CONDITIONAL_REF_OF_OP: 250 245 ··· 342 335 /* Next power of 10 */ 343 336 344 337 power_of_ten *= 10; 338 + } 339 + break; 340 + 341 + case AML_LOAD_OP: /* Result1 = Load (Operand[0], Result1) */ 342 + 343 + return_desc->integer.value = 0; 344 + status = 345 + acpi_ex_load_op(operand[0], return_desc, 346 + walk_state); 347 + if (ACPI_SUCCESS(status)) { 348 + 349 + /* Return -1 (non-zero) indicates success */ 350 + 351 + return_desc->integer.value = 0xFFFFFFFFFFFFFFFF; 345 352 } 346 353 break; 347 354
+1 -1
drivers/acpi/acpica/exoparg2.c
··· 3 3 * 4 4 * Module Name: exoparg2 - AML execution - opcodes with 2 arguments 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exoparg3.c
··· 3 3 * 4 4 * Module Name: exoparg3 - AML execution - opcodes with 3 arguments 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exoparg6.c
··· 3 3 * 4 4 * Module Name: exoparg6 - AML execution - opcodes with 6 arguments 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exprep.c
··· 3 3 * 4 4 * Module Name: exprep - ACPI AML field prep utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exregion.c
··· 3 3 * 4 4 * Module Name: exregion - ACPI default op_region (address space) handlers 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exresnte.c
··· 3 3 * 4 4 * Module Name: exresnte - AML Interpreter object resolution 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exresolv.c
··· 3 3 * 4 4 * Module Name: exresolv - AML Interpreter object resolution 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exresop.c
··· 3 3 * 4 4 * Module Name: exresop - AML Interpreter operand/object resolution 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exserial.c
··· 3 3 * 4 4 * Module Name: exserial - field_unit support for serial address spaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exstore.c
··· 3 3 * 4 4 * Module Name: exstore - AML Interpreter object store support 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exstoren.c
··· 4 4 * Module Name: exstoren - AML Interpreter object store support, 5 5 * Store to Node (namespace object) 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/exstorob.c
··· 3 3 * 4 4 * Module Name: exstorob - AML object store support, store to object 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+17 -12
drivers/acpi/acpica/exsystem.c
··· 3 3 * 4 4 * Module Name: exsystem - Interface to OS services 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 107 107 * 108 108 * FUNCTION: acpi_ex_system_do_stall 109 109 * 110 - * PARAMETERS: how_long - The amount of time to stall, 110 + * PARAMETERS: how_long_us - The amount of time to stall, 111 111 * in microseconds 112 112 * 113 113 * RETURN: Status ··· 120 120 * 121 121 ******************************************************************************/ 122 122 123 - acpi_status acpi_ex_system_do_stall(u32 how_long) 123 + acpi_status acpi_ex_system_do_stall(u32 how_long_us) 124 124 { 125 125 acpi_status status = AE_OK; 126 126 127 127 ACPI_FUNCTION_ENTRY(); 128 128 129 - if (how_long > 255) { /* 255 microseconds */ 129 + if (how_long_us > 255) { 130 130 /* 131 - * Longer than 255 usec, this is an error 131 + * Longer than 255 microseconds, this is an error 132 132 * 133 133 * (ACPI specifies 100 usec as max, but this gives some slack in 134 134 * order to support existing BIOSs) 135 135 */ 136 136 ACPI_ERROR((AE_INFO, 137 - "Time parameter is too large (%u)", how_long)); 137 + "Time parameter is too large (%u)", how_long_us)); 138 138 status = AE_AML_OPERAND_VALUE; 139 139 } else { 140 - acpi_os_stall(how_long); 140 + if (how_long_us > 100) { 141 + ACPI_WARNING((AE_INFO, 142 + "Time parameter %u us > 100 us violating ACPI spec, please fix the firmware.", 143 + how_long_us)); 144 + } 145 + acpi_os_stall(how_long_us); 141 146 } 142 147 143 148 return (status); ··· 152 147 * 153 148 * FUNCTION: acpi_ex_system_do_sleep 154 149 * 155 - * PARAMETERS: how_long - The amount of time to sleep, 150 + * PARAMETERS: how_long_ms - The amount of time to sleep, 156 151 * in milliseconds 157 152 * 158 153 * RETURN: None ··· 161 156 * 162 157 ******************************************************************************/ 163 158 164 - acpi_status acpi_ex_system_do_sleep(u64 how_long) 159 + acpi_status acpi_ex_system_do_sleep(u64 how_long_ms) 165 160 { 166 161 ACPI_FUNCTION_ENTRY(); 167 162 ··· 173 168 * For compatibility with other ACPI implementations and to prevent 174 169 * accidental deep sleeps, limit the sleep time to something reasonable. 175 170 */ 176 - if (how_long > ACPI_MAX_SLEEP) { 177 - how_long = ACPI_MAX_SLEEP; 171 + if (how_long_ms > ACPI_MAX_SLEEP) { 172 + how_long_ms = ACPI_MAX_SLEEP; 178 173 } 179 174 180 - acpi_os_sleep(how_long); 175 + acpi_os_sleep(how_long_ms); 181 176 182 177 /* And now we must get the interpreter again */ 183 178
+1 -1
drivers/acpi/acpica/extrace.c
··· 3 3 * 4 4 * Module Name: extrace - Support for interpreter execution tracing 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/exutils.c
··· 3 3 * 4 4 * Module Name: exutils - interpreter/scanner utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/hwacpi.c
··· 3 3 * 4 4 * Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/hwesleep.c
··· 4 4 * Name: hwesleep.c - ACPI Hardware Sleep/Wake Support functions for the 5 5 * extended FADT-V5 sleep registers. 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/hwgpe.c
··· 3 3 * 4 4 * Module Name: hwgpe - Low level GPE enable/disable/clear functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/hwregs.c
··· 446 446 * RETURN: Status 447 447 * 448 448 * DESCRIPTION: Write the PM1 A/B control registers. These registers are 449 - * different than than the PM1 A/B status and enable registers 449 + * different than the PM1 A/B status and enable registers 450 450 * in that different values can be written to the A/B registers. 451 451 * Most notably, the SLP_TYP bits can be different, as per the 452 452 * values returned from the _Sx predefined methods.
+1 -1
drivers/acpi/acpica/hwsleep.c
··· 4 4 * Name: hwsleep.c - ACPI Hardware Sleep/Wake Support functions for the 5 5 * original/legacy sleep/PM registers. 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/hwtimer.c
··· 3 3 * 4 4 * Name: hwtimer.c - ACPI Power Management Timer Interface 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/hwvalid.c
··· 3 3 * 4 4 * Module Name: hwvalid - I/O request validation 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/hwxface.c
··· 3 3 * 4 4 * Module Name: hwxface - Public ACPICA hardware interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/hwxfsleep.c
··· 3 3 * 4 4 * Name: hwxfsleep.c - ACPI Hardware Sleep/Wake External Interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsarguments.c
··· 3 3 * 4 4 * Module Name: nsarguments - Validation of args for ACPI predefined methods 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsconvert.c
··· 4 4 * Module Name: nsconvert - Object conversions for objects returned by 5 5 * predefined methods 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/nsdump.c
··· 3 3 * 4 4 * Module Name: nsdump - table dumping routines for debug 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsdumpdv.c
··· 3 3 * 4 4 * Module Name: nsdump - table dumping routines for debug 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsinit.c
··· 3 3 * 4 4 * Module Name: nsinit - namespace initialization 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsload.c
··· 3 3 * 4 4 * Module Name: nsload - namespace loading/expanding/contracting procedures 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsparse.c
··· 3 3 * 4 4 * Module Name: nsparse - namespace interface to AML parser 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nspredef.c
··· 3 3 * 4 4 * Module Name: nspredef - Validation of ACPI predefined methods and objects 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsprepkg.c
··· 3 3 * 4 4 * Module Name: nsprepkg - Validation of package objects for predefined names 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsrepair.c
··· 3 3 * 4 4 * Module Name: nsrepair - Repair for objects returned by predefined methods 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsrepair2.c
··· 4 4 * Module Name: nsrepair2 - Repair for objects returned by specific 5 5 * predefined methods 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/nsutils.c
··· 4 4 * Module Name: nsutils - Utilities for accessing ACPI namespace, accessing 5 5 * parents and siblings and Scope manipulation 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/nswalk.c
··· 3 3 * 4 4 * Module Name: nswalk - Functions for walking the ACPI namespace 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/nsxfname.c
··· 4 4 * Module Name: nsxfname - Public interfaces to the ACPI subsystem 5 5 * ACPI Namespace oriented interfaces 6 6 * 7 - * Copyright (C) 2000 - 2021, Intel Corp. 7 + * Copyright (C) 2000 - 2022, Intel Corp. 8 8 * 9 9 *****************************************************************************/ 10 10
+1 -1
drivers/acpi/acpica/psargs.c
··· 3 3 * 4 4 * Module Name: psargs - Parse AML opcode arguments 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/psloop.c
··· 3 3 * 4 4 * Module Name: psloop - Main AML parse loop 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/psobject.c
··· 3 3 * 4 4 * Module Name: psobject - Support for parse objects 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+3 -3
drivers/acpi/acpica/psopcode.c
··· 3 3 * 4 4 * Module Name: psopcode - Parser/Interpreter opcode information table 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 408 408 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | 409 409 AML_DEFER | AML_FIELD | AML_CREATE), 410 410 /* 4A */ ACPI_OP("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY, 411 - AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_0R, 412 - AML_FLAGS_EXEC_1A_1T_0R), 411 + AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, 412 + AML_FLAGS_EXEC_1A_1T_1R), 413 413 /* 4B */ ACPI_OP("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_TYPE_ANY, 414 414 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, 415 415 AML_FLAGS_EXEC_1A_0T_0R),
+1 -1
drivers/acpi/acpica/psopinfo.c
··· 3 3 * 4 4 * Module Name: psopinfo - AML opcode information functions and dispatch tables 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/psparse.c
··· 3 3 * 4 4 * Module Name: psparse - Parser top level AML parse routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/psscope.c
··· 3 3 * 4 4 * Module Name: psscope - Parser scope stack management routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/pstree.c
··· 3 3 * 4 4 * Module Name: pstree - Parser op tree manipulation/traversal/search 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/psutils.c
··· 3 3 * 4 4 * Module Name: psutils - Parser miscellaneous utilities (Parser only) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/pswalk.c
··· 3 3 * 4 4 * Module Name: pswalk - Parser routines to walk parsed op tree(s) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/psxface.c
··· 3 3 * 4 4 * Module Name: psxface - Parser external interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbdata.c
··· 3 3 * 4 4 * Module Name: tbdata - Table manager data structure functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbfadt.c
··· 3 3 * 4 4 * Module Name: tbfadt - FADT table utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbfind.c
··· 3 3 * 4 4 * Module Name: tbfind - find table 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbinstal.c
··· 3 3 * 4 4 * Module Name: tbinstal - ACPI table installation and removal 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbprint.c
··· 3 3 * 4 4 * Module Name: tbprint - Table output utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbutils.c
··· 3 3 * 4 4 * Module Name: tbutils - ACPI Table utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbxface.c
··· 3 3 * 4 4 * Module Name: tbxface - ACPI table-oriented external interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbxfload.c
··· 3 3 * 4 4 * Module Name: tbxfload - Table load/unload external interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/tbxfroot.c
··· 3 3 * 4 4 * Module Name: tbxfroot - Find the root ACPI table (RSDT) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utaddress.c
··· 3 3 * 4 4 * Module Name: utaddress - op_region address range check 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utalloc.c
··· 3 3 * 4 4 * Module Name: utalloc - local memory allocation routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utascii.c
··· 3 3 * 4 4 * Module Name: utascii - Utility ascii functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utbuffer.c
··· 3 3 * 4 4 * Module Name: utbuffer - Buffer dump routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utcache.c
··· 3 3 * 4 4 * Module Name: utcache - local cache allocation routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utcopy.c
··· 3 3 * 4 4 * Module Name: utcopy - Internal to external object translation utilities 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utdebug.c
··· 3 3 * 4 4 * Module Name: utdebug - Debug print/trace routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utdecode.c
··· 3 3 * 4 4 * Module Name: utdecode - Utility decoding routines (value-to-string) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/uteval.c
··· 3 3 * 4 4 * Module Name: uteval - Object evaluation 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utglobal.c
··· 3 3 * 4 4 * Module Name: utglobal - Global variables for the ACPI subsystem 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/uthex.c
··· 3 3 * 4 4 * Module Name: uthex -- Hex/ASCII support functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utids.c
··· 3 3 * 4 4 * Module Name: utids - support for device Ids - HID, UID, CID, SUB, CLS 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utinit.c
··· 3 3 * 4 4 * Module Name: utinit - Common ACPI subsystem initialization 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utlock.c
··· 3 3 * 4 4 * Module Name: utlock - Reader/Writer lock interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utobject.c
··· 3 3 * 4 4 * Module Name: utobject - ACPI object create/delete/size/cache routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+2 -1
drivers/acpi/acpica/utosi.c
··· 3 3 * 4 4 * Module Name: utosi - Support for the _OSI predefined control method 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 74 74 {"Windows 2018.2", NULL, 0, ACPI_OSI_WIN_10_RS5}, /* Windows 10 version 1809 - Added 11/2018 */ 75 75 {"Windows 2019", NULL, 0, ACPI_OSI_WIN_10_19H1}, /* Windows 10 version 1903 - Added 08/2019 */ 76 76 {"Windows 2020", NULL, 0, ACPI_OSI_WIN_10_20H1}, /* Windows 10 version 2004 - Added 08/2021 */ 77 + {"Windows 2021", NULL, 0, ACPI_OSI_WIN_11}, /* Windows 11 - Added 01/2022 */ 77 78 78 79 /* Feature Group Strings */ 79 80
+1 -1
drivers/acpi/acpica/utpredef.c
··· 3 3 * 4 4 * Module Name: utpredef - support functions for predefined names 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utprint.c
··· 3 3 * 4 4 * Module Name: utprint - Formatted printing routines 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/uttrack.c
··· 3 3 * 4 4 * Module Name: uttrack - Memory allocation tracking routines (debug only) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utuuid.c
··· 3 3 * 4 4 * Module Name: utuuid -- UUID support functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utxface.c
··· 3 3 * 4 4 * Module Name: utxface - External interfaces, miscellaneous utility functions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
drivers/acpi/acpica/utxfinit.c
··· 3 3 * 4 4 * Module Name: utxfinit - External interfaces for ACPICA initialization 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+3
drivers/acpi/apei/einj.c
··· 549 549 !arch_is_platform_page(base_addr))) 550 550 return -EINVAL; 551 551 552 + if (is_zero_pfn(base_addr >> PAGE_SHIFT)) 553 + return -EADDRINUSE; 554 + 552 555 inject: 553 556 mutex_lock(&einj_mutex); 554 557 rc = __einj_error_inject(type, flags, param1, param2, param3, param4);
+2 -1
drivers/acpi/apei/erst-dbg.c
··· 111 111 goto out; 112 112 } 113 113 retry: 114 - rc = len = erst_read(id, erst_dbg_buf, erst_dbg_buf_len); 114 + rc = len = erst_read_record(id, erst_dbg_buf, erst_dbg_buf_len, 115 + erst_dbg_buf_len, NULL); 115 116 /* The record may be cleared by others, try read next record */ 116 117 if (rc == -ENOENT) 117 118 goto retry_next;
+71 -6
drivers/acpi/apei/erst.c
··· 856 856 } 857 857 EXPORT_SYMBOL_GPL(erst_read); 858 858 859 + static void erst_clear_cache(u64 record_id) 860 + { 861 + int i; 862 + u64 *entries; 863 + 864 + mutex_lock(&erst_record_id_cache.lock); 865 + 866 + entries = erst_record_id_cache.entries; 867 + for (i = 0; i < erst_record_id_cache.len; i++) { 868 + if (entries[i] == record_id) 869 + entries[i] = APEI_ERST_INVALID_RECORD_ID; 870 + } 871 + __erst_record_id_cache_compact(); 872 + 873 + mutex_unlock(&erst_record_id_cache.lock); 874 + } 875 + 876 + ssize_t erst_read_record(u64 record_id, struct cper_record_header *record, 877 + size_t buflen, size_t recordlen, const guid_t *creatorid) 878 + { 879 + ssize_t len; 880 + 881 + /* 882 + * if creatorid is NULL, read any record for erst-dbg module 883 + */ 884 + if (creatorid == NULL) { 885 + len = erst_read(record_id, record, buflen); 886 + if (len == -ENOENT) 887 + erst_clear_cache(record_id); 888 + 889 + return len; 890 + } 891 + 892 + len = erst_read(record_id, record, buflen); 893 + /* 894 + * if erst_read return value is -ENOENT skip to next record_id, 895 + * and clear the record_id cache. 896 + */ 897 + if (len == -ENOENT) { 898 + erst_clear_cache(record_id); 899 + goto out; 900 + } 901 + 902 + if (len < 0) 903 + goto out; 904 + 905 + /* 906 + * if erst_read return value is less than record head length, 907 + * consider it as -EIO, and clear the record_id cache. 908 + */ 909 + if (len < recordlen) { 910 + len = -EIO; 911 + erst_clear_cache(record_id); 912 + goto out; 913 + } 914 + 915 + /* 916 + * if creatorid is not wanted, consider it as not found, 917 + * for skipping to next record_id. 918 + */ 919 + if (!guid_equal(&record->creator_id, creatorid)) 920 + len = -ENOENT; 921 + 922 + out: 923 + return len; 924 + } 925 + EXPORT_SYMBOL_GPL(erst_read_record); 926 + 859 927 int erst_clear(u64 record_id) 860 928 { 861 929 int rc, i; ··· 1064 996 goto out; 1065 997 } 1066 998 1067 - len = erst_read(record_id, &rcd->hdr, rcd_len); 999 + len = erst_read_record(record_id, &rcd->hdr, rcd_len, sizeof(*rcd), 1000 + &CPER_CREATOR_PSTORE); 1068 1001 /* The record may be cleared by others, try read next record */ 1069 1002 if (len == -ENOENT) 1070 1003 goto skip; 1071 - else if (len < 0 || len < sizeof(*rcd)) { 1072 - rc = -EIO; 1004 + else if (len < 0) 1073 1005 goto out; 1074 - } 1075 - if (!guid_equal(&rcd->hdr.creator_id, &CPER_CREATOR_PSTORE)) 1076 - goto skip; 1077 1006 1078 1007 record->buf = kmalloc(len, GFP_KERNEL); 1079 1008 if (record->buf == NULL) {
+1
drivers/acpi/arm64/agdi.c
··· 9 9 #define pr_fmt(fmt) "ACPI: AGDI: " fmt 10 10 11 11 #include <linux/acpi.h> 12 + #include <linux/acpi_agdi.h> 12 13 #include <linux/arm_sdei.h> 13 14 #include <linux/io.h> 14 15 #include <linux/kernel.h>
+1 -1
drivers/acpi/bgrt.c
··· 21 21 { \ 22 22 return sysfs_emit(buf, "%d\n", bgrt_tab._member); \ 23 23 } \ 24 - struct kobj_attribute bgrt_attr_##_name = __ATTR_RO(_name) 24 + static struct kobj_attribute bgrt_attr_##_name = __ATTR_RO(_name) 25 25 26 26 BGRT_SHOW(version, version); 27 27 BGRT_SHOW(status, status);
+26
drivers/acpi/bus.c
··· 1070 1070 } 1071 1071 EXPORT_SYMBOL_GPL(acpi_bus_for_each_dev); 1072 1072 1073 + struct acpi_dev_walk_context { 1074 + int (*fn)(struct acpi_device *, void *); 1075 + void *data; 1076 + }; 1077 + 1078 + static int acpi_dev_for_one_check(struct device *dev, void *context) 1079 + { 1080 + struct acpi_dev_walk_context *adwc = context; 1081 + 1082 + if (dev->bus != &acpi_bus_type) 1083 + return 0; 1084 + 1085 + return adwc->fn(to_acpi_device(dev), adwc->data); 1086 + } 1087 + 1088 + int acpi_dev_for_each_child(struct acpi_device *adev, 1089 + int (*fn)(struct acpi_device *, void *), void *data) 1090 + { 1091 + struct acpi_dev_walk_context adwc = { 1092 + .fn = fn, 1093 + .data = data, 1094 + }; 1095 + 1096 + return device_for_each_child(&adev->dev, &adwc, acpi_dev_for_one_check); 1097 + } 1098 + 1073 1099 /* -------------------------------------------------------------------------- 1074 1100 Initialization/Cleanup 1075 1101 -------------------------------------------------------------------------- */
+57 -26
drivers/acpi/device_pm.c
··· 10 10 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 11 */ 12 12 13 - #define pr_fmt(fmt) "ACPI: PM: " fmt 13 + #define pr_fmt(fmt) "PM: " fmt 14 14 15 15 #include <linux/acpi.h> 16 16 #include <linux/export.h> ··· 130 130 *state = result; 131 131 132 132 out: 133 - dev_dbg(&device->dev, "Device power state is %s\n", 134 - acpi_power_state_string(*state)); 133 + acpi_handle_debug(device->handle, "Power state: %s\n", 134 + acpi_power_state_string(*state)); 135 135 136 136 return 0; 137 137 } ··· 173 173 /* Make sure this is a valid target state */ 174 174 175 175 /* There is a special case for D0 addressed below. */ 176 - if (state > ACPI_STATE_D0 && state == device->power.state) { 177 - dev_dbg(&device->dev, "Device already in %s\n", 178 - acpi_power_state_string(state)); 179 - return 0; 180 - } 176 + if (state > ACPI_STATE_D0 && state == device->power.state) 177 + goto no_change; 181 178 182 179 if (state == ACPI_STATE_D3_COLD) { 183 180 /* ··· 186 189 if (!device->power.states[ACPI_STATE_D3_COLD].flags.valid) 187 190 target_state = state; 188 191 } else if (!device->power.states[state].flags.valid) { 189 - dev_warn(&device->dev, "Power state %s not supported\n", 190 - acpi_power_state_string(state)); 192 + acpi_handle_debug(device->handle, "Power state %s not supported\n", 193 + acpi_power_state_string(state)); 191 194 return -ENODEV; 192 195 } 193 196 194 - if (!device->power.flags.ignore_parent && 195 - device->parent && (state < device->parent->power.state)) { 196 - dev_warn(&device->dev, 197 - "Cannot transition to power state %s for parent in %s\n", 198 - acpi_power_state_string(state), 199 - acpi_power_state_string(device->parent->power.state)); 197 + if (!device->power.flags.ignore_parent && device->parent && 198 + state < device->parent->power.state) { 199 + acpi_handle_debug(device->handle, 200 + "Cannot transition to %s for parent in %s\n", 201 + acpi_power_state_string(state), 202 + acpi_power_state_string(device->parent->power.state)); 200 203 return -ENODEV; 201 204 } 202 205 ··· 213 216 * (deeper) states to higher-power (shallower) states. 214 217 */ 215 218 if (state < device->power.state) { 216 - dev_warn(&device->dev, "Cannot transition from %s to %s\n", 217 - acpi_power_state_string(device->power.state), 218 - acpi_power_state_string(state)); 219 + acpi_handle_debug(device->handle, 220 + "Cannot transition from %s to %s\n", 221 + acpi_power_state_string(device->power.state), 222 + acpi_power_state_string(state)); 219 223 return -ENODEV; 220 224 } 221 225 ··· 246 248 247 249 /* Nothing to do here if _PSC is not present. */ 248 250 if (!device->power.flags.explicit_get) 249 - return 0; 251 + goto no_change; 250 252 251 253 /* 252 254 * The power state of the device was set to D0 last ··· 261 263 */ 262 264 result = acpi_dev_pm_explicit_get(device, &psc); 263 265 if (result || psc == ACPI_STATE_D0) 264 - return 0; 266 + goto no_change; 265 267 } 266 268 267 269 result = acpi_dev_pm_explicit_set(device, ACPI_STATE_D0); 268 270 } 269 271 270 - end: 272 + end: 271 273 if (result) { 272 - dev_warn(&device->dev, "Failed to change power state to %s\n", 273 - acpi_power_state_string(target_state)); 274 + acpi_handle_debug(device->handle, 275 + "Failed to change power state to %s\n", 276 + acpi_power_state_string(target_state)); 274 277 } else { 275 278 device->power.state = target_state; 276 - dev_dbg(&device->dev, "Power state changed to %s\n", 277 - acpi_power_state_string(target_state)); 279 + acpi_handle_debug(device->handle, "Power state changed to %s\n", 280 + acpi_power_state_string(target_state)); 278 281 } 279 282 280 283 return result; 284 + 285 + no_change: 286 + acpi_handle_debug(device->handle, "Already in %s\n", 287 + acpi_power_state_string(state)); 288 + return 0; 281 289 } 282 290 EXPORT_SYMBOL(acpi_device_set_power); 283 291 ··· 428 424 return device && device->flags.power_manageable; 429 425 } 430 426 EXPORT_SYMBOL(acpi_bus_power_manageable); 427 + 428 + static int acpi_power_up_if_adr_present(struct acpi_device *adev, void *not_used) 429 + { 430 + if (!(adev->flags.power_manageable && adev->pnp.type.bus_address)) 431 + return 0; 432 + 433 + acpi_handle_debug(adev->handle, "Power state: %s\n", 434 + acpi_power_state_string(adev->power.state)); 435 + 436 + if (adev->power.state == ACPI_STATE_D3_COLD) 437 + return acpi_device_set_power(adev, ACPI_STATE_D0); 438 + 439 + return 0; 440 + } 441 + 442 + /** 443 + * acpi_dev_power_up_children_with_adr - Power up childres with valid _ADR 444 + * @adev: Parent ACPI device object. 445 + * 446 + * Change the power states of the direct children of @adev that are in D3cold 447 + * and hold valid _ADR objects to D0 in order to allow bus (e.g. PCI) 448 + * enumeration code to access them. 449 + */ 450 + void acpi_dev_power_up_children_with_adr(struct acpi_device *adev) 451 + { 452 + acpi_dev_for_each_child(adev, acpi_power_up_if_adr_present, NULL); 453 + } 431 454 432 455 #ifdef CONFIG_PM 433 456 static DEFINE_MUTEX(acpi_pm_notifier_lock);
+5 -4
drivers/acpi/dptf/dptf_power.c
··· 12 12 /* 13 13 * Presentation of attributes which are defined for INT3407 and INT3532. 14 14 * They are: 15 - * PMAX : Maximum platform powe 15 + * PMAX : Maximum platform power 16 16 * PSRC : Platform power source 17 17 * ARTG : Adapter rating 18 18 * CTYP : Charger type 19 - * PBSS : Battery steady power 20 19 * PROP : Rest of worst case platform Power 21 - * PBSS : Power Battery Steady State 22 20 * PBSS : Power Battery Steady State 23 21 * RBHF : High Frequency Impedance 24 22 * VBNL : Instantaneous No-Load Voltage ··· 115 117 #define POWER_STATE_CHANGED 0x81 116 118 #define STEADY_STATE_POWER_CHANGED 0x83 117 119 #define POWER_PROP_CHANGE_EVENT 0x84 118 - #define IMPEDANCED_CHNGED 0x85 120 + #define IMPEDANCE_CHANGED 0x85 119 121 #define VOLTAGE_CURRENT_CHANGED 0x86 120 122 121 123 static long long dptf_participant_type(acpi_handle handle) ··· 147 149 break; 148 150 case STEADY_STATE_POWER_CHANGED: 149 151 attr = "max_steady_state_power_mw"; 152 + break; 153 + case IMPEDANCE_CHANGED: 154 + attr = "high_freq_impedance_mohm"; 150 155 break; 151 156 case VOLTAGE_CURRENT_CHANGED: 152 157 attr = "no_load_voltage_mv";
+2
drivers/acpi/pci_root.c
··· 927 927 host_bridge->preserve_config = 1; 928 928 ACPI_FREE(obj); 929 929 930 + acpi_dev_power_up_children_with_adr(device); 931 + 930 932 pci_scan_child_bus(bus); 931 933 pci_set_host_bridge_release(host_bridge, acpi_pci_root_release_info, 932 934 info);
+12
drivers/acpi/sleep.c
··· 373 373 DMI_MATCH(DMI_PRODUCT_NAME, "20GGA00L00"), 374 374 }, 375 375 }, 376 + /* 377 + * ASUS B1400CEAE hangs on resume from suspend (see 378 + * https://bugzilla.kernel.org/show_bug.cgi?id=215742). 379 + */ 380 + { 381 + .callback = init_default_s3, 382 + .ident = "ASUS B1400CEAE", 383 + .matches = { 384 + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), 385 + DMI_MATCH(DMI_PRODUCT_NAME, "ASUS EXPERTBOOK B1400CEAE"), 386 + }, 387 + }, 376 388 {}, 377 389 }; 378 390
+1
drivers/acpi/spcr.c
··· 142 142 case ACPI_DBG2_16550_COMPATIBLE: 143 143 case ACPI_DBG2_16550_SUBSET: 144 144 case ACPI_DBG2_16550_WITH_GAS: 145 + case ACPI_DBG2_16550_NVIDIA: 145 146 uart = "uart"; 146 147 break; 147 148 default:
+18 -7
drivers/acpi/sysfs.c
··· 415 415 loff_t offset, size_t count) 416 416 { 417 417 struct acpi_data_attr *data_attr; 418 - void *base; 419 - ssize_t rc; 418 + void __iomem *base; 419 + ssize_t size; 420 420 421 421 data_attr = container_of(bin_attr, struct acpi_data_attr, attr); 422 + size = data_attr->attr.size; 422 423 423 - base = acpi_os_map_memory(data_attr->addr, data_attr->attr.size); 424 + if (offset < 0) 425 + return -EINVAL; 426 + 427 + if (offset >= size) 428 + return 0; 429 + 430 + if (count > size - offset) 431 + count = size - offset; 432 + 433 + base = acpi_os_map_iomem(data_attr->addr, size); 424 434 if (!base) 425 435 return -ENOMEM; 426 - rc = memory_read_from_buffer(buf, count, &offset, base, 427 - data_attr->attr.size); 428 - acpi_os_unmap_memory(base, data_attr->attr.size); 429 436 430 - return rc; 437 + memcpy_fromio(buf, base + offset, count); 438 + 439 + acpi_os_unmap_iomem(base, size); 440 + 441 + return count; 431 442 } 432 443 433 444 static int acpi_bert_data_init(void *th, struct acpi_data_attr *data_attr)
+1 -1
drivers/acpi/utils.c
··· 681 681 682 682 if (ret != AE_NOT_FOUND) 683 683 acpi_handle_warn(handle, 684 - "failed to evaluate _DSM (0x%x)\n", ret); 684 + "failed to evaluate _DSM %pUb (0x%x)\n", guid, ret); 685 685 686 686 return NULL; 687 687 }
+3
drivers/pci/pci-acpi.c
··· 1374 1374 1375 1375 acpi_pci_wakeup(pci_dev, false); 1376 1376 acpi_device_power_add_dependent(adev, dev); 1377 + 1378 + if (pci_is_bridge(pci_dev)) 1379 + acpi_dev_power_up_children_with_adr(adev); 1377 1380 } 1378 1381 1379 1382 void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev)
+1 -1
include/acpi/acbuffer.h
··· 3 3 * 4 4 * Name: acbuffer.h - Support for buffers returned by ACPI predefined names 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/acconfig.h
··· 3 3 * 4 4 * Name: acconfig.h - Global configuration constants 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/acexcep.h
··· 3 3 * 4 4 * Name: acexcep.h - Exception codes returned by the ACPI subsystem 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/acnames.h
··· 3 3 * 4 4 * Name: acnames.h - Global names and strings 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/acoutput.h
··· 3 3 * 4 4 * Name: acoutput.h -- debug output 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/acpi.h
··· 3 3 * 4 4 * Name: acpi.h - Master public include file used to interface to ACPICA 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+3
include/acpi/acpi_bus.h
··· 481 481 extern struct bus_type acpi_bus_type; 482 482 483 483 int acpi_bus_for_each_dev(int (*fn)(struct device *, void *), void *data); 484 + int acpi_dev_for_each_child(struct acpi_device *adev, 485 + int (*fn)(struct acpi_device *, void *), void *data); 484 486 485 487 /* 486 488 * Events ··· 524 522 int acpi_bus_update_power(acpi_handle handle, int *state_p); 525 523 int acpi_device_update_power(struct acpi_device *device, int *state_p); 526 524 bool acpi_bus_power_manageable(acpi_handle handle); 525 + void acpi_dev_power_up_children_with_adr(struct acpi_device *adev); 527 526 int acpi_device_power_add_dependent(struct acpi_device *adev, 528 527 struct device *dev); 529 528 void acpi_device_power_remove_dependent(struct acpi_device *adev,
+1 -1
include/acpi/acpiosxf.h
··· 5 5 * interfaces must be implemented by OSL to interface the 6 6 * ACPI components to the host operating system. 7 7 * 8 - * Copyright (C) 2000 - 2021, Intel Corp. 8 + * Copyright (C) 2000 - 2022, Intel Corp. 9 9 * 10 10 *****************************************************************************/ 11 11
+2 -2
include/acpi/acpixf.h
··· 3 3 * 4 4 * Name: acpixf.h - External interfaces to the ACPI subsystem 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 12 12 13 13 /* Current ACPICA subsystem version in YYYYMMDD format */ 14 14 15 - #define ACPI_CA_VERSION 0x20211217 15 + #define ACPI_CA_VERSION 0x20220331 16 16 17 17 #include <acpi/acconfig.h> 18 18 #include <acpi/actypes.h>
+1 -1
include/acpi/acrestyp.h
··· 3 3 * 4 4 * Name: acrestyp.h - Defines, types, and structures for resource descriptors 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/actbl.h
··· 3 3 * 4 4 * Name: actbl.h - Basic ACPI Table Definitions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+11 -7
include/acpi/actbl1.h
··· 3 3 * 4 4 * Name: actbl1.h - Additional ACPI table definitions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 373 373 u32 interleave_targets[]; 374 374 }; 375 375 376 + struct acpi_cedt_cfmws_target_element { 377 + u32 interleave_target; 378 + }; 379 + 376 380 /* Values for Interleave Arithmetic field above */ 377 381 378 - #define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) 382 + #define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) 379 383 380 384 /* Values for Restrictions field above */ 381 385 382 - #define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) 383 - #define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) 384 - #define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) 385 - #define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) 386 - #define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) 386 + #define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) 387 + #define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) 388 + #define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) 389 + #define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) 390 + #define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) 387 391 388 392 /******************************************************************************* 389 393 *
+138 -37
include/acpi/actbl2.h
··· 3 3 * 4 4 * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 25 25 * the wrong signature. 26 26 */ 27 27 #define ACPI_SIG_AGDI "AGDI" /* Arm Generic Diagnostic Dump and Reset Device Interface */ 28 + #define ACPI_SIG_APMT "APMT" /* Arm Performance Monitoring Unit table */ 28 29 #define ACPI_SIG_BDAT "BDAT" /* BIOS Data ACPI Table */ 29 30 #define ACPI_SIG_IORT "IORT" /* IO Remapping Table */ 30 31 #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ ··· 261 260 262 261 /******************************************************************************* 263 262 * 263 + * APMT - ARM Performance Monitoring Unit Table 264 + * 265 + * Conforms to: 266 + * ARM Performance Monitoring Unit Architecture 1.0 Platform Design Document 267 + * ARM DEN0117 v1.0 November 25, 2021 268 + * 269 + ******************************************************************************/ 270 + 271 + struct acpi_table_apmt { 272 + struct acpi_table_header header; /* Common ACPI table header */ 273 + }; 274 + 275 + #define ACPI_APMT_NODE_ID_LENGTH 4 276 + 277 + /* 278 + * APMT subtables 279 + */ 280 + struct acpi_apmt_node { 281 + u16 length; 282 + u8 flags; 283 + u8 type; 284 + u32 id; 285 + u64 inst_primary; 286 + u32 inst_secondary; 287 + u64 base_address0; 288 + u64 base_address1; 289 + u32 ovflw_irq; 290 + u32 reserved; 291 + u32 ovflw_irq_flags; 292 + u32 proc_affinity; 293 + u32 impl_id; 294 + }; 295 + 296 + /* Masks for Flags field above */ 297 + 298 + #define ACPI_APMT_FLAGS_DUAL_PAGE (1<<0) 299 + #define ACPI_APMT_FLAGS_AFFINITY (1<<1) 300 + #define ACPI_APMT_FLAGS_ATOMIC (1<<2) 301 + 302 + /* Values for Flags dual page field above */ 303 + 304 + #define ACPI_APMT_FLAGS_DUAL_PAGE_NSUPP (0<<0) 305 + #define ACPI_APMT_FLAGS_DUAL_PAGE_SUPP (1<<0) 306 + 307 + /* Values for Flags processor affinity field above */ 308 + #define ACPI_APMT_FLAGS_AFFINITY_PROC (0<<1) 309 + #define ACPI_APMT_FLAGS_AFFINITY_PROC_CONTAINER (1<<1) 310 + 311 + /* Values for Flags 64-bit atomic field above */ 312 + #define ACPI_APMT_FLAGS_ATOMIC_NSUPP (0<<2) 313 + #define ACPI_APMT_FLAGS_ATOMIC_SUPP (1<<2) 314 + 315 + /* Values for Type field above */ 316 + 317 + enum acpi_apmt_node_type { 318 + ACPI_APMT_NODE_TYPE_MC = 0x00, 319 + ACPI_APMT_NODE_TYPE_SMMU = 0x01, 320 + ACPI_APMT_NODE_TYPE_PCIE_ROOT = 0x02, 321 + ACPI_APMT_NODE_TYPE_ACPI = 0x03, 322 + ACPI_APMT_NODE_TYPE_CACHE = 0x04, 323 + ACPI_APMT_NODE_TYPE_COUNT 324 + }; 325 + 326 + /* Masks for ovflw_irq_flags field above */ 327 + 328 + #define ACPI_APMT_OVFLW_IRQ_FLAGS_MODE (1<<0) 329 + #define ACPI_APMT_OVFLW_IRQ_FLAGS_TYPE (1<<1) 330 + 331 + /* Values for ovflw_irq_flags mode field above */ 332 + 333 + #define ACPI_APMT_OVFLW_IRQ_FLAGS_MODE_LEVEL (0<<0) 334 + #define ACPI_APMT_OVFLW_IRQ_FLAGS_MODE_EDGE (1<<0) 335 + 336 + /* Values for ovflw_irq_flags type field above */ 337 + 338 + #define ACPI_APMT_OVFLW_IRQ_FLAGS_TYPE_WIRED (0<<1) 339 + 340 + /******************************************************************************* 341 + * 264 342 * BDAT - BIOS Data ACPI Table 265 343 * 266 344 * Conforms to "BIOS Data ACPI Table", Interface Specification v4.0 Draft 5 ··· 357 277 * IORT - IO Remapping Table 358 278 * 359 279 * Conforms to "IO Remapping Table System Software on ARM Platforms", 360 - * Document number: ARM DEN 0049E.b, Feb 2021 280 + * Document number: ARM DEN 0049E.d, Feb 2022 361 281 * 362 282 ******************************************************************************/ 363 283 ··· 454 374 u32 ats_attribute; 455 375 u32 pci_segment_number; 456 376 u8 memory_address_limit; /* Memory address size limit */ 457 - u8 reserved[3]; /* Reserved, must be zero */ 377 + u16 pasid_capabilities; /* PASID Capabilities */ 378 + u8 reserved[1]; /* Reserved, must be zero */ 458 379 }; 459 380 460 381 /* Masks for ats_attribute field above */ ··· 463 382 #define ACPI_IORT_ATS_SUPPORTED (1) /* The root complex ATS support */ 464 383 #define ACPI_IORT_PRI_SUPPORTED (1<<1) /* The root complex PRI support */ 465 384 #define ACPI_IORT_PASID_FWD_SUPPORTED (1<<2) /* The root complex PASID forward support */ 385 + 386 + /* Masks for pasid_capabilities field above */ 387 + #define ACPI_IORT_PASID_MAX_WIDTH (0x1F) /* Bits 0-4 */ 466 388 467 389 struct acpi_iort_smmu { 468 390 u64 base_address; /* SMMU base address */ ··· 541 457 u32 rmr_count; 542 458 u32 rmr_offset; 543 459 }; 460 + 461 + /* Masks for Flags field above */ 462 + #define ACPI_IORT_RMR_REMAP_PERMITTED (1) 463 + #define ACPI_IORT_RMR_ACCESS_PRIVILEGE (1<<1) 464 + 465 + /* 466 + * Macro to access the Access Attributes in flags field above: 467 + * Access Attributes is encoded in bits 9:2 468 + */ 469 + #define ACPI_IORT_RMR_ACCESS_ATTRIBUTES(flags) (((flags) >> 2) & 0xFF) 470 + 471 + /* Values for above Access Attributes */ 472 + 473 + #define ACPI_IORT_RMR_ATTR_DEVICE_NGNRNE 0x00 474 + #define ACPI_IORT_RMR_ATTR_DEVICE_NGNRE 0x01 475 + #define ACPI_IORT_RMR_ATTR_DEVICE_NGRE 0x02 476 + #define ACPI_IORT_RMR_ATTR_DEVICE_GRE 0x03 477 + #define ACPI_IORT_RMR_ATTR_NORMAL_NC 0x04 478 + #define ACPI_IORT_RMR_ATTR_NORMAL_IWB_OWB 0x05 544 479 545 480 struct acpi_iort_rmr_desc { 546 481 u64 base_address; ··· 865 762 ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, 866 763 ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, 867 764 ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, 868 - ACPI_MADT_TYPE_RESERVED = 17 /* 17 and greater are reserved */ 765 + ACPI_MADT_TYPE_RESERVED = 17, /* 17 to 0x7F are reserved */ 766 + ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ 869 767 }; 870 768 871 769 /* ··· 1082 978 u64 base_address; 1083 979 }; 1084 980 1085 - #define ACPI_MULTIPROC_WAKEUP_MB_OS_SIZE 2032 1086 - #define ACPI_MULTIPROC_WAKEUP_MB_FIRMWARE_SIZE 2048 981 + #define ACPI_MULTIPROC_WAKEUP_MB_OS_SIZE 2032 982 + #define ACPI_MULTIPROC_WAKEUP_MB_FIRMWARE_SIZE 2048 1087 983 1088 984 struct acpi_madt_multiproc_wakeup_mailbox { 1089 985 u16 command; ··· 1095 991 }; 1096 992 1097 993 #define ACPI_MP_WAKE_COMMAND_WAKEUP 1 994 + 995 + /* 17: OEM data */ 996 + 997 + struct acpi_madt_oem_data { 998 + u8 oem_data[0]; 999 + }; 1098 1000 1099 1001 /* 1100 1002 * Common flags fields for MADT subtables ··· 1707 1597 1708 1598 /* Values for array_type_ext above */ 1709 1599 1710 - #define ACPI_NHLT_ARRAY_TYPE_RESERVED 0x09 // 9 and below are reserved 1600 + #define ACPI_NHLT_ARRAY_TYPE_RESERVED 0x09 /* 9 and below are reserved */ 1711 1601 #define ACPI_NHLT_SMALL_LINEAR_2ELEMENT 0x0A 1712 1602 #define ACPI_NHLT_BIG_LINEAR_2ELEMENT 0x0B 1713 1603 #define ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C ··· 1727 1617 struct acpi_nhlt_vendor_mic_config { 1728 1618 u8 type; 1729 1619 u8 panel; 1730 - u16 speaker_position_distance; // mm 1731 - u16 horizontal_offset; // mm 1732 - u16 vertical_offset; // mm 1733 - u8 frequency_low_band; // 5*hz 1734 - u8 frequency_high_band; // 500*hz 1735 - u16 direction_angle; // -180 - + 180 1736 - u16 elevation_angle; // -180 - + 180 1737 - u16 work_vertical_angle_begin; // -180 - + 180 with 2 deg step 1738 - u16 work_vertical_angle_end; // -180 - + 180 with 2 deg step 1739 - u16 work_horizontal_angle_begin; // -180 - + 180 with 2 deg step 1740 - u16 work_horizontal_angle_end; // -180 - + 180 with 2 deg step 1620 + u16 speaker_position_distance; /* mm */ 1621 + u16 horizontal_offset; /* mm */ 1622 + u16 vertical_offset; /* mm */ 1623 + u8 frequency_low_band; /* 5*Hz */ 1624 + u8 frequency_high_band; /* 500*Hz */ 1625 + u16 direction_angle; /* -180 - + 180 */ 1626 + u16 elevation_angle; /* -180 - + 180 */ 1627 + u16 work_vertical_angle_begin; /* -180 - + 180 with 2 deg step */ 1628 + u16 work_vertical_angle_end; /* -180 - + 180 with 2 deg step */ 1629 + u16 work_horizontal_angle_begin; /* -180 - + 180 with 2 deg step */ 1630 + u16 work_horizontal_angle_end; /* -180 - + 180 with 2 deg step */ 1741 1631 }; 1742 1632 1743 1633 /* Values for Type field above */ ··· 1748 1638 #define ACPI_NHLT_MIC_SUPER_CARDIOID 3 1749 1639 #define ACPI_NHLT_MIC_HYPER_CARDIOID 4 1750 1640 #define ACPI_NHLT_MIC_8_SHAPED 5 1751 - #define ACPI_NHLT_MIC_RESERVED6 6 // 6 is reserved 1641 + #define ACPI_NHLT_MIC_RESERVED6 6 /* 6 is reserved */ 1752 1642 #define ACPI_NHLT_MIC_VENDOR_DEFINED 7 1753 - #define ACPI_NHLT_MIC_RESERVED 8 // 8 and above are reserved 1643 + #define ACPI_NHLT_MIC_RESERVED 8 /* 8 and above are reserved */ 1754 1644 1755 1645 /* Values for Panel field above */ 1756 1646 ··· 1760 1650 #define ACPI_NHLT_MIC_POSITION_RIGHT 3 1761 1651 #define ACPI_NHLT_MIC_POSITION_FRONT 4 1762 1652 #define ACPI_NHLT_MIC_POSITION_BACK 5 1763 - #define ACPI_NHLT_MIC_POSITION_RESERVED 6 // 6 and above are reserved 1653 + #define ACPI_NHLT_MIC_POSITION_RESERVED 6 /* 6 and above are reserved */ 1764 1654 1765 1655 struct acpi_nhlt_vendor_mic_device_specific_config { 1766 1656 struct acpi_nhlt_mic_device_specific_config mic_array_device_config; 1767 1657 u8 number_of_microphones; 1768 - struct acpi_nhlt_vendor_mic_config mic_config[]; // indexed by number_of_microphones 1658 + struct acpi_nhlt_vendor_mic_config mic_config[]; /* Indexed by number_of_microphones */ 1769 1659 }; 1770 1660 1771 1661 /* Microphone SNR and Sensitivity extension */ ··· 1778 1668 /* Render device with feedback */ 1779 1669 1780 1670 struct acpi_nhlt_render_feedback_device_specific_config { 1781 - u8 feedback_virtual_slot; // render slot in case of capture 1782 - u16 feedback_channels; // informative only 1671 + u8 feedback_virtual_slot; /* Render slot in case of capture */ 1672 + u16 feedback_channels; /* Informative only */ 1783 1673 u16 feedback_valid_bits_per_sample; 1784 1674 }; 1785 1675 1786 - /* Linux-specific structures */ 1676 + /* Non documented structures */ 1787 1677 1788 - struct acpi_nhlt_linux_specific_count { 1678 + struct acpi_nhlt_device_info_count { 1789 1679 u8 structure_count; 1790 1680 }; 1791 1681 1792 - struct acpi_nhlt_linux_specific_data { 1682 + struct acpi_nhlt_device_info { 1793 1683 u8 device_id[16]; 1794 1684 u8 device_instance_id; 1795 1685 u8 device_port_id; 1796 - }; 1797 - 1798 - struct acpi_nhlt_linux_specific_data_b { 1799 - u8 specific_data[18]; 1800 - }; 1801 - 1802 - struct acpi_nhlt_table_terminator { 1803 - u32 terminator_value; 1804 - u32 terminator_signature; 1805 1686 }; 1806 1687 1807 1688 /******************************************************************************* ··· 2420 2319 u16 version; 2421 2320 u8 image_type; 2422 2321 u8 reserved; 2423 - u8 image[0]; 2322 + u8 image[]; 2424 2323 }; 2425 2324 2426 2325 /* image_type values */
+1 -1
include/acpi/actbl3.h
··· 3 3 * 4 4 * Name: actbl3.h - ACPI Table Definitions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+10 -9
include/acpi/actypes.h
··· 3 3 * 4 4 * Name: actypes.h - Common data types for the entire ACPI subsystem 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9 ··· 539 539 * Can be used with access_width of struct acpi_generic_address and access_size of 540 540 * struct acpi_resource_generic_register. 541 541 */ 542 - #define ACPI_ACCESS_BIT_SHIFT 2 543 - #define ACPI_ACCESS_BYTE_SHIFT -1 544 - #define ACPI_ACCESS_BIT_MAX (31 - ACPI_ACCESS_BIT_SHIFT) 545 - #define ACPI_ACCESS_BYTE_MAX (31 - ACPI_ACCESS_BYTE_SHIFT) 546 - #define ACPI_ACCESS_BIT_DEFAULT (8 - ACPI_ACCESS_BIT_SHIFT) 547 - #define ACPI_ACCESS_BYTE_DEFAULT (8 - ACPI_ACCESS_BYTE_SHIFT) 548 - #define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BIT_SHIFT)) 549 - #define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BYTE_SHIFT)) 542 + #define ACPI_ACCESS_BIT_SHIFT 2 543 + #define ACPI_ACCESS_BYTE_SHIFT -1 544 + #define ACPI_ACCESS_BIT_MAX (31 - ACPI_ACCESS_BIT_SHIFT) 545 + #define ACPI_ACCESS_BYTE_MAX (31 - ACPI_ACCESS_BYTE_SHIFT) 546 + #define ACPI_ACCESS_BIT_DEFAULT (8 - ACPI_ACCESS_BIT_SHIFT) 547 + #define ACPI_ACCESS_BYTE_DEFAULT (8 - ACPI_ACCESS_BYTE_SHIFT) 548 + #define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BIT_SHIFT)) 549 + #define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BYTE_SHIFT)) 550 550 551 551 /******************************************************************************* 552 552 * ··· 1303 1303 #define ACPI_OSI_WIN_10_RS5 0x13 1304 1304 #define ACPI_OSI_WIN_10_19H1 0x14 1305 1305 #define ACPI_OSI_WIN_10_20H1 0x15 1306 + #define ACPI_OSI_WIN_11 0x16 1306 1307 1307 1308 /* Definitions of getopt */ 1308 1309
+1 -1
include/acpi/acuuid.h
··· 3 3 * 4 4 * Name: acuuid.h - ACPI-related UUID/GUID definitions 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+2
include/acpi/apei.h
··· 46 46 void erst_get_record_id_end(void); 47 47 ssize_t erst_read(u64 record_id, struct cper_record_header *record, 48 48 size_t buflen); 49 + ssize_t erst_read_record(u64 record_id, struct cper_record_header *record, 50 + size_t buflen, size_t recordlen, const guid_t *creatorid); 49 51 int erst_clear(u64 record_id); 50 52 51 53 int arch_apei_enable_cmcff(struct acpi_hest_header *hest_hdr, void *data);
+1 -1
include/acpi/platform/acenv.h
··· 3 3 * 4 4 * Name: acenv.h - Host and compiler configuration 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/platform/acenvex.h
··· 3 3 * 4 4 * Name: acenvex.h - Extra host and compiler configuration 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/platform/acgcc.h
··· 3 3 * 4 4 * Name: acgcc.h - GCC specific defines, etc. 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/platform/acgccex.h
··· 3 3 * 4 4 * Name: acgccex.h - Extra GCC specific defines, etc. 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/platform/acintel.h
··· 3 3 * 4 4 * Name: acintel.h - VC specific defines, etc. 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/platform/aclinux.h
··· 3 3 * 4 4 * Name: aclinux.h - OS specific defines, etc. for Linux 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
include/acpi/platform/aclinuxex.h
··· 3 3 * 4 4 * Name: aclinuxex.h - Extra OS specific defines, etc. for Linux 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/common/cmfsize.c
··· 3 3 * 4 4 * Module Name: cmfsize - Common get file size function 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/common/getopt.c
··· 3 3 * 4 4 * Module Name: getopt 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/os_specific/service_layers/oslinuxtbl.c
··· 3 3 * 4 4 * Module Name: oslinuxtbl - Linux OSL for obtaining ACPI tables 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/os_specific/service_layers/osunixdir.c
··· 3 3 * 4 4 * Module Name: osunixdir - Unix directory access interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/os_specific/service_layers/osunixmap.c
··· 3 3 * 4 4 * Module Name: osunixmap - Unix OSL for file mappings 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/os_specific/service_layers/osunixxf.c
··· 3 3 * 4 4 * Module Name: osunixxf - UNIX OSL interfaces 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/tools/acpidump/acpidump.h
··· 3 3 * 4 4 * Module Name: acpidump.h - Include file for acpi_dump utility 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/tools/acpidump/apdump.c
··· 3 3 * 4 4 * Module Name: apdump - Dump routines for ACPI tables (acpidump) 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/tools/acpidump/apfiles.c
··· 3 3 * 4 4 * Module Name: apfiles - File-related functions for acpidump utility 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9
+1 -1
tools/power/acpi/tools/acpidump/apmain.c
··· 3 3 * 4 4 * Module Name: apmain - Main module for the acpidump utility 5 5 * 6 - * Copyright (C) 2000 - 2021, Intel Corp. 6 + * Copyright (C) 2000 - 2022, Intel Corp. 7 7 * 8 8 *****************************************************************************/ 9 9