Skip to content

Latest commit

 

History

History
57 lines (42 loc) · 1.72 KB

opal-pci-set-power-state-121.rst

File metadata and controls

57 lines (42 loc) · 1.72 KB

OPAL_PCI_SET_POWER_STATE

#define OPAL_PCI_SET_POWER_STATE             121

int64_t opal_pci_set_power_state(uint64_t async_token, uint64_t id, uint64_t data);

Set PCI slot power state

Parameters

uint64_t async_token
Token of asynchronous message to be sent on completion of OPAL_PCI_SLOT_POWER_{OFF, ON}. It is ignored when @data is OPAL_PCI_SLOT_{OFFLINE, ONLINE}.
uint64_t id
PCI slot ID
uint64_t data
memory buffer pointer for the power state which can be one of OPAL_PCI_SLOT_POWER_{OFF, ON, OFFLINE, ONLINE}.

Calling

Set PCI slot's power state. The power state is stored in buffer pointed by @data. The typical use is to hot add or remove adapters behind the indicated PCI slot (by @id) in PCI hotplug path.

User will receive an asychronous message after calling the API. The message contains the API completion status: event (Power off or on), device node's phandle identifying the PCI slot, errcode (e.g. :ref:`OPAL_SUCCESS`). The API returns :ref:`OPAL_ASYNC_COMPLETION` for the case.

The states OPAL_PCI_SLOT_OFFLINE and OPAL_PCI_SLOT_ONLINE are used for removing or adding devices behind the slot. The device nodes in the device tree are removed or added accordingly, without actually changing the slot's power state. The API call will return OPAL_SUCCESS immediately and no further asynchronous message will be sent.

Return Codes

:ref:`OPAL_SUCCESS`
PCI hotplug on the slot is completed successfully
:ref:`OPAL_ASYNC_COMPLETION`
PCI hotplug needs further message to confirm
:ref:`OPAL_PARAMETER`
The indicated PCI slot isn't found
:ref:`OPAL_UNSUPPORTED`
Setting power state not supported on the PCI slot