89 lines
2.1 KiB
ReStructuredText
89 lines
2.1 KiB
ReStructuredText
.. _opal-psr:
|
|
|
|
======================
|
|
OPAL Power Shift Ratio
|
|
======================
|
|
|
|
Sometimes power management firmware needs to throttle power availability
|
|
to system components in order to keep within power cap or thermal limits.
|
|
It's possible to set a preference as to what trade-offs power management
|
|
firmware will make. For example, certain workloads may heavily prefer
|
|
throttling CPU over GPUs or vice-versa.
|
|
|
|
.. _OPAL_GET_POWER_SHIFT_RATIO:
|
|
|
|
OPAL_GET_POWER_SHIFT_RATIO
|
|
==========================
|
|
OPAL call to read the power-shifting-ratio using a handle to identify
|
|
the type (e.g CPU vs. GPU, CPU vs. MEM) which is exported via
|
|
device-tree.
|
|
|
|
The call can be asynchronus, where the token parameter is used to wait
|
|
for the completion.
|
|
|
|
Parameters
|
|
----------
|
|
|
|
=== =======
|
|
=== =======
|
|
u32 handle
|
|
int token
|
|
u32 \*ratio
|
|
=== =======
|
|
|
|
Returns
|
|
-------
|
|
|
|
:ref:`OPAL_SUCCESS`
|
|
Success
|
|
:ref:`OPAL_PARAMETER`
|
|
Invalid ratio pointer
|
|
:ref:`OPAL_UNSUPPORTED`
|
|
No support for reading psr
|
|
:ref:`OPAL_HARDWARE`
|
|
Unable to procced due to the current hardware state
|
|
:ref:`OPAL_ASYNC_COMPLETION`
|
|
Request was sent and an async completion message will be sent with
|
|
token and status of the request.
|
|
|
|
.. _OPAL_SET_POWER_SHIFT_RATIO:
|
|
|
|
OPAL_SET_POWER_SHIFT_RATIO
|
|
==========================
|
|
OPAL call to set power-shifting-ratio using a handle to identify
|
|
the type of PSR which is exported in device-tree. This call can be
|
|
asynchronus where the token parameter is used to wait for the
|
|
completion.
|
|
|
|
Parameters
|
|
----------
|
|
|
|
=== ======
|
|
=== ======
|
|
u32 handle
|
|
int token
|
|
u32 ratio
|
|
=== ======
|
|
|
|
Returns
|
|
-------
|
|
|
|
:ref:`OPAL_SUCCESS`
|
|
Success
|
|
:ref:`OPAL_PARAMETER`
|
|
Invalid ratio requested
|
|
:ref:`OPAL_UNSUPPORTED`
|
|
No support for changing the ratio
|
|
:ref:`OPAL_PERMISSION`
|
|
Hardware cannot take the request
|
|
:ref:`OPAL_ASYNC_COMPLETION`
|
|
Request was sent and an async completion message will be sent with
|
|
token and status of the request.
|
|
:ref:`OPAL_HARDWARE`
|
|
Unable to procced due to the current hardware state
|
|
:ref:`OPAL_BUSY`
|
|
Previous request in progress
|
|
:ref:`OPAL_INTERNAL_ERROR`
|
|
Error in request response
|
|
:ref:`OPAL_TIMEOUT`
|
|
Timeout in request completion
|