Commit db0e4d54 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branches 'acpi-resource', 'acpi-pm', 'acpi-platform-profile' and 'acpi-docs'

Merge an ACPI resources management update, ACPI power management
updates, an ACPI platform profile driver fix and an ACPI documentation
update related to device properties for 6.16-rc1:

 - 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).

* acpi-resource:
  ACPI: resource: fix a typo for MECHREVO in irq1_edge_low_force_override[]

* acpi-pm:
  pinctrl: amd: Fix hibernation support with CONFIG_SUSPEND unset
  pinctrl: amd: Fix use of undeclared identifier 'pinctrl_amd_s2idle_dev_ops'
  pinctrl: amd: Add an LPS0 check() callback
  ACPI: Add missing prototype for non CONFIG_SUSPEND/CONFIG_X86 case

* acpi-platform-profile:
  ACPI: platform_profile: Avoid initializing on non-ACPI platforms

* acpi-docs:
  Documentation: ACPI: Use all-string data node references
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -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" }
		    },
		}
	    })
+4 −7
Original line number Diff line number Diff line
@@ -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" },
		}
	    })
	}
+1 −6
Original line number Diff line number Diff line
@@ -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" },
				}
			}
		})
+3 −0
Original line number Diff line number Diff line
@@ -688,6 +688,9 @@ static int __init platform_profile_init(void)
{
	int err;

	if (acpi_disabled)
		return -EOPNOTSUPP;

	err = class_register(&platform_profile_class);
	if (err)
		return err;
+1 −1
Original line number Diff line number Diff line
@@ -534,7 +534,7 @@ static const struct dmi_system_id irq1_level_low_skip_override[] = {
 */
static const struct dmi_system_id irq1_edge_low_force_override[] = {
	{
		/* MECHREV Jiaolong17KS Series GM7XG0M */
		/* MECHREVO Jiaolong17KS Series GM7XG0M */
		.matches = {
			DMI_MATCH(DMI_BOARD_NAME, "GM7XG0M"),
		},
Loading