Commit c23083cd authored by Graham Sider's avatar Graham Sider Committed by Alex Deucher
Browse files

drm/amd/pm: Add common throttler translation func



Defines smu_cmn_get_indep_throttler_status which performs ASIC
independent translation given a corresponding lookup table.

Signed-off-by: default avatarGraham Sider <Graham.Sider@amd.com>
Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1049de43
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -398,6 +398,19 @@ int smu_cmn_get_enabled_32_bits_mask(struct smu_context *smu,


}
}


uint64_t smu_cmn_get_indep_throttler_status(
					const unsigned long dep_status,
					const uint8_t *throttler_map)
{
	uint64_t indep_status = 0;
	uint8_t dep_bit = 0;

	for_each_set_bit(dep_bit, &dep_status, 32)
		indep_status |= 1ULL << throttler_map[dep_bit];

	return indep_status;
}

int smu_cmn_feature_update_enable_state(struct smu_context *smu,
int smu_cmn_feature_update_enable_state(struct smu_context *smu,
					uint64_t feature_mask,
					uint64_t feature_mask,
					bool enabled)
					bool enabled)
+4 −0
Original line number Original line Diff line number Diff line
@@ -60,6 +60,10 @@ int smu_cmn_get_enabled_32_bits_mask(struct smu_context *smu,
					uint32_t *feature_mask,
					uint32_t *feature_mask,
					uint32_t num);
					uint32_t num);


uint64_t smu_cmn_get_indep_throttler_status(
					const unsigned long dep_status,
					const uint8_t *throttler_map);

int smu_cmn_feature_update_enable_state(struct smu_context *smu,
int smu_cmn_feature_update_enable_state(struct smu_context *smu,
					uint64_t feature_mask,
					uint64_t feature_mask,
					bool enabled);
					bool enabled);