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

Commit ba997709 authored by Yong Zhao's avatar Yong Zhao Committed by Alex Deucher
Browse files

drm/amdgpu: Correctly establish the suspend/resume hook for amdkfd

parent a667386c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -55,6 +55,8 @@
#include <linux/firmware.h>
#include "amdgpu_vf_error.h"

#include "amdgpu_amdkfd.h"

MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin");
MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin");

@@ -2378,6 +2380,8 @@ int amdgpu_device_suspend(struct drm_device *dev, bool suspend, bool fbcon)
	}
	drm_modeset_unlock_all(dev);

	amdgpu_amdkfd_suspend(adev);

	/* unpin the front buffers and cursors */
	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
		struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
@@ -2511,6 +2515,9 @@ int amdgpu_device_resume(struct drm_device *dev, bool resume, bool fbcon)
			}
		}
	}
	r = amdgpu_amdkfd_resume(adev);
	if (r)
		return r;

	/* blat the mode back in */
	if (fbcon) {
+1 −8
Original line number Diff line number Diff line
@@ -1824,21 +1824,14 @@ static int cik_common_suspend(void *handle)
{
	struct amdgpu_device *adev = (struct amdgpu_device *)handle;

	amdgpu_amdkfd_suspend(adev);

	return cik_common_hw_fini(adev);
}

static int cik_common_resume(void *handle)
{
	int r;
	struct amdgpu_device *adev = (struct amdgpu_device *)handle;

	r = cik_common_hw_init(adev);
	if (r)
		return r;

	return amdgpu_amdkfd_resume(adev);
	return cik_common_hw_init(adev);
}

static bool cik_common_is_idle(void *handle)