Evan Quan
7fb133cf65
drm/amd/powerplay: put VCN/JPEG into PG ungate state before dpm table setup(V3)
...
As VCN related dpm table setup needs VCN be in PG ungate state. Same logics
applies to JPEG.
V2: fix paste typo
V3: code cosmetic
Signed-off-by: Evan Quan <evan.quan@amd.com >
Tested-by: Matt Coffin <mcoffin13@gmail.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-07 17:50:38 -04:00
Evan Quan
2c34c960ce
drm/amd/powerplay: update swSMU VCN/JPEG PG logics
...
Add lock protections and avoid unnecessary actions
if the PG state is already the same as required.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Tested-by: Matt Coffin <mcoffin13@gmail.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-07 17:48:57 -04:00
Alex Deucher
95a2687687
drm/amdgpu/smu: rework i2c adpater registration
...
The i2c init/fini functions just register the i2c adapter.
There is no need to call them during hw init/fini. They only
need to be called once per driver init/fini. The previous
behavior broke runtime pm because we unregistered the i2c
adapter during suspend.
Tested-by: Tom St Denis <tom.stdenis@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:50:23 -04:00
Kevin Wang
c4e0dbcb20
drm/amd/swsmu: allow asic to handle sensor type by itself
...
1. allow asic to handle sensor type by itself.
2. if not, use smu common sensor to handle it.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:35:56 -04:00
Changfeng
de273b73ca
drm/amd/powerplay: drop unnecessary message support check(v2)
...
Take back patch:drop unnecessary message support check
Because the gpu reset fail problem on renoir can be fixed by:
drm/amd/powerplay: skip invalid msg when smu set mp1 state
It needs to remove SWSMU_CODE_LAYER_L1 in smu_cmn.h to guard a clear
code layer.
Signed-off-by: changfeng <Changfeng.Zhu@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:33:18 -04:00
Likun Gao
2f32faec00
drm/amd/powerplay: skip invalid msg when smu set mp1 state
...
Some asic may not support for some message of set mp1 state.
If the return value of smu_send_smc_msg is -EINVAL, that means it failed
to send msg to smc as it can not map an valid message for the ASIC. And
with that case, smu_set_mp1_state should be skipped as those ASIC was in
fact do not support for that.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:26:42 -04:00
Kenneth Feng
3520b5e228
drm/amd/powerplay: remove the dpm checking in the boot sequence
...
It's not necessary to retrieve the power features status when the
asic is booted up the first time. This patch can have the features
enablement status still checked in suspend/resume case and removed
from the first boot up sequence.
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:26:07 -04:00
Changfeng
ffa453f05b
Revert "drm/amd/powerplay: drop unnecessary message support check"
...
The below 3 messages are not supported on Renoir
SMU_MSG_PrepareMp1ForShutdown
SMU_MSG_PrepareMp1ForUnload
SMU_MSG_PrepareMp1ForReset
It needs to revert patch:
drm/amd/powerplay: drop unnecessary message support check
to avoid set mp1 state fail during gpu reset on renoir.
Signed-off-by: changfeng <Changfeng.Zhu@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:24:31 -04:00
Alex Deucher
0e0e11e71e
drm/amdgpu/swSMU: remove eeprom from the smu i2c handlers (v2)
...
The driver uses it for EEPROM access, but it's just an i2c bus.
v2: change the callback name as well.
Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:56 -04:00
Evan Quan
d8e0b16d81
drm/amd/powerplay: tag swSMU code layers
...
Per designs, the swSMU code is separated into four layers. And the typical
calling flow should be like: amdgpu_smu.c -> ${asic}_ppt.c -> smu_v11/12_0.c
-> smu_cmn.c. Compile errors will come out for any violations. This can
help to prevent cross callings(e.g. amdgpu_smu.c -> ${asic}_ppt.c ->
amdgpu_smu.c -> ${asic}_ppt.c) which were common in our code.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
704759315a
drm/amd/powerplay: revise the calling flow on OD table update
...
This can eliminate the cross callings and maintain clear
code layer.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
2132672499
drm/amd/powerplay: drop unnecessary message support check
...
These messages are known to be supported by all ASICs.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
66c868282f
drm/amd/powerplay: move SMC message issuing APIs to smu_cmn.c
...
Considering they can be shared by all ASICs.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
caad2613dc
drm/amd/powerplay: move table setting common code to smu_cmn.c
...
As they are shared by all ASICs.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
e7a95eea22
drm/amd/powerplay: maximum code sharing around watermarks setting
...
Maximum code sharing.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
a7bae06199
drm/amd/powerplay: move more APIs to smu_cmn.c
...
Considering they are shared by all ASICs.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
af5ba6d21a
drm/amd/powerplay: common API for disabling all features with exception
...
We are moving to centralize all feature enablement/support checking and
setting APIs in smu_cmn.c.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
7dbf78051f
drm/amd/powerplay: move ppfeature mask setting to smu_cmn.c
...
Considering they are shared by all ASICs. And we are moving
to centralize all feature enablement/support checking and
setting APIs in smu_cmn.c.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:38 -04:00
Evan Quan
b4bb3aaf04
drm/amd/powerplay: move dpm feature enablement checking to smu_cmn.c
...
Considering it is shared by all ASICs and smu_cmn.c should be
the right place.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:37 -04:00
Evan Quan
4d942ae349
drm/amd/powerplay: move dpm feature support checking to smu_cmn.c
...
Considering it is shared by all ASICs and smu_cmn.c should be
the right place.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:37 -04:00
Evan Quan
d23c3ccc21
drm/amd/powerplay: move clock dpm enablement check to smu_v11/v12
...
As those APIs of smu_v11/v12 are more widely called. And they
need this check also.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:37 -04:00
Evan Quan
6c339f37f1
drm/amd/powerplay: unify swSMU index to asic specific index mapping
...
By this we can drop redundant code.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:37 -04:00
Evan Quan
22f2447c04
drm/amd/powerplay: widely share the API for data table retrieving
...
Considering the data table retrieving can be more widely shared,
amdgpu_atombios.c is the right place.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:37 -04:00
Jinzhou.Su
443c7f3c36
drm/amdgpu: add read amdgpu_gfxoff status in debugfs
...
Add interface for SMU12 device, used by UMR.
v2: fix code style
Signed-off-by: Jinzhou.Su <Jinzhou.Su@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-21 15:37:37 -04:00
Jiansong Chen
82121d154a
drm/amdgpu/powerplay: add smu support for navy_flounder
...
Now navy_flounder will reuse the smu11 driver_if header and ppt
functions for sienna_cichlid. Later navy_flounder can maintain
its own version if the compatibility is broken.
Signed-off-by: Jiansong Chen <Jiansong.Chen@amd.com >
Reviewed-by: Tao Zhou <tao.zhou1@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-15 12:46:41 -04:00
Evan Quan
0540ecedcb
drm/amd/powerplay: sort the call flow on temperature ranges retrieving
...
This can help to maintain clear code layer.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-15 12:44:32 -04:00
Evan Quan
778f8e6afe
drm/amd/powerplay: drop unnecessary wrapper around pcie parameters setting
...
This can also help to maintain clear code layer.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-15 12:43:54 -04:00
Evan Quan
42f75c849f
drm/amd/powerplay: drop unused APIs and parameters
...
Leftover of previous performance level setting cleanups.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-15 12:43:48 -04:00
Evan Quan
62cc9dd182
drm/amd/powerplay: update UMD pstate clock settings
...
Preparing for coming code sharing around performance level
setting.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-15 12:42:46 -04:00
Wenhui Sheng
ea8139d8d5
drm/amd/powerplay: add SMU mode1 reset
...
From PM FW 58.26.0 for sienna cichlid, SMU mode1 reset
is support, driver sends PPSMC_MSG_Mode1Reset message
to PM FW could trigger this reset.
v2: add mode1 reset dpm interface
v3: change maro name
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Signed-off-by: Wenhui Sheng <Wenhui.Sheng@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-15 12:41:32 -04:00
Evan Quan
d8d3493a46
drm/amd/powerplay: put dpm frequency setting common code in smu_v11_0.c
...
As designed the common code shared among all smu v11 ASCIs go to
smu_v11_0.c. This helps to maintain clear code layers.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-10 17:42:35 -04:00
Evan Quan
e5ef784b1e
drm/amd/powerplay: revise calling chain on retrieving frequency range
...
This helps to maintain clear code layers and drop unnecessary
parameter.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-10 17:42:29 -04:00
Evan Quan
c98f31d17c
drm/amd/powerplay: revise calling chain on setting soft limit
...
This helps to maintain clear code layers and drop unnecessary
parameter.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-10 17:42:22 -04:00
Evan Quan
661b94f5ac
drm/amd/powerplay: put setting hard limit common code in smu_v11_0.c
...
As designed the common code shared among all smu v11 ASCIs go to
smu_v11_0.c. This helps to maintain clear code layers.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-10 17:42:16 -04:00
Nirmoy Das
38ed7b0983
drm/powerplay: label internally used symbols as static
...
Used sparse(make C=1) to find these loose ends.
Signed-off-by: Nirmoy Das <nirmoy.das@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:23 -04:00
Emily Deng
ac1af42132
drm/amdgpu/sriov: Disable pm for multiple vf sriov
...
Signed-off-by: Emily Deng <Emily.Deng@amd.com >
Ack-by: Monk.liu <monk.liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:19 -04:00
Evan Quan
3466a8f0c2
drm/amd/powerplay: maximum code sharing on sensor reading
...
Move the common code to amdgpu_smu.c instead of having one
copy in both smu_v11_0.c and smu_v12_0.c.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:19 -04:00
Evan Quan
5675123d60
drm/amd/powerplay: revise the calling chain on sensor reading
...
Update the calling chain from "amdgpu_smu.c -> ${asic}_ppt.c ->
smu_v11/12_0.c -> amdgpu_smu.c (smu_common_read_sensor())" to "
"amdgpu_smu.c -> ${asic}_ppt.c -> smu_v11/12_0.c". This can help
to maintain clear code layers. More similar changes will be coming.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:19 -04:00
Evan Quan
947119a3f9
drm/amd/powerplay: drop unnecessary wrapper .populate_smc_tables
...
Since .populate_smc_tables is just a wrapper of .set_default_dpm_table.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:19 -04:00
Evan Quan
ce63d8f8b5
drm/amd/powerplay: drop redundant .set_min_dcefclk_deep_sleep API (v2)
...
It has exactly the same functionality as .set_deep_sleep_dcefclk.
V2: correct the macro name for better trace
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:19 -04:00
Evan Quan
10eafd3e56
drm/amd/powerplay: move maximum sustainable clock retrieving to .hw_init
...
Since DAL settings come between .hw_init and .late_init of SMU. And
DAL needs to know the maximum sustainable clocks.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reported-and-Tested-by: Flora Cui <flora.cui@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
4cb738ab78
drm/amd/powerplay: drop unused code around power limit
...
Drop unused APIs, variables and argument.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
5213e49df3
drm/amd/powerplay: simplify the code around setting power limit
...
Use the cached max/current power limit and move the input check
to the top layer.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
a141b4e3c7
drm/amd/powerplay: simplify the code around retrieving power limit
...
Use the cached max/current power limit for other cases except
.late_init.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
f3bc9aeceb
drm/amd/powerplay: drop unnecessary get_pptable_power_limit wrappers
...
Minor code cleanup.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
f6b4b4a1db
drm/amd/powerplay: correct the APIs' naming
...
'UVD' is a HW engine name for Vega20 and before ASICs.
For newer ASICs, the similar engine is named as 'VCN'.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
7a1105bd65
drm/amd/powerplay: drop unnecessary wrappers
...
These APIs are used in amdgpu_smu.c only. Thus these wrappers
are unnecessary.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
1fdfe8cacb
drm/amd/powerplay: drop dead vce powergate code
...
This was for Vega20. However Vega20 support is
already dropped from current swSMU.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
7951e7c036
drm/amd/powerplay: add error messages on some critical paths
...
Helpful for error diagnostic.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00
Evan Quan
55084d7f40
drm/amd/powerplay: forbid to use pr_err/warn/info/debug
...
Use dev_err/warn/info/dbg instead. They are more MGPU friendly.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:18 -04:00