diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 98ff987ae940..e89aa2dc5c11 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -65,6 +65,8 @@  #include "amdgpu_ras.h"  #include "amdgpu_pmu.h" +#include <linux/suspend.h> +  MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin");  MODULE_FIRMWARE("amdgpu/vega12_gpu_info.bin");  MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin"); @@ -3769,6 +3771,18 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,  	int i, r = 0;  	bool in_ras_intr = amdgpu_ras_intr_triggered(); +	/* +	 * Flush RAM to disk so that after reboot +	 * the user can read log and see why the system rebooted. +	 */ +	if (in_ras_intr && amdgpu_ras_get_context(adev)->reboot) { + +		DRM_WARN("Emergency reboot."); + +		ksys_sync_helper(); +		emergency_restart(); +	} +  	need_full_reset = job_signaled = false;  	INIT_LIST_HEAD(&device_list);  | 
