mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
Merge tag 'acpi-6.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI updates from Rafael Wysocki:
"The most significant part of these changes is an ACPICA update
covering two upstream ACPICA releases, 20241212 and 20250404, that
have not been included into the kernel code base yet.
Among other things, it adds definitions needed to address GCC 15's
-Wunterminated-string-initialization warnings, adds support for three
new tables (MRRM, ERDT, RIMT), extends support for two tables (RAS2,
DMAR), and fixes some issues.
On top of the above, there is a new parser for the MRRM table, more
changes related to GCC 15's -Wunterminated-string-initialization
warnings, a CPPC library update including functions related to
autonomous CPU performance state selection, a couple of new quirks,
some assorted fixes and some code cleanups.
Specifics:
- Fix two ACPICA SLAB cache leaks (Seunghun Han)
- Add EINJv2 get error type action and define Error Injection Actions
in hex values to avoid inconsistencies between the specification
and the code (Zaid Alali)
- Fix typo in comments for SRAT structures (Adam Lackorzynski)
- Prevent possible loss of data in ACPICA because of u32 to u8
conversions (Saket Dumbre)
- Fix reading FFixedHW operation regions in ACPICA (Daniil Tatianin)
- Add support for printing AML arguments when the ACPICA debug level
is ACPI_LV_TRACE_POINT (Mario Limonciello)
- Drop a stale comment about the file content from actbl2.h (Sudeep
Holla)
- Apply pack(1) to union aml_resource (Tamir Duberstein)
- Fix overflow check in the ACPICA version of vsnprintf() (gldrk)
- Interpret SIDP structures in DMAR added revision 3.4 of the VT-d
specification (Alexey Neyman)
- Add typedef and other definitions related to MRRM to ACPICA (Tony
Luck)
- Add definitions for RIMT to ACPICA (Sunil V L)
- Fix spelling mistake "Incremement" -> "Increment" in the ACPICA
utilities code (Colin Ian King)
- Add typedef and other definitions for ERDT to ACPICA (Tony Luck)
- Introduce ACPI_NONSTRING and use it (Kees Cook, Ahmed Salem)
- Rename structure and field names of the RAS2 table in actbl2.h
(Shiju Jose)
- Fix up whitespace in acpica/utcache.c (Zhe Qiao)
- Avoid sequence overread in a call to strncmp() in
ap_get_table_length() and replace strncpy() with memcpy() in ACPICA
in some places (Ahmed Salem)
- Update copyright year in all ACPICA files (Saket Dumbre)
- Add __nonstring annotations for unterminated strings in the static
ACPI tables parsing code (Kees Cook)
- Add support for parsing the MRRM ACPI table and sysfs files to
describe memory regions listed in it (Tony Luck, Anil
Keshavamurthy)
- Remove an (explicitly) unused header file include from the VIOT
ACPI table parser file (Andy Shevchenko)
- Improve logging around acpi_initialize_tables() (Bartosz
Szczepanek)
- Clean up the initialization of CPU data structures in the ACPI
processor driver (Zhang Rui)
- Remove an obsolete comment regarding the C-states handling in the
ACPI processor driver (Giovanni Gherdovich)
- Simplify PCC shared memory region handling (Sudeep Holla)
- Rework and extend functions for reading CPPC register values and
for updating CPPC registers (Lifeng Zheng)
- Add three functions related to autonomous CPU performance state
selection to the CPPC library (Lifeng Zheng)
- Turn the acpi_pci_root_remap_iospace() fwnode_handle parameter into
a const pointer (Pei Xiao)
- Round battery capacity percengate in the ACPI battery driver to the
closest integer to avoid user confusion (shitao)
- Make the ACPI battery driver report the current as a negative
number to the power supply framework when the battery is
discharging as documented (Peter Marheine)
- Add TUXEDO InfinityBook Pro AMD Gen9 to the acpi_ec_no_wakeup[]
list to prevent spurious wakeups from suspend-to-idle (Werner
Sembach)
- Convert the APEI EINJ driver to a faux device one (Sudeep Holla,
Jon Hunter)
- Remove redundant calls to einj_get_available_error_type() from the
APEI EINJ driver (Zaid Alali)
- Fix a typo for MECHREVO in irq1_edge_low_force_override[] (Mingcong
Bai)
- Add an LPS0 check() callback to the AMD pinctrl driver and fix up
config symbol dependencies in it (Mario Limonciello, Rafael
Wysocki)
- Avoid initializing the ACPI platform profile driver on non-ACPI
platforms (Alexandre Ghiti)
- Document that references to ACPI data (non-device) nodes should use
string-only references in hierarchical data node packages (Sakari
Ailus)
- Fail the ACPI bus registration if acpi_kobj registration fails
(Armin Wolf)"
* tag 'acpi-6.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (65 commits)
ACPI: MRRM: Fix default max memory region
ACPI: bus: Bail out if acpi_kobj registration fails
ACPI: platform_profile: Avoid initializing on non-ACPI platforms
pinctrl: amd: Fix hibernation support with CONFIG_SUSPEND unset
ACPI: tables: Improve logging around acpi_initialize_tables()
ACPI: VIOT: Remove (explicitly) unused header
ACPI: Add documentation for exposing MRRM data
ACPI: MRRM: Add /sys files to describe memory ranges
ACPI: MRRM: Minimal parse of ACPI MRRM table
ACPICA: Update copyright year
ACPICA: Logfile: Changes for version 20250404
ACPICA: Replace strncpy() with memcpy()
ACPICA: Apply ACPI_NONSTRING in more places
ACPICA: Avoid sequence overread in call to strncmp()
ACPICA: Adjust the position of code lines
ACPICA: actbl2.h: ACPI 6.5: RAS2: Rename structure and field names of the RAS2 table
ACPICA: Apply ACPI_NONSTRING
ACPICA: Introduce ACPI_NONSTRING
ACPICA: actbl2.h: ERDT: Add typedef and other definitions
ACPICA: infrastructure: Add new DMT_BUF types and shorten a long name
...
This commit is contained in:
@@ -248,3 +248,24 @@ Description:
|
||||
# cat ff_pwr_btn
|
||||
7 enabled
|
||||
|
||||
What: /sys/firmware/acpi/memory_ranges/rangeX
|
||||
Date: February 2025
|
||||
Contact: Tony Luck <tony.luck@intel.com>
|
||||
Description:
|
||||
On systems with the ACPI MRRM table reports the parameters for
|
||||
each range.
|
||||
|
||||
base: Starting system physical address.
|
||||
|
||||
length: Length of this range in bytes.
|
||||
|
||||
node: NUMA node that this range belongs to. Negative numbers
|
||||
indicate that the node number could not be determined (e.g
|
||||
for an address range that is reserved for future hot add of
|
||||
memory).
|
||||
|
||||
local_region_id: ID associated with access by agents
|
||||
local to this range of addresses.
|
||||
|
||||
remote_region_id: ID associated with access by agents
|
||||
non-local to this range of addresses.
|
||||
|
||||
@@ -12,11 +12,14 @@ ACPI in general allows referring to device objects in the tree only.
|
||||
Hierarchical data extension nodes may not be referred to directly, hence this
|
||||
document defines a scheme to implement such references.
|
||||
|
||||
A reference consist of the device object name followed by one or more
|
||||
hierarchical data extension [dsd-guide] keys. Specifically, the hierarchical
|
||||
data extension node which is referred to by the key shall lie directly under
|
||||
the parent object i.e. either the device object or another hierarchical data
|
||||
extension node.
|
||||
A reference to a _DSD hierarchical data node is a string consisting of a
|
||||
device object reference followed by a dot (".") and a relative path to a data
|
||||
node object. Do not use non-string references as this will produce a copy of
|
||||
the hierarchical data node, not a reference!
|
||||
|
||||
The hierarchical data extension node which is referred to shall be located
|
||||
directly under its parent object i.e. either the device object or another
|
||||
hierarchical data extension node [dsd-guide].
|
||||
|
||||
The keys in the hierarchical data nodes shall consist of the name of the node,
|
||||
"@" character and the number of the node in hexadecimal notation (without pre-
|
||||
@@ -33,11 +36,9 @@ extension key.
|
||||
Example
|
||||
=======
|
||||
|
||||
In the ASL snippet below, the "reference" _DSD property contains a
|
||||
device object reference to DEV0 and under that device object, a
|
||||
hierarchical data extension key "node@1" referring to the NOD1 object
|
||||
and lastly, a hierarchical data extension key "anothernode" referring to
|
||||
the ANOD object which is also the final target node of the reference.
|
||||
In the ASL snippet below, the "reference" _DSD property contains a string
|
||||
reference to a hierarchical data extension node ANOD under DEV0 under the parent
|
||||
of DEV1. ANOD is also the final target node of the reference.
|
||||
::
|
||||
|
||||
Device (DEV0)
|
||||
@@ -76,10 +77,7 @@ the ANOD object which is also the final target node of the reference.
|
||||
Name (_DSD, Package () {
|
||||
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||
Package () {
|
||||
Package () {
|
||||
"reference", Package () {
|
||||
^DEV0, "node@1", "anothernode"
|
||||
}
|
||||
Package () { "reference", "^DEV0.ANOD" }
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -66,12 +66,9 @@ of that port shall be zero. Similarly, if a port may only have a single
|
||||
endpoint, the number of that endpoint shall be zero.
|
||||
|
||||
The endpoint reference uses property extension with "remote-endpoint" property
|
||||
name followed by a reference in the same package. Such references consist of
|
||||
the remote device reference, the first package entry of the port data extension
|
||||
reference under the device and finally the first package entry of the endpoint
|
||||
data extension reference under the port. Individual references thus appear as::
|
||||
name followed by a string reference in the same package. [data-node-ref]::
|
||||
|
||||
Package() { device, "port@X", "endpoint@Y" }
|
||||
"device.datanode"
|
||||
|
||||
In the above example, "X" is the number of the port and "Y" is the number of
|
||||
the endpoint.
|
||||
@@ -109,7 +106,7 @@ A simple example of this is show below::
|
||||
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||
Package () {
|
||||
Package () { "reg", 0 },
|
||||
Package () { "remote-endpoint", Package() { \_SB.PCI0.ISP, "port@4", "endpoint@0" } },
|
||||
Package () { "remote-endpoint", "\\_SB.PCI0.ISP.EP40" },
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -141,7 +138,7 @@ A simple example of this is show below::
|
||||
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||
Package () {
|
||||
Package () { "reg", 0 },
|
||||
Package () { "remote-endpoint", Package () { \_SB.PCI0.I2C2.CAM0, "port@0", "endpoint@0" } },
|
||||
Package () { "remote-endpoint", "\\_SB.PCI0.I2C2.CAM0.EP00" },
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -15,11 +15,6 @@ Referring to LEDs in Device tree is documented in [video-interfaces], in
|
||||
"flash-leds" property documentation. In short, LEDs are directly referred to by
|
||||
using phandles.
|
||||
|
||||
While Device tree allows referring to any node in the tree [devicetree], in
|
||||
ACPI references are limited to device nodes only [acpi]. For this reason using
|
||||
the same mechanism on ACPI is not possible. A mechanism to refer to non-device
|
||||
ACPI nodes is documented in [data-node-ref].
|
||||
|
||||
ACPI allows (as does DT) using integer arguments after the reference. A
|
||||
combination of the LED driver device reference and an integer argument,
|
||||
referring to the "reg" property of the relevant LED, is used to identify
|
||||
@@ -74,7 +69,7 @@ omitted. ::
|
||||
Package () {
|
||||
Package () {
|
||||
"flash-leds",
|
||||
Package () { ^LED, "led@0", ^LED, "led@1" },
|
||||
Package () { "^LED.LED0", "^LED.LED1" },
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -38,6 +38,7 @@ config X86_64
|
||||
select ARCH_HAS_ELFCORE_COMPAT
|
||||
select ZONE_DMA32
|
||||
select EXECMEM if DYNAMIC_FTRACE
|
||||
select ACPI_MRRM if ACPI
|
||||
|
||||
config FORCE_DYNAMIC_FTRACE
|
||||
def_bool y
|
||||
|
||||
@@ -576,6 +576,9 @@ config ACPI_FFH
|
||||
Enable this feature if you want to set up and install the FFH Address
|
||||
Space handler to handle FFH OpRegion in the firmware.
|
||||
|
||||
config ACPI_MRRM
|
||||
bool
|
||||
|
||||
source "drivers/acpi/pmic/Kconfig"
|
||||
|
||||
config ACPI_VIOT
|
||||
|
||||
@@ -66,6 +66,7 @@ acpi-$(CONFIG_ACPI_WATCHDOG) += acpi_watchdog.o
|
||||
acpi-$(CONFIG_ACPI_PRMT) += prmt.o
|
||||
acpi-$(CONFIG_ACPI_PCC) += acpi_pcc.o
|
||||
acpi-$(CONFIG_ACPI_FFH) += acpi_ffh.o
|
||||
acpi-$(CONFIG_ACPI_MRRM) += acpi_mrrm.o
|
||||
|
||||
# Address translation
|
||||
acpi-$(CONFIG_ACPI_ADXL) += acpi_adxl.o
|
||||
|
||||
183
drivers/acpi/acpi_mrrm.c
Normal file
183
drivers/acpi/acpi_mrrm.c
Normal file
@@ -0,0 +1,183 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2025, Intel Corporation.
|
||||
*
|
||||
* Memory Range and Region Mapping (MRRM) structure
|
||||
*
|
||||
* Parse and report the platform's MRRM table in /sys.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) "acpi/mrrm: " fmt
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/sysfs.h>
|
||||
|
||||
/* Default assume one memory region covering all system memory, per the spec */
|
||||
static int max_mem_region = 1;
|
||||
|
||||
/* Access for use by resctrl file system */
|
||||
int acpi_mrrm_max_mem_region(void)
|
||||
{
|
||||
return max_mem_region;
|
||||
}
|
||||
|
||||
struct mrrm_mem_range_entry {
|
||||
u64 base;
|
||||
u64 length;
|
||||
int node;
|
||||
u8 local_region_id;
|
||||
u8 remote_region_id;
|
||||
};
|
||||
|
||||
static struct mrrm_mem_range_entry *mrrm_mem_range_entry;
|
||||
static u32 mrrm_mem_entry_num;
|
||||
|
||||
static int get_node_num(struct mrrm_mem_range_entry *e)
|
||||
{
|
||||
unsigned int nid;
|
||||
|
||||
for_each_online_node(nid) {
|
||||
for (int z = 0; z < MAX_NR_ZONES; z++) {
|
||||
struct zone *zone = NODE_DATA(nid)->node_zones + z;
|
||||
|
||||
if (!populated_zone(zone))
|
||||
continue;
|
||||
if (zone_intersects(zone, PHYS_PFN(e->base), PHYS_PFN(e->length)))
|
||||
return zone_to_nid(zone);
|
||||
}
|
||||
}
|
||||
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
static __init int acpi_parse_mrrm(struct acpi_table_header *table)
|
||||
{
|
||||
struct acpi_mrrm_mem_range_entry *mre_entry;
|
||||
struct acpi_table_mrrm *mrrm;
|
||||
void *mre, *mrrm_end;
|
||||
int mre_count = 0;
|
||||
|
||||
mrrm = (struct acpi_table_mrrm *)table;
|
||||
if (!mrrm)
|
||||
return -ENODEV;
|
||||
|
||||
if (mrrm->flags & ACPI_MRRM_FLAGS_REGION_ASSIGNMENT_OS)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mrrm_end = (void *)mrrm + mrrm->header.length - 1;
|
||||
mre = (void *)mrrm + sizeof(struct acpi_table_mrrm);
|
||||
while (mre < mrrm_end) {
|
||||
mre_entry = mre;
|
||||
mre_count++;
|
||||
mre += mre_entry->header.length;
|
||||
}
|
||||
if (!mre_count) {
|
||||
pr_info(FW_BUG "No ranges listed in MRRM table\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
mrrm_mem_range_entry = kmalloc_array(mre_count, sizeof(*mrrm_mem_range_entry),
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!mrrm_mem_range_entry)
|
||||
return -ENOMEM;
|
||||
|
||||
mre = (void *)mrrm + sizeof(struct acpi_table_mrrm);
|
||||
while (mre < mrrm_end) {
|
||||
struct mrrm_mem_range_entry *e;
|
||||
|
||||
mre_entry = mre;
|
||||
e = mrrm_mem_range_entry + mrrm_mem_entry_num;
|
||||
|
||||
e->base = mre_entry->addr_base;
|
||||
e->length = mre_entry->addr_len;
|
||||
e->node = get_node_num(e);
|
||||
|
||||
if (mre_entry->region_id_flags & ACPI_MRRM_VALID_REGION_ID_FLAGS_LOCAL)
|
||||
e->local_region_id = mre_entry->local_region_id;
|
||||
else
|
||||
e->local_region_id = -1;
|
||||
if (mre_entry->region_id_flags & ACPI_MRRM_VALID_REGION_ID_FLAGS_REMOTE)
|
||||
e->remote_region_id = mre_entry->remote_region_id;
|
||||
else
|
||||
e->remote_region_id = -1;
|
||||
|
||||
mrrm_mem_entry_num++;
|
||||
mre += mre_entry->header.length;
|
||||
}
|
||||
|
||||
max_mem_region = mrrm->max_mem_region;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define RANGE_ATTR(name, fmt) \
|
||||
static ssize_t name##_show(struct kobject *kobj, \
|
||||
struct kobj_attribute *attr, char *buf) \
|
||||
{ \
|
||||
struct mrrm_mem_range_entry *mre; \
|
||||
const char *kname = kobject_name(kobj); \
|
||||
int n, ret; \
|
||||
\
|
||||
ret = kstrtoint(kname + 5, 10, &n); \
|
||||
if (ret) \
|
||||
return ret; \
|
||||
\
|
||||
mre = mrrm_mem_range_entry + n; \
|
||||
\
|
||||
return sysfs_emit(buf, fmt, mre->name); \
|
||||
} \
|
||||
static struct kobj_attribute name##_attr = __ATTR_RO(name)
|
||||
|
||||
RANGE_ATTR(base, "0x%llx\n");
|
||||
RANGE_ATTR(length, "0x%llx\n");
|
||||
RANGE_ATTR(node, "%d\n");
|
||||
RANGE_ATTR(local_region_id, "%d\n");
|
||||
RANGE_ATTR(remote_region_id, "%d\n");
|
||||
|
||||
static struct attribute *memory_range_attrs[] = {
|
||||
&base_attr.attr,
|
||||
&length_attr.attr,
|
||||
&node_attr.attr,
|
||||
&local_region_id_attr.attr,
|
||||
&remote_region_id_attr.attr,
|
||||
NULL
|
||||
};
|
||||
|
||||
ATTRIBUTE_GROUPS(memory_range);
|
||||
|
||||
static __init int add_boot_memory_ranges(void)
|
||||
{
|
||||
struct kobject *pkobj, *kobj;
|
||||
int ret = -EINVAL;
|
||||
char *name;
|
||||
|
||||
pkobj = kobject_create_and_add("memory_ranges", acpi_kobj);
|
||||
|
||||
for (int i = 0; i < mrrm_mem_entry_num; i++) {
|
||||
name = kasprintf(GFP_KERNEL, "range%d", i);
|
||||
if (!name)
|
||||
break;
|
||||
|
||||
kobj = kobject_create_and_add(name, pkobj);
|
||||
|
||||
ret = sysfs_create_groups(kobj, memory_range_groups);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static __init int mrrm_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = acpi_table_parse(ACPI_SIG_MRRM, acpi_parse_mrrm);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return add_boot_memory_ranges();
|
||||
}
|
||||
device_initcall(mrrm_init);
|
||||
@@ -31,7 +31,6 @@
|
||||
|
||||
struct pcc_data {
|
||||
struct pcc_mbox_chan *pcc_chan;
|
||||
void __iomem *pcc_comm_addr;
|
||||
struct completion done;
|
||||
struct mbox_client cl;
|
||||
struct acpi_pcc_info ctx;
|
||||
@@ -81,14 +80,6 @@ acpi_pcc_address_space_setup(acpi_handle region_handle, u32 function,
|
||||
ret = AE_SUPPORT;
|
||||
goto err_free_channel;
|
||||
}
|
||||
data->pcc_comm_addr = acpi_os_ioremap(pcc_chan->shmem_base_addr,
|
||||
pcc_chan->shmem_size);
|
||||
if (!data->pcc_comm_addr) {
|
||||
pr_err("Failed to ioremap PCC comm region mem for %d\n",
|
||||
ctx->subspace_id);
|
||||
ret = AE_NO_MEMORY;
|
||||
goto err_free_channel;
|
||||
}
|
||||
|
||||
*region_context = data;
|
||||
return AE_OK;
|
||||
@@ -113,7 +104,7 @@ acpi_pcc_address_space_handler(u32 function, acpi_physical_address addr,
|
||||
reinit_completion(&data->done);
|
||||
|
||||
/* Write to Shared Memory */
|
||||
memcpy_toio(data->pcc_comm_addr, (void *)value, data->ctx.length);
|
||||
memcpy_toio(data->pcc_chan->shmem, (void *)value, data->ctx.length);
|
||||
|
||||
ret = mbox_send_message(data->pcc_chan->mchan, NULL);
|
||||
if (ret < 0)
|
||||
@@ -134,7 +125,7 @@ acpi_pcc_address_space_handler(u32 function, acpi_physical_address addr,
|
||||
|
||||
mbox_chan_txdone(data->pcc_chan->mchan, ret);
|
||||
|
||||
memcpy_fromio(value, data->pcc_comm_addr, data->ctx.length);
|
||||
memcpy_fromio(value, data->pcc_chan->shmem, data->ctx.length);
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: acapps - common include for ACPI applications/tools
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/* Common info for tool signons */
|
||||
|
||||
#define ACPICA_NAME "Intel ACPI Component Architecture"
|
||||
#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2022 Intel Corporation"
|
||||
#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2025 Intel Corporation"
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
#define ACPI_WIDTH " (64-bit version)"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: accommon.h - Common include files for generation of ACPICA source
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: acapps - common include for ACPI applications/tools
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acdebug.h - ACPI/AML debugger
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -37,7 +37,7 @@ struct acpi_db_argument_info {
|
||||
struct acpi_db_execute_walk {
|
||||
u32 count;
|
||||
u32 max_count;
|
||||
char name_seg[ACPI_NAMESEG_SIZE + 1];
|
||||
char name_seg[ACPI_NAMESEG_SIZE + 1] ACPI_NONSTRING;
|
||||
};
|
||||
|
||||
#define PARAM_LIST(pl) pl
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acdispat.h - dispatcher (parser to interpreter interface)
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acevents.h - Event subcomponent prototypes and defines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acglobal.h - Declarations for global variables
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: achware.h -- hardware specific interfaces
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acinterp.h - Interpreter subcomponent prototypes and defines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -120,6 +120,9 @@ void
|
||||
acpi_ex_trace_point(acpi_trace_event_type type,
|
||||
u8 begin, u8 *aml, char *pathname);
|
||||
|
||||
void
|
||||
acpi_ex_trace_args(union acpi_operand_object **params, u32 count);
|
||||
|
||||
/*
|
||||
* exfield - ACPI AML (p-code) execution - field manipulation
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: aclocal.h - Internal data types used across the ACPI subsystem
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -293,7 +293,7 @@ acpi_status (*acpi_internal_method) (struct acpi_walk_state * walk_state);
|
||||
* expected_return_btypes - Allowed type(s) for the return value
|
||||
*/
|
||||
struct acpi_name_info {
|
||||
char name[ACPI_NAMESEG_SIZE] __nonstring;
|
||||
char name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
|
||||
u16 argument_list;
|
||||
u8 expected_btypes;
|
||||
};
|
||||
@@ -370,7 +370,7 @@ typedef acpi_status (*acpi_object_converter) (struct acpi_namespace_node *
|
||||
converted_object);
|
||||
|
||||
struct acpi_simple_repair_info {
|
||||
char name[ACPI_NAMESEG_SIZE] __nonstring;
|
||||
char name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
|
||||
u32 unexpected_btypes;
|
||||
u32 package_index;
|
||||
acpi_object_converter object_converter;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acmacros.h - C macros for the entire subsystem.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acnamesp.h - Namespace subcomponent prototypes and defines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acobject.h - Definition of union acpi_operand_object (Internal object only)
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acopcode.h - AML opcode information for the AML parser and interpreter
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: acparser.h - AML Parser subcomponent prototypes and defines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acpredef - Information table for ACPI predefined methods and objects
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acresrc.h - Resource Manager function prototypes
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acstruct.h - Internal structs
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: actables.h - ACPI table management
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Declarations and definitions contained herein are derived
|
||||
* directly from the ACPI specification.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: amlresrc.h - AML resource descriptors
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -504,10 +504,6 @@ struct aml_resource_pin_group_config {
|
||||
|
||||
#define AML_RESOURCE_PIN_GROUP_CONFIG_REVISION 1 /* ACPI 6.2 */
|
||||
|
||||
/* restore default alignment */
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/* Union of all resource descriptors, so we can allocate the worst case */
|
||||
|
||||
union aml_resource {
|
||||
@@ -562,6 +558,10 @@ union aml_resource {
|
||||
u8 byte_item;
|
||||
};
|
||||
|
||||
/* restore default alignment */
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/* Interfaces used by both the disassembler and compiler */
|
||||
|
||||
void
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dbhistry - debugger HISTORY command
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Module Name: dsargs - Support for execution of dynamic arguments for static
|
||||
* objects (regions, fields, buffer fields, etc.)
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Module Name: dscontrol - Support for execution control opcodes -
|
||||
* if/else/while/return
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dsdebug - Parser/Interpreter interface - debugging
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dsfield - Dispatcher field routines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dsinit - Object initialization namespace walk
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dsmethod - Parser/Interpreter interface - control method parsing
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -188,6 +188,7 @@ acpi_ds_method_data_init_args(union acpi_operand_object **params,
|
||||
|
||||
index++;
|
||||
}
|
||||
acpi_ex_trace_args(params, index);
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%u args passed to method\n", index));
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dsobject - Dispatcher object management routines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dsopcode - Dispatcher support for regions and fields
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dspkginit - Completion of deferred package initialization
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -668,6 +668,8 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *arguments[ACPI_OBJ_NUM_OPERANDS];
|
||||
u32 arg_count = 0;
|
||||
u32 index = walk_state->num_operands;
|
||||
u32 prev_num_operands = walk_state->num_operands;
|
||||
u32 new_num_operands;
|
||||
u32 i;
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR(ds_create_operands, first_arg);
|
||||
@@ -696,6 +698,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
|
||||
|
||||
/* Create the interpreter arguments, in reverse order */
|
||||
|
||||
new_num_operands = index;
|
||||
index--;
|
||||
for (i = 0; i < arg_count; i++) {
|
||||
arg = arguments[index];
|
||||
@@ -720,7 +723,11 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
|
||||
* pop everything off of the operand stack and delete those
|
||||
* objects
|
||||
*/
|
||||
acpi_ds_obj_stack_pop_and_delete(arg_count, walk_state);
|
||||
walk_state->num_operands = (u8)(i);
|
||||
acpi_ds_obj_stack_pop_and_delete(new_num_operands, walk_state);
|
||||
|
||||
/* Restore operand count */
|
||||
walk_state->num_operands = (u8)(prev_num_operands);
|
||||
|
||||
ACPI_EXCEPTION((AE_INFO, status, "While creating Arg %u", index));
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Module Name: dswexec - Dispatcher method execution callbacks;
|
||||
* dispatch to interpreter.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dswload - Dispatcher first pass namespace load callbacks
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dswload2 - Dispatcher second pass namespace load callbacks
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dswscope - Scope stack manipulation
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: dswstate - Dispatcher parse tree walk management routines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evevent - Fixed Event handling and dispatch
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evglock - Global Lock support
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evgpe - General Purpose Event handling and dispatch
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evgpeblk - GPE block creation and initialization.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evgpeinit - System GPE initialization and update
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evgpeutil - GPE utilities
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evhandler - Support for Address Space handlers
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evmisc - Miscellaneous event manager support functions
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evregion - Operation Region support
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evrgnini- ACPI address_space (op_region) init
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evxface - External interfaces for ACPI events
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evxfevnt - External Interfaces, ACPI event disable/enable
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: evxfgpe - External Interfaces for General Purpose Events (GPEs)
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Module Name: evxfregn - External Interfaces, ACPI Operation Regions and
|
||||
* Address Spaces.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exconcat - Concatenate-type AML operators
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes)
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exconvrt - Object conversion routines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -226,8 +226,8 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
|
||||
/* Copy the string to the buffer */
|
||||
|
||||
new_buf = return_desc->buffer.pointer;
|
||||
strncpy((char *)new_buf, (char *)obj_desc->string.pointer,
|
||||
obj_desc->string.length);
|
||||
memcpy((char *)new_buf, (char *)obj_desc->string.pointer,
|
||||
obj_desc->string.length);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: excreate - Named object creation
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exdebug - Support for stores to the AML Debug Object
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exdump - Interpreter debug output routines
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exfield - AML execution - field_unit read/write
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exfldio - Aml Field I/O
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exmutex - ASL Mutex Acquire/Release functions
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exnames - interpreter/scanner name load/execute
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exoparg1 - AML execution - opcodes with 1 argument
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exoparg2 - AML execution - opcodes with 2 arguments
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exoparg3 - AML execution - opcodes with 3 arguments
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exoparg6 - AML execution - opcodes with 6 arguments
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exprep - ACPI AML field prep utilities
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exregion - ACPI default op_region (address space) handlers
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exresnte - AML Interpreter object resolution
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exresolv - AML Interpreter object resolution
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exresop - AML Interpreter operand/object resolution
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exserial - field_unit support for serial address spaces
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -201,6 +201,12 @@ acpi_ex_read_serial_bus(union acpi_operand_object *obj_desc,
|
||||
function = ACPI_READ;
|
||||
break;
|
||||
|
||||
case ACPI_ADR_SPACE_FIXED_HARDWARE:
|
||||
|
||||
buffer_length = ACPI_FFH_INPUT_BUFFER_SIZE;
|
||||
function = ACPI_READ;
|
||||
break;
|
||||
|
||||
default:
|
||||
return_ACPI_STATUS(AE_AML_INVALID_SPACE_ID);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exstore - AML Interpreter object store support
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Module Name: exstoren - AML Interpreter object store support,
|
||||
* Store to Node (namespace object)
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exstorob - AML object store support, store to object
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exsystem - Interface to OS services
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: extrace - Support for interpreter execution tracing
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -147,6 +147,57 @@ acpi_ex_trace_point(acpi_trace_event_type type,
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ex_trace_args
|
||||
*
|
||||
* PARAMETERS: params - AML method arguments
|
||||
* count - numer of method arguments
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Trace any arguments
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
acpi_ex_trace_args(union acpi_operand_object **params, u32 count)
|
||||
{
|
||||
u32 i;
|
||||
|
||||
ACPI_FUNCTION_NAME(ex_trace_args);
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
union acpi_operand_object *obj_desc = params[i];
|
||||
|
||||
if (!i) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT, " "));
|
||||
}
|
||||
|
||||
switch (obj_desc->common.type) {
|
||||
case ACPI_TYPE_INTEGER:
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "%llx", obj_desc->integer.value));
|
||||
break;
|
||||
case ACPI_TYPE_STRING:
|
||||
if (!obj_desc->string.length) {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "NULL"));
|
||||
continue;
|
||||
}
|
||||
if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_TRACE_POINT, _COMPONENT))
|
||||
acpi_ut_print_string(obj_desc->string.pointer, ACPI_UINT8_MAX);
|
||||
break;
|
||||
default:
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "Unknown"));
|
||||
break;
|
||||
}
|
||||
if (i+1 == count) {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "\n"));
|
||||
} else {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, ", "));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ex_start_trace_method
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exutils - interpreter/scanner utilities
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Name: hwesleep.c - ACPI Hardware Sleep/Wake Support functions for the
|
||||
* extended FADT-V5 sleep registers.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: hwgpe - Low level GPE enable/disable/clear functions
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Name: hwsleep.c - ACPI Hardware Sleep/Wake Support functions for the
|
||||
* original/legacy sleep/PM registers.
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: hwtimer.c - ACPI Power Management Timer Interface
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: hwvalid - I/O request validation
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: hwxface - Public ACPICA hardware interfaces
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Name: hwxfsleep.c - ACPI Hardware Sleep/Wake External Interfaces
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: nsarguments - Validation of args for ACPI predefined methods
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Module Name: nsconvert - Object conversions for objects returned by
|
||||
* predefined methods
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: nsdump - table dumping routines for debug
|
||||
*
|
||||
* Copyright (C) 2000 - 2023, Intel Corp.
|
||||
* Copyright (C) 2000 - 2025, Intel Corp.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user