7.3. Device Power Management Objects

For a device that is power-managed using ACPI, a Definition Block contains one or more of the objects found in the table below. Power management of a device is done using Power Resource control.

Power Resources are resources that could be shared amongst multiple devices. The operating software will automatically handle control of these devices by determining which particular Power Resources need to be in the ON state at any given time. This determination is made by considering the state of all devices connected to a Power Resource. At all times, OSPM ensures that any Power Resources no longer referenced by any device in the system is in the OFF state.

For systems that do not control device power states through power resource management (i.e. _PSx controls power transitions), but whose devices support multiple D-states, more information is required by the OS to determine the S-state to D-state mapping for the device. The ACPI firmware can give this information to OSPM by way of the _SxD methods. These methods tell OSPM for S-state “x”, the shallowest D-state supported by the device is “y.” OSPM is allowed to pick a deeper D-state for a given S-state, but OSPM is not allowed to go shallower than the given D-state.

Additional rules that apply to device power management objects are:

  • A device cannot be in a deeper D-state than its parent device.

  • If there exists an ACPI Object to set a device to D0 (either through _PSx or _PRx objects), then the corresponding object to set the device into a deeper Dx must also be declared, and vice versa.

  • If any ACPI Object that controls power (_PSx or _PRx, where x =0, 1, 2, or 3) exists, then methods to set the device into D0 and D3 device states (at least) must be present.

  • If a mixture of _PSx and _PRx methods is declared for the device, then the device states supported through _PSx methods must be identical to the device states supported through _PRx methods.

When controlling power to devices which must wake the system during a system sleeping state:

  • The device must declare its ability to wake the system by declaring either the _PRW or _PSW object.

  • After OSPM has called _PTS, it must call the device’s _PSW to enable wake.

  • OSPM must transition a device into a D-state which is deeper than or equal to that specified by the device’s _SxD object (if present) to enable entry into Sx, but shallower than or equal to that specified by the device’s _SxW object so that it can still wake the system.

  • OSPM may transition the system to the specified sleep state.

Table 7.3 Device Power Management Child Objects

Object

Description

_DSW

Control method that enables or disables the device’s wake function for device-only wake.

_PS0

Control method that puts the device in the D0 device state (device fully on).

_PS1

Control method that puts the device in the D1 device state.

_PS2

Control method that puts the device in the D2 device state.

_PS3

Control method that puts the device in the D3 device state (device off).

_PSC

Object that evaluates to the device’s current power state.

_PR0

Object that evaluates to the device’s power requirements in the D0 device state (device fully on).

_PR1

Object that evaluates to the device’s power requirements in the D1 device state. The only devices that supply this level are those that can achieve the defined D1 device state according to the related device class.

_PR2

Object that evaluates to the device’s power requirements in the D2 device state. The only devices that supply this level are those that can achieve the defined D2 device state according to the related device class.

_PR3

Object that evaluates to the device’s power requirements in the D3hot device state.

_PRW

Object that evaluates to the device’s power requirements in order to wake the system from a system sleeping state.

_PSW

Control method that enables or disables the device’s wake function.

_IRC

Object that signifies the device has a significant inrush current draw.

_S1D

Shallowest D-state supported by the device in the S1 state

_S2D

Shallowest D-state supported by the device in the S2 state

_S3D

Shallowest D-state supported by the device in the S3 state

_S4D

Shallowest D-state supported by the device in the S4 state

_S0W

Deepest D-state supported by the device in the S0 state which can wake the device

_S1W

Deepest D-state supported by the device in the S1 state which can wake the system.

_S2W

Deepest D-state supported by the device in the S2 state which can wake the system.

_S3W

Deepest D-state supported by the device in the S3 state which can wake the system.

_S4W

Deepest D-state supported by the device in the S4 state which can wake the system.

_RST

Control method that executes a function level reset of the device.

_PRR

Object that evaluates to the device’s platform level reset requirements.

7.3.1. _DSW (Device Sleep Wake)

In addition to _PRW, this control method can be used to enable or disable the device’s ability to wake a sleeping system. This control method can only access Operation Regions that are either always available while in a system working state or that are available when the Power Resources referenced by the _PRW object are all ON. For example, do not put a power plane control for a bus controller within configuration space located behind the bus. The method should enable the device only for the last system state/device state combination passed in by OSPM. OSPM will only pass in combinations allowed by the _SxD and _SxW objects.

The arguments provided to _DSW indicate the eventual Device State the device will be transitioned to and the eventual system state that the system will be transitioned to. The target system state is allowed to be the system working state (S0). The _DSW method will be run before the device is placed in the designated state and also before the system is placed in the designated system state.

Compatibility Note: The _PSW method was deprecated in ACPI 3.0. The _DSW method should be used instead. OSPM will only use the _PSW method if OSPM does not support _DSW or if the _DSW method is not present.

Arguments (3):

  • Arg0 - An Integer that contains the device wake capability control

    • 0 - Disable the device’s wake capabilities

    • 1 - Enable the device’s wake capabilities

  • Arg1 - An Integer that contains the target system state (0-4)

  • Arg2 - An Integer that contains the target device state

    • 0 - The device will remain in state D0

    • 1 - The device will be placed in either state D0 or D1

    • 2 - The device will be placed in either state D0, D1, or D2

    • 3 - The device will be placed in either state D0, D1, D2, or D3

Return Value:

None

7.3.2. _PS0 (Power State 0)

This Control Method is used to put the specific device into its D0 state. This Control Method can only access Operation Regions that are either always available while in a system working state or that are available when the Power Resources references by the _PR0 object are all ON.

Arguments:

None

Return Value:

None

7.3.3. _PS1 (Power State 1)

This control method is used to put the specific device into its D1 state. This control method can only access Operation Regions that are either always available while in the system working state (S0) or that are available when the Power Resources referenced by the _PR0 object are all ON.

Arguments:

None

Return Value:

None

7.3.4. _PS2 (Power State 2)

This control method is used to put the specific device into its D2 state. This control method can only access Operation Regions that are either always available while in the system working state (S0) or that are available when the Power Resources referenced by the _PR0 and _PR1 objects are all ON.

Arguments:

None

Return Value:

None

7.3.5. _PS3 (Power State 3)

This control method is used to put the specific device into its D3 state. This control method can only access Operation Regions that are either always available while in the system working state (S0) or that are available when the Power Resources referenced by the _PR0, _PR1 and PR2 objects are all ON.

Arguments:

None

Return Value:

None

7.3.6. _PSC (Power State Current)

This control method evaluates to the current device state. This control method is not required if the device state can be inferred by the Power Resource settings. This would be the case when the device does not require a _PS0, _PS1, _PS2, or _PS3 control method.

Arguments:

None

Return Value:

An Integer that contains a code for the current device state. The device state codes are shown in :the following table.

Table 7.4 PSC Device State Codes

0

D0

1

D1

2

D2

3

D3

7.3.7. _PSE (Power State for Enumeration)

This control method is used to put a device into a powered mode appropriate for enumeration by its parent bus. This control method can only access Operation Regions that are either always available while in a system working state or that are available when the Power Resources referenced by the _PRE object are all ON.

Arguments:

Arg1 - An Integer indicating whether Enumeration power has been turned ON or will be turned OFF:

  • 0 - OFF

  • 1 - ON

Return Value:

None

7.3.8. _PR0 (Power Resources for D0)

This object evaluates to a list of power resources upon which this device is dependent when it is operating in the D0 state. For OSPM to put the device into the D0 device state, the following must occur in this order:

  1. All Power Resources referenced by elements 1 through N must be in the ON state.

  2. All Power Resources no longer referenced by any device in the system must be in the OFF state.

  3. If present, the _PS0 control method is executed to set the device into the D0 device state.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to power resources.

This object returns a package as defined below:

Table 7.5 Power Resource Requirements Package

Element

Object

Description

1

object reference

Reference to required Power Resource #0

N

object reference

Reference to required Power Resource #N

_PR0 must return the same data each time it is evaluated. All power resources referenced must exist in the namespace.

7.3.9. _PR1 (Power Resources for D1)

This object evaluates to a list of power resources upon which this device is dependent when it is in the D1 state. For OSPM to transition the device from the D0 state into the D1 state, the following must occur, in order:

  1. If present, the _PS1 control method is executed to set the device into the D1 device state.

  2. All Power Resources referenced by elements 1 through N must be in the ON state.

  3. All Power Resources no longer referenced by any device in the system must be in the OFF state.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to power resources.

This object evaluates to a package as defined in Power Resource Requirements Package.

_PR1 must return the same data each time it is evaluated. All power resources referenced must exist in the namespace.

7.3.10. _PR2 (Power Resources for D2)

This object evaluates to a list of power resources upon which this device is dependent when it is in the D2 state. For OSPM to transition the device into the D2 state, the following must occur, in order:

  1. If present, the _PS2 control method is executed to set the device into the D2 device state.

  2. All Power Resources referenced by elements 1 through N must be in the ON state.

  3. All Power Resources no longer referenced by any device in the system must be in the OFF state.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to power resources.

_PR2 must return the same data each time it is evaluated. All power resources referenced must exist in the namespace.

7.3.11. _PR3 (Power Resources for D3hot)

This object evaluates to a list of power resources upon which this device is dependent when it is in the D3hot state. For OSPM to transition the device into the D3hot state, the following must occur, in order:

  1. If present, the _PS3 control method is executed to set the device into the D3hot device state.

  2. All Power Resources referenced by elements 1 through N must be in the ON state.

  3. All Power Resources no longer referenced by any device in the system must be in the OFF state.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to power resources.

_PR3 must return the same data each time it is evaluated. All power resources referenced must exist in the namespace.

Interaction between _PR3 and entry to D3/D3hot (only applicable if platform and OSPM have performed the necessary handshake via _OSC):

  • Platform/drivers must assume that the device will have power completely removed when the device is place into “D3” via _PS3

  • It is up to OSPM to determine whether to use D3 or D3hot. If there is a _PR3 for the device, it is up to OSPM to decide whether to keep those power resources on or off after executing _PS3. The decision may be based on other factors (e.g., being armed for wake).

7.3.12. _PRE (Power Resources for Enumeration)

This object appears under a device and evaluates to a list of power resources that are required for enumeration of the device by its parent bus. For the bus driver to enumerate any devices while they are in the D3Cold device state, OSPM must ensure that the following occur:

  1. All Power Resources referenced by elements 1 through N must be in the ON state.

  2. If present, the _PSE control method is executed to perform any actions on the device to make it accessible for enumeration.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to power resources.

_PRE must return the same data each time it is evaluated. All power resources referenced must exist in the namespace.

7.3.13. _PRW (Power Resources for Wake)

This object evaluates to a list of power resources upon which this device depends for wake. It also contains additional information needed for wake, including wake events and sleep or soft-off state information. _PRW is only required for devices that have the ability to wake the system from a system sleeping state.

Four types of general purpose events are supported:

  • GPEs that are defined by a GPE block described within the FADT.

  • GPEs that are defined by a GPE Block Device.

  • GPIO-signaled events that are defined by _AEI object of the GPIO controller device

  • Interrupt-signaled events that are defined by _CRS object of the Generic Event Device (GED)

The four types of events are differentiated by the type of the EventInfo object in the returned package. For FADT-based GPEs, EventInfo is an Integer containing a bit index. For Block Device-based GPEs, EventInfo is a Package containing a Reference to the parent block device and an Integer containing a bit index. For GPIO-signaled events, EventInfo is a Package containing a Reference to the GPIO controller device and an Integer containing the index of the event in the _AEI object (starting from zero). For Interrupt-signaled events, EventInfo is a Package containing a Reference to the GED and an Integer containing the index of the event in the _CRS object (starting from zero).

For HW-Reduced ACPI platforms that do not support wake on GPIO-signaled or Interrupt-signaled events, the EventInfo structure is an Integer with value of zero, and is ignored by OSPM. Therefore, _PRW is only required on such platforms if power resources for wakeup must be managed by OSPM (e.g. the _PRW provides a list of Power Resources). Instead, for a device to wake the system, its interrupt must be wake-capable and enabled by the driver. See Interrupt-based Wake Events.

Arguments:

None

Return Value:

A variable-length Package containing wake information and a list of References to power resources.

Return Value Information

Package {
   EventInfo                      // Integer or Package
   DeepestSleepState              // Integer
   PowerResource [0]              // Reference
   . . .
   PowerResource [n]              // Reference
}

If EventInfo is a Package, it contains event block device information as described below:

Package {
   DeviceName                      // Reference
   Index                           // Integer
}

EventInfo may be either an Integer or a Package, depending on the event type:

  • If it is an Integer, then it contains the bit index of the wake event within the FADT-based GPE enable register.

  • If it is a Package, then the package contains event info for an event within either a GPE block device, GPIO controller device, or a GED. It contains a Reference to the device and an Integer . If EventInfo references a GPE block device, the integer contains the bit index of the wake GPE within the Block Device-based GPE enable register. If the EventInfo references a GPIO controller device, the integer contains the zero-based index of the event within the _AEI object. If the EventInfo references a GED, the integer contains the zero-based index of the event within the _CRS object.

DeepestSleepState is an Integer that contains the deepest power system sleeping state that can be entered while still providing wake functionality.

PowerResource 0-n are References to required power resource objects.

Additional Information

For OSPM to have the defined wake capability properly enabled for the device, the following must occur:

  1. All Power Resources referenced by elements 2 through N are put into the ON state.

a. If present, the _DSW control method is executed to set the device-specific registers to enable the wake functionality of the device.

b. The D-state being entered must be deeper than or equal to that specified in the _SxD state but shallower than or equal to that specified in the _SxW state.

Then, if the system enters a sleeping state OSPM must ensure:

  1. Interrupts are disabled.

  2. The sleeping state being entered must be less than or equal to the power state declared in element 1 of the _PRW object.

  3. The proper general-purpose register bits are enabled.

The system sleeping state specified must be a state that the system supports (in other words, a corresponding \_Sx object must exist in the namespace).

_PRW must return the same data each time it is evaluated. All power resources referenced must exist in the namespace.

7.3.14. _PSW (Power State Wake)

In addition to the _PRW control method, this control method can be used to enable or disable the device’s ability to wake a sleeping system. This control method can only access Operation Regions that are either always available while in a system working state or that are available when the Power Resources references by the _PRW object are all ON. For example, do not put a power plane control for a bus controller within configuration space located behind the bus.

Note

Regarding compatability–The _PSW method was deprecated in ACPI 3.0. OSPM must use _DSW if it is present. Otherwise, it may use _PSW.

Arguments: (1)

Arg0 - An Integer containing a wake capability control:

0 - Disable the device’s wake capabilities

1 - Enable the device’s wake capabilities

Return Value

None

7.3.15. _IRC (In Rush Current)

Indicates that this device can cause a significant in-rush current when transitioning to state D0.

Arguments:

None

Return Value:

None

The presence of this object signifies that transitioning the device to its D0 state causes a system-significant in-rush current load. In general, such operations need to be serialized such that multiple operations are not attempted concurrently. Within ACPI, this type of serialization can be accomplished with the ResourceOrder parameter of the device’s Power Resources; however, this does not serialize ACPI-controlled devices with non-ACPI controlled devices. _IRC is used to signify this fact outside of OSPM to OSPM such that OSPM can serialize all devices in the system that have in-rush current serialization requirements.

OSPM can only transition one device containing an _IRC object within its device scope to the D0 state at a time.

It is important to note that OSPM does not evaluate the _IRC object. It has no defined input arguments nor does it return any value. OSPM derives meaning simply from the existence of the _IRC object.

7.3.16. _S1D (S1 Device State)

This object evaluates to an integer that conveys to OSPM the shallowest D-state supported by this device in the S1 system sleeping state. _S1D must return the same integer each time it is evaluated. This value overrides an S-state to D-state mapping OSPM may ascertain from the device’s power resource declarations. See PSC Device State Codes for valid return values.

Arguments:

None

Return Value:

An Integer containing the shallowest D-state supported in state S2

If the device can wake the system from the S1 system sleeping state (see _PRW) then the device must support wake in the D-state returned by this object. However, OSPM cannot assume wake from the S1 system sleeping state is supported in any deeper D-state unless specified by a corresponding _S1W object. The table below provides a mapping from Desired Actions to Resultant D-state entered based on the values returned from the _S1D, _PRW, and _S1W objects if they exist . (D/C means Don’t Care - evaluation is irrelevant, and N/A means Non Applicable - object does not exist).

Table 7.6 S1 Action / Result Table

Desired Action

_S1D

_PRW

_S1W

Resultant D-state

Enter S1

D/C

D/C

D/C

OSPM decides

Enter S1, No Wake

2

D/C

D/C

Enter D2 or D3

Enter S1, Wake

2

1

N/A

Enter D2

Enter S1, Wake

2

1

3

Enter D2 or D3

Enter S1, Wake

N/A

1

2

Enter D0,D1 or D2

7.3.17. _S2D (S2 Device State)

This object evaluates to an integer that conveys to OSPM the shallowest D-state supported by this device in the S2 system sleeping state. _S2D must return the same integer each time it is evaluated. This value overrides an S-state to D-state mapping OSPM may ascertain from the device’s power resource declarations. See PSC Device State Codes for valid return values.

Arguments:

None

Return Value:

An Integer containing the shallowest D-state supported in state S2

If the device can wake the system from the S2 system sleeping state (see _PRW) then the device must support wake in the D-state returned by this object. However, OSPM cannot assume wake from the S2 system sleeping state is supported in any deeper D-state unless specified by a corresponding _S2W object. The table below provides a mapping from Desired Actions to Resultant D-state entered based on the values returned from the _S2D, _PRW, and _S2W objects if they exist . (D/C means Don’t Care - evaluation is irrelevant, and N/A means Non Applicable - object does not exist).

Table 7.7 S2 Action / Result Table

Desired Action

_S2D

_PRW

_S2W

Resultant D-state

Enter S2

D/C

D/C

D/C

OSPM decides

Enter S2, No Wake

2

D/C

D/C

Enter D2 or D3

Enter S2, Wake

2

2

N/A

Enter D2

Enter S2, Wake

2

2

3

Enter D2 or D3

Enter S2, Wake

N/A

2

2

Enter D0,D1 or D2

7.3.18. _S3D (S3 Device State)

This object evaluates to an integer that conveys to OSPM the shallowest D-state supported by this device in the S3 system sleeping state. _S3D must return the same integer each time it is evaluated. This value overrides an S-state to D-state mapping OSPM may ascertain from the device’s power resource declarations. See PSC Device State Codes for valid return values.

Arguments:

None

Return Value:

An Integer containing the shallowest D-state supported in state S3

If the device can wake the system from the S3 system sleeping state (see _PRW) then the device must support wake in the D-state returned by this object. However, OSPM cannot assume wake from the S3 system sleeping state is supported in any deeper D-state unless specified by a corresponding _S3W object. The table below provides a mapping from Desired Actions to Resultant D-state entered based on the values returned from the _S3D, _PRW, and _S3W objects if they exist . (D/C means Don’t Care - evaluation is irrelevant, and N/A means Non Applicable - object does not exist).

Table 7.8 S3 Action / Result Table

Desired Action

_S3D

_PRW

_S3W

Resultant D-state

Enter S3

N/A

D/C

N/A

OSPM decides

Enter S3, No Wake

2

D/C

D/C

Enter D2 or D3

Enter S3, Wake

2

3

N/A

Enter D2

Enter S3, Wake

2

3

3

Enter D2 or D3

Enter S3, Wake

N/A

3

2

Enter D0, D1, or D2

7.3.19. _S4D (S4 Device State)

This object evaluates to an integer that conveys to OSPM the shallowest D-state supported by this device in the S4 system sleeping state. _S4D must return the same integer each time it is evaluated. This value overrides an S-state to D-state mapping OSPM may ascertain from the device’s power resource declarations. See Table 7.9 for valid return values.

Arguments:

None

Return Value:

An Integer containing the shallowest D-state supported in state S4.

If the device can wake the system from the S4 system sleeping state (see _PRW) then the device must support wake in the D-state returned by this object. However, OSPM cannot assume wake from the S4 system sleeping state is supported in any deeper D-state unless specified by a corresponding _S4W object. The table below provides a mapping from Desired Actions to Resultant D-state entered based on the values returned from the _S4D, _PRW, and _S4W objects if they exist. (D/C means Don’t Care - evaluation is irrelevant, and N/A means Non Applicable - object does not exist).

Table 7.9 S4 Action / Result Table

Desired Action

_S4D

_PRW

_S4W

Resultant D-state

Enter S3

N/A

D/C

N/A

OSPM decides

Enter S4, No Wake

2

D/C

D/C

Enter D2 or D3

Enter S4, Wake

2

4

N/A

Enter D2

Enter S4, Wake

2

4

3

Enter D2 or D3

Enter S4, Wake

N/A

4

2

Enter D0, D1, or D2

7.3.20. _S0W (S0 Device Wake State)

This object evaluates to an integer that conveys to OSPM the deepest D-state supported by this device in the S0 system sleeping state where the device can wake itself.

Arguments:

None

Return Value:

An Integer containing the deepest D-state that supports wake in state S0. If OSPM has not indicated that it supports _PR3 through the OSPM Platform-Wide Capabilities (see Platform-Wide OSPM Capabilities), then the value “3” corresponds to D3. If it has indicated _PR3 support, the value “3” represents D3hot and the value “4” represents D3cold.

_S0W must return the same integer each time it is evaluated. This value allows OSPM to choose the deepest power D-state and still achieve wake functionality. If object evaluates to zero, then the device cannot wake itself from any deeper D state.

7.3.21. _S1W (S1 Device Wake State)

This object evaluates to an integer that conveys to OSPM the deepest D-state supported by this device in the S1 system sleeping state that can wake the system.

Arguments:

None

Return Value:

An Integer containing the deepest D-state that supports wake in state S1. If OSPM has not indicated that it supports _PR3 through the OSPM Platform-Wide Capabilities (see Platform-Wide OSPM Capabilities), then the value “3” corresponds to D3. If it has indicated _PR3 support, the value “3” represents D3hot and the value “4” represents D3cold.

_S1W must return the same integer each time it is evaluated. This value allows OSPM to choose a deeper S-state to D-state mapping than specified by _S1D. This value must always be greater than or equal to _S1D, if _S1D is present.

7.3.22. _S2W (S2 Device Wake State)

This object evaluates to an integer that conveys to OSPM the deepest D-state supported by this device in the S2 system sleeping state that can wake the system.

Arguments:

None

Return Value:

An Integer containing the deepest D-state that supports wake in state S2. If OSPM has not indicated that it supports _PR3 through the OSPM Platform-Wide Capabilities (see Platform-Wide OSPM Capabilities), then the value “3” corresponds to D3. If it has indicated _PR3 support, the value “3” represents D3hot and the value “4” represents D3cold.

_S2W must return the same integer each time it is evaluated. This value allows OSPM to choose a deeper S-state to D-state mapping than specified by _S2D. This value must always be greater than or equal to _S2D, if _S2D is present.

7.3.23. _S3W (S3 Device Wake State)

This object evaluates to an integer that conveys to OSPM the deepest D-state supported by this device in the S3 system sleeping state that can wake the system.

Arguments:

None

Return Value:

An Integer containing the deepest D-state that supports wake in state S3. If OSPM has not indicated that it supports _PR3 through the OSPM Platform-Wide Capabilities (see Platform-Wide OSPM Capabilities), then the value “3” corresponds to D3. If it has indicated _PR3 support, the value “3” represents D3hot and the value “4” represents D3cold.

_S3W must return the same integer each time it is evaluated. This value allows OSPM to choose a deeper S-state to D-state mapping than specified by _S3D. This value must always be greater than or equal to _S3D, if _S3D is present.

7.3.24. _S4W (S4 Device Wake State)

This object evaluates to an integer that conveys to OSPM the deepest D-state supported by this device in the S4 system sleeping state that can wake the system.

Arguments:

None

Return Value:

An Integer containing the deepest D-state that supports wake in state S4. If OSPM has not indicated that it supports _PR3 through the OSPM Platform-Wide Capabilities (see Platform-Wide OSPM Capabilities), then the value “3” corresponds to D3. If it has indicated _PR3 support, the value “3” represents D3hot and the value “4” represents D3cold.

_S4W must return the same integer each time it is evaluated. This value allows OSPM to choose a deeper S-state to D-state mapping than specified by _S4D. This value must always be greater than or equal to _S4D, if _S4D is present.

7.3.25. _RST (Device Reset)

This object executes a reset on the associated device or devices. If included in a device context, the reset must not affect any other ACPI-described devices; if included in a power resource for reset (_PRR), the reset must affect all ACPI-described devices that reference it.

When this object is described in a device context, it executes a function level reset that only affects the device it is associated with; neither parent nor children should be affected by the execution of this reset. Executing this must only result in this device resetting without the device appearing as if it has been removed from the bus altogether, to prevent OSPM re-enumeration of devices on hot-pluggable buses (e.g. USB).

If a device reset is supported by the platform, but cannot meet the function level and bus requirement, the device should instead implement a _PRR (_PRR (Power Resource for Reset)).

Devices can define both an _RST and a _PRR if supported by the hardware.

Arguments:

None

Return Value:

None

7.3.26. _PRR (Power Resource for Reset)

This object evaluates to a single reference to a power resource. The power resource that this references must implement a _RST method (_RST (Device Reset)).

Arguments:

None

Return Value:

A single element Package containing a Reference to the power reset resource.