Skip to content

Commit f5cdd2b

Browse files
committed
drm/amdgpu/swSMU: handle DC controlled by GPIO for navi1x
Check the platform caps in the vbios pptable to decide whether to enable automatic AC/DC transitions. Bug: https://gitlab.freedesktop.org/drm/amd/issues/1043 Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 75610fd commit f5cdd2b

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ struct smu_context
408408
uint32_t smc_if_version;
409409

410410
bool uploading_custom_pp_table;
411+
bool dc_controlled_by_gpio;
411412
};
412413

413414
struct i2c_adapter;

drivers/gpu/drm/amd/powerplay/navi10_ppt.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,6 @@ navi10_get_allowed_feature_mask(struct smu_context *smu,
347347
| FEATURE_MASK(FEATURE_DS_DCEFCLK_BIT)
348348
| FEATURE_MASK(FEATURE_FW_DSTATE_BIT)
349349
| FEATURE_MASK(FEATURE_BACO_BIT)
350-
| FEATURE_MASK(FEATURE_ACDC_BIT)
351350
| FEATURE_MASK(FEATURE_GFX_SS_BIT)
352351
| FEATURE_MASK(FEATURE_APCC_DFLL_BIT)
353352
| FEATURE_MASK(FEATURE_FW_CTF_BIT)
@@ -391,6 +390,9 @@ navi10_get_allowed_feature_mask(struct smu_context *smu,
391390
if (smu->adev->pg_flags & AMD_PG_SUPPORT_JPEG)
392391
*(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_JPEG_PG_BIT);
393392

393+
if (smu->dc_controlled_by_gpio)
394+
*(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_ACDC_BIT);
395+
394396
/* disable DPM UCLK and DS SOCCLK on navi10 A0 secure board */
395397
if (is_asic_secure(smu)) {
396398
/* only for navi10 A0 */
@@ -525,6 +527,9 @@ static int navi10_store_powerplay_table(struct smu_context *smu)
525527

526528
table_context->thermal_controller_type = powerplay_table->thermal_controller_type;
527529

530+
if (powerplay_table->platform_caps & SMU_11_0_PP_PLATFORM_CAP_HARDWAREDC)
531+
smu->dc_controlled_by_gpio = true;
532+
528533
mutex_lock(&smu_baco->mutex);
529534
if (powerplay_table->platform_caps & SMU_11_0_PP_PLATFORM_CAP_BACO ||
530535
powerplay_table->platform_caps & SMU_11_0_PP_PLATFORM_CAP_MACO)

0 commit comments

Comments
 (0)