diff options
author | Evan Quan <evan.quan@amd.com> | 2020-04-10 15:38:44 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2020-04-13 12:02:08 -0400 |
commit | dadce777e0947b9b6839f06f360882e54ba2a154 (patch) | |
tree | e3da2aa9ec71edfb36eb10c9cb2fe852f2ac059a /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
parent | ed72aa21c74a22457f56a9af1ccafd057098186f (diff) | |
download | kernel_replicant_linux-dadce777e0947b9b6839f06f360882e54ba2a154.tar.gz kernel_replicant_linux-dadce777e0947b9b6839f06f360882e54ba2a154.tar.bz2 kernel_replicant_linux-dadce777e0947b9b6839f06f360882e54ba2a154.zip |
drm/amdgpu: fix wrong vram lost counter increment V2
Vram lost counter is wrongly increased by two during baco reset.
V2: assumed vram lost for mode1 reset on all ASICs
Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index f51a32fb3c03..9db9ab417dae 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -2079,8 +2079,24 @@ static void amdgpu_device_fill_reset_magic(struct amdgpu_device *adev) */ static bool amdgpu_device_check_vram_lost(struct amdgpu_device *adev) { - return !!memcmp(adev->gart.ptr, adev->reset_magic, - AMDGPU_RESET_MAGIC_NUM); + if (memcmp(adev->gart.ptr, adev->reset_magic, + AMDGPU_RESET_MAGIC_NUM)) + return true; + + if (!adev->in_gpu_reset) + return false; + + /* + * For all ASICs with baco/mode1 reset, the VRAM is + * always assumed to be lost. + */ + switch (amdgpu_asic_reset_method(adev)) { + case AMD_RESET_METHOD_BACO: + case AMD_RESET_METHOD_MODE1: + return true; + default: + return false; + } } /** |