mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-01 02:32:49 -04:00
drm/amd/pm: fix is_dpm_running() run error on 32bit system
v1: the C type "unsigned long" size is 32bit on 32bit system, it will cause code logic error, so replace it with "uint64_t". v2: remove duplicate cast operation. Signed-off-by: Kevin <kevin1.wang@amd.com> Suggest-by: Jiansong Chen <Jiansong.Chen@amd.com> Reviewed-by: Jiansong Chen <Jiansong.Chen@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -1844,10 +1844,14 @@ static bool arcturus_is_dpm_running(struct smu_context *smu)
|
||||
{
|
||||
int ret = 0;
|
||||
uint32_t feature_mask[2];
|
||||
unsigned long feature_enabled;
|
||||
uint64_t feature_enabled;
|
||||
|
||||
ret = smu_cmn_get_enabled_mask(smu, feature_mask, 2);
|
||||
feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
|
||||
((uint64_t)feature_mask[1] << 32));
|
||||
if (ret)
|
||||
return false;
|
||||
|
||||
feature_enabled = (uint64_t)feature_mask[1] << 32 | feature_mask[0];
|
||||
|
||||
return !!(feature_enabled & SMC_DPM_FEATURE);
|
||||
}
|
||||
|
||||
|
||||
@@ -1345,10 +1345,14 @@ static bool navi10_is_dpm_running(struct smu_context *smu)
|
||||
{
|
||||
int ret = 0;
|
||||
uint32_t feature_mask[2];
|
||||
unsigned long feature_enabled;
|
||||
uint64_t feature_enabled;
|
||||
|
||||
ret = smu_cmn_get_enabled_mask(smu, feature_mask, 2);
|
||||
feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
|
||||
((uint64_t)feature_mask[1] << 32));
|
||||
if (ret)
|
||||
return false;
|
||||
|
||||
feature_enabled = (uint64_t)feature_mask[1] << 32 | feature_mask[0];
|
||||
|
||||
return !!(feature_enabled & SMC_DPM_FEATURE);
|
||||
}
|
||||
|
||||
|
||||
@@ -1150,10 +1150,14 @@ static bool sienna_cichlid_is_dpm_running(struct smu_context *smu)
|
||||
{
|
||||
int ret = 0;
|
||||
uint32_t feature_mask[2];
|
||||
unsigned long feature_enabled;
|
||||
uint64_t feature_enabled;
|
||||
|
||||
ret = smu_cmn_get_enabled_mask(smu, feature_mask, 2);
|
||||
feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
|
||||
((uint64_t)feature_mask[1] << 32));
|
||||
if (ret)
|
||||
return false;
|
||||
|
||||
feature_enabled = (uint64_t)feature_mask[1] << 32 | feature_mask[0];
|
||||
|
||||
return !!(feature_enabled & SMC_DPM_FEATURE);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user