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
Jiansong Chen
0730344ee3
drm/amd/powerplay: update driver if version for navy_flounder
...
It's in accordance with pmfw 65.5.0 for navy_flounder.
Signed-off-by: Jiansong Chen <Jiansong.Chen@amd.com >
Reviewed-by: Tao Zhou <tao.zhou1@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-08-06 16:43:44 -04:00
Likun Gao
a486bc3c50
drm/amd/powerplay: update driver if file for sienna_cichlid
...
Update sienna_cichlid driver if header and related files.
Support new smu metrics for pre & postDS frequency.
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-08-06 16:34:08 -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
Jiansong Chen
8985adb69f
drm/amd/powerplay: update driver if version for navy_flounder
...
It's in accordance with pmfw 65.3.0 for navy_flounder.
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-21 15:37:40 -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
28251d726b
drm/amd/powerplay: implement smu_cmn_get_enabled_mask() for all ASICs
...
Instead of having each for smu v11 and v12.
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
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
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
cbf3f132fe
drm/amd/powerplay: correct Navi1X temperature limit settings
...
These are needed for temp1/2/3 related hwmon interfaces.
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:09 -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
982d68b093
drm/amd/powerplay: drop smu_v12_0.c unnecessary wrapper V2
...
By moving the implemention to renoir_ppt.c considering
it's really ASIC specific.
V2: fix compile warnings below
drivers/gpu/drm/amd/amdgpu/../powerplay/renoir_ppt.h:40:25: warning: array subscript is above array bounds [-Warray-bounds]
freq = table->FClocks[dpm_level].Freq; \
drivers/gpu/drm/amd/amdgpu/../powerplay/renoir_ppt.c:195:2: note: in expansion of macro ‘GET_DPM_CUR_FREQ’
GET_DPM_CUR_FREQ(clk_table, clk_type, dpm_level, *freq);
^~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../powerplay/renoir_ppt.h:46:25: warning: array subscript is above array bounds [-Warray-bounds]
freq = table->FClocks[dpm_level].Freq; \
drivers/gpu/drm/amd/amdgpu/../powerplay/renoir_ppt.c:195:2: note: in expansion of macro ‘GET_DPM_CUR_FREQ’
GET_DPM_CUR_FREQ(clk_table, clk_type, dpm_level, *freq);
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:38 -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
Evan Quan
c1a9e61c58
drm/amd/powerplay: implement a common set dpm table API for smu V11
...
Maximum the code sharing around smu V11.
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:14 -04:00
Evan Quan
4387b10434
drm/amd/powerplay: add more members for dpm table
...
These members can help to cache the clock frequencies for all
dpm levels. Then simplifying the code for dpm level switching
is possible.
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:07 -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
Likun Gao
ec114eb464
drm/amd/powerplay: update driver if file for sienna_cichlid
...
Update sienna_cichlid driver if header and related files.
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-10 17:41:41 -04:00
Likun Gao
f0f3d68e67
drm/amd/powerplay: update driver if file for sienna_cichlid
...
Update sienna_cichlid driver if header file to match pptable changes.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2020-07-02 12:02:52 -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