aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/doc/opal-api/opal-power-shift-ratio.rst
blob: 4437b55bb730b8ff1cc7689513078c47efdcfc22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.. _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