Commit 935abb86 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/smu13: fix profile reporting



The following 3 commits landed in parallel:
commit d7d2688b ("drm/amd/pm: update workload mask after the setting")
commit 7a1613e4 ("drm/amdgpu/smu13: always apply the powersave optimization")
commit 7c210ca5 ("drm/amdgpu: handle default profile on on devices without fullscreen 3D")
While everything is set correctly, this caused the profile to be
reported incorrectly because both the powersave and fullscreen3d bits
were set in the mask and when the driver prints the profile, it looks
for the first bit set.

Fixes: d7d2688b ("drm/amd/pm: update workload mask after the setting")
Reviewed-by: default avatarKenneth Feng <kenneth.feng@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
(cherry picked from commit ecfe9b23)
Cc: stable@vger.kernel.org
parent 4aa923a6
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2485,7 +2485,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
	DpmActivityMonitorCoeffInt_t *activity_monitor =
		&(activity_monitor_external.DpmActivityMonitorCoeffInt);
	int workload_type, ret = 0;
	u32 workload_mask;
	u32 workload_mask, selected_workload_mask;

	smu->power_profile_mode = input[size];

@@ -2552,7 +2552,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
	if (workload_type < 0)
		return -EINVAL;

	workload_mask = 1 << workload_type;
	selected_workload_mask = workload_mask = 1 << workload_type;

	/* Add optimizations for SMU13.0.0/10.  Reuse the power saving profile */
	if ((amdgpu_ip_version(smu->adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 0) &&
@@ -2572,7 +2572,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
					       workload_mask,
					       NULL);
	if (!ret)
		smu->workload_mask = workload_mask;
		smu->workload_mask = selected_workload_mask;

	return ret;
}