Commit 3cf7a0bc authored by Mario Limonciello's avatar Mario Limonciello Committed by Alex Deucher
Browse files

drm/amd/display: Catch failures for amdgpu_dm_commit_zero_streams()



amdgpu_dm_commit_zero_streams() returns a DC error code that isn't
checked. Add an explicit check to this and fail dm_suspend() if it
is not DC_OK.

Reviewed-by: default avatarAlex Hung <alex.hung@amd.com>
Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarWayne Lin <wayne.lin@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 65890cad
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -3147,6 +3147,8 @@ static int dm_suspend(struct amdgpu_ip_block *ip_block)
	struct amdgpu_display_manager *dm = &adev->dm;

	if (amdgpu_in_reset(adev)) {
		enum dc_status res;

		mutex_lock(&dm->dc_lock);

		dc_allow_idle_optimizations(adev->dm.dc, false);
@@ -3156,7 +3158,11 @@ static int dm_suspend(struct amdgpu_ip_block *ip_block)
		if (dm->cached_dc_state)
			dm_gpureset_toggle_interrupts(adev, dm->cached_dc_state, false);

		amdgpu_dm_commit_zero_streams(dm->dc);
		res = amdgpu_dm_commit_zero_streams(dm->dc);
		if (res != DC_OK) {
			drm_err(adev_to_drm(adev), "Failed to commit zero streams: %d\n", res);
			return -EINVAL;
		}

		amdgpu_dm_irq_suspend(adev);