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

OPAL_SUCCESS

Success

OPAL_PARAMETER

Invalid ratio pointer

OPAL_UNSUPPORTED

No support for reading psr

OPAL_HARDWARE

Unable to procced due to the current hardware state

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

OPAL_SUCCESS

Success

OPAL_PARAMETER

Invalid ratio requested

OPAL_UNSUPPORTED

No support for changing the ratio

OPAL_PERMISSION

Hardware cannot take the request

OPAL_ASYNC_COMPLETION

Request was sent and an async completion message will be sent with token and status of the request.

OPAL_HARDWARE

Unable to procced due to the current hardware state

OPAL_BUSY

Previous request in progress

OPAL_INTERNAL_ERROR

Error in request response

OPAL_TIMEOUT

Timeout in request completion