Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b59eb898 authored by Junwei Zhang's avatar Junwei Zhang Committed by Alex Deucher
Browse files

drm/amd/powerplay: add vclk/dclkSoftMin support for raven

parent 5060baa0
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -265,6 +265,15 @@ static int rv_tf_set_clock_limit(struct pp_hwmgr *hwmgr, void *input,
		}
	} */

	if (((hwmgr->uvd_arbiter.vclk_soft_min / 100) != rv_data->vclk_soft_min) ||
	    ((hwmgr->uvd_arbiter.dclk_soft_min / 100) != rv_data->dclk_soft_min)) {
		rv_data->vclk_soft_min = hwmgr->uvd_arbiter.vclk_soft_min / 100;
		rv_data->dclk_soft_min = hwmgr->uvd_arbiter.dclk_soft_min / 100;
		smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
			PPSMC_MSG_SetSoftMinVcn,
			(rv_data->vclk_soft_min << 16) | rv_data->vclk_soft_min);
	}

	if((hwmgr->gfx_arbiter.sclk_hard_min != 0) &&
		((hwmgr->gfx_arbiter.sclk_hard_min / 100) != rv_data->soc_actual_hard_min_freq)) {
		smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+2 −0
Original line number Diff line number Diff line
@@ -280,6 +280,8 @@ struct rv_hwmgr {

	uint32_t                        f_actual_hard_min_freq;
	uint32_t                        fabric_actual_soft_min_freq;
	uint32_t                        vclk_soft_min;
	uint32_t                        dclk_soft_min;
	uint32_t                        gfx_actual_soft_min_freq;

	bool                           vcn_power_gated;
+2 −0
Original line number Diff line number Diff line
@@ -128,6 +128,8 @@ struct phm_uvd_arbiter {
	uint32_t dclk;
	uint32_t vclk_ceiling;
	uint32_t dclk_ceiling;
	uint32_t vclk_soft_min;
	uint32_t dclk_soft_min;
};

struct phm_vce_arbiter {
+6 −1
Original line number Diff line number Diff line
@@ -66,7 +66,12 @@
#define PPSMC_MSG_SetMinVddcrSocVoltage         0x22
#define PPSMC_MSG_SetMinVideoFclkFreq           0x23
#define PPSMC_MSG_SetMinDeepSleepDcefclk        0x24
#define PPSMC_Message_Count                     0x25
#define PPSMC_MSG_ForcePowerDownGfx             0x25
#define PPSMC_MSG_SetPhyclkVoltageByFreq        0x26
#define PPSMC_MSG_SetDppclkVoltageByFreq        0x27
#define PPSMC_MSG_SetSoftMinVcn                 0x28
#define PPSMC_Message_Count                     0x29


typedef uint16_t PPSMC_Result;
typedef int      PPSMC_Msg;