Commit 999dc9c5 authored by Aaron Liu's avatar Aaron Liu Committed by Alex Deucher
Browse files

drm/amdgpu/pm: add gfx_off_control for yellow carp



This patch implements gfx_off_control.

Signed-off-by: default avatarAaron Liu <aaron.liu@amd.com>
Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 647f0079
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -49,5 +49,7 @@ int smu_v13_0_1_fini_smc_tables(struct smu_context *smu);
int smu_v13_0_1_set_default_dpm_tables(struct smu_context *smu);

int smu_v13_0_1_set_driver_table_location(struct smu_context *smu);

int smu_v13_0_1_gfx_off_control(struct smu_context *smu, bool enable);
#endif
#endif
+21 −0
Original line number Diff line number Diff line
@@ -152,3 +152,24 @@ int smu_v13_0_1_set_driver_table_location(struct smu_context *smu)

	return ret;
}

int smu_v13_0_1_gfx_off_control(struct smu_context *smu, bool enable)
{
	int ret = 0;
	struct amdgpu_device *adev = smu->adev;

	switch (adev->asic_type) {
	case CHIP_YELLOW_CARP:
		if (!(adev->pm.pp_feature & PP_GFXOFF_MASK))
			return 0;
		if (enable)
			ret = smu_cmn_send_smc_msg(smu, SMU_MSG_AllowGfxOff, NULL);
		else
			ret = smu_cmn_send_smc_msg(smu, SMU_MSG_DisallowGfxOff, NULL);
		break;
	default:
		break;
	}

	return ret;
}
+1 −0
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ static const struct pptable_funcs yellow_carp_ppt_funcs = {
	.get_enabled_mask = smu_cmn_get_enabled_32_bits_mask,
	.get_pp_feature_mask = smu_cmn_get_pp_feature_mask,
	.set_driver_table_location = smu_v13_0_1_set_driver_table_location,
	.gfx_off_control = smu_v13_0_1_gfx_off_control,
};

void yellow_carp_set_ppt_funcs(struct smu_context *smu)