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
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
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
c1b353b7ea
drm/amd/powerplay: update the tables init related
...
To avoid cross calling 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
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
8264ee69f0
drm/amd/powerplay: drop unused code
...
Those code were obsoleted by new common API
smu_cmn_to_asic_specific_index().
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
Evan Quan
3cd7e415ae
drm/amd/powerplay: drop unused code around thermal range setting
...
Leftover of previous 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:44:46 -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
e02e4d513e
drm/amd/powerplay: cache the software_shutdown_temp
...
As it's needed in the succeeding thermal irq 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:44:24 -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
b64d86889f
drm/amd/powerplay: add new UMD pstate data structure
...
This is used to cache the clock frequencies for all UMD pstates.
So that we do not need to calculate from scratch on every UMD
pstate switch.
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:40 -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
Evan Quan
b2febc9901
drm/amd/powerplay: drop unused code and wrapper around clock retrieving
...
Clean code by dropping unnecessary ones.
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:10 -04:00
Evan Quan
9b259eae1c
drm/amd/powerplay: drop unnecessary wrappers around clock retrieving
...
By calling the target APIs directly.
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:41:48 -04:00
Kevin Wang
1fc87b4599
drm/amd/smu: unify pptable_func{} callback interface
...
the pptable_func callback sets should be has unify interface,
so use "smu" as the pptable_func interface first parameter.
fix interfaces:
1. i2c_eeprom_init
2. i2c_eeprom_fini
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:22 -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
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
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
1e239fdd31
drm/amd/powerplay: maximize code sharing around power limit
...
Also cache the current and max power limits.
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
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
8c68625429
drm/amd/powerplay: update how to use metrics table on Sienna Cichlid
...
Retrieve only those data interested instead of the whole 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:17 -04:00
Evan Quan
cf24dd2780
drm/amd/powerplay: update how to use metrics table on Navi10
...
Retrieve only those data interested instead of the whole 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:17 -04:00
Evan Quan
482191262e
drm/amd/powerplay: update how to use metrics table on Arcturus
...
Retrieve only those interested metrics data instead of the whole
metrics table. By this, the memory copy can be dropped.
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:17 -04:00
Likun Gao
947c127b26
drm/amd/powerplay: move powerplay table operation out of smu_v11_0.c
...
move smu_v11_0_get_max_power_limit and smu_v11_0_set_thermal_range
function from smu_v11_0.c to asic specific _ppt.c to avoid powerplay
table conflict with different ASIC with smu11.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:17 -04:00
Evan Quan
6961750f12
drm/amd/powerplay: use work queue to perform throttling logging
...
As IO operations(access to SMU internals) and possible sleep are
involved in throttling logging. Workqueue can handle them well.
Otherwise we may hit "scheduling while atomic" error.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Acked-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:17 -04:00
Evan Quan
6f47116e57
drm/amd/powerplay: add firmware cleanup on sw_fini
...
To avoid possible memory leak.
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:17 -04:00
Evan Quan
aaddad1f64
drm/amd/powerplay: move amdgpu_irq_src to the smu structure allocation
...
Rather than allocating it dynamically at runtime considering it is only
several bytes in size.
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:17 -04:00
Evan Quan
a35a10d975
drm/amd/powerplay: better namings
...
And some minor changes as dropping unused parameter and label
internal used API as static.
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:16 -04:00
Evan Quan
792f80d192
drm/amd/powerplay: clean up the overdrive settings
...
Eliminate the buffer allocation and drop the unnecessary
overdrive table uploading.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:16 -04:00
Evan Quan
4a13b4cefc
drm/amd/powerplay: clean up the APIs for pptable setup
...
Combine and simplify the logics for setup pptable.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-01 01:59:16 -04:00
Evan Quan
12ea344941
drm/amd/powerplay: clean up the APIs for bootup clocks
...
Combine and simplify the logics for retrieving bootup
clocks.
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:16 -04:00