+++ /dev/null
-From c57040d333c6729ce99c2cb95061045ff84c89ea Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Thu, 14 Nov 2019 11:39:05 -0500
-Subject: drm/amdgpu: disable gfxoff when using register read interface
-
-From: Alex Deucher <alexander.deucher@amd.com>
-
-commit c57040d333c6729ce99c2cb95061045ff84c89ea upstream.
-
-When gfxoff is enabled, accessing gfx registers via MMIO
-can lead to a hang.
-
-Bug: https://bugzilla.kernel.org/show_bug.cgi?id=205497
-Acked-by: Xiaojie Yuan <xiaojie.yuan@amd.com>
-Reviewed-by: Evan Quan <evan.quan@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
-@@ -414,15 +414,19 @@ static int amdgpu_info_ioctl(struct drm_
- return -ENOMEM;
- alloc_size = info->read_mmr_reg.count * sizeof(*regs);
-
-- for (i = 0; i < info->read_mmr_reg.count; i++)
-+ amdgpu_gfx_off_ctrl(adev, false);
-+ for (i = 0; i < info->read_mmr_reg.count; i++) {
- if (amdgpu_asic_read_register(adev, se_num, sh_num,
- info->read_mmr_reg.dword_offset + i,
- ®s[i])) {
- DRM_DEBUG_KMS("unallowed offset %#x\n",
- info->read_mmr_reg.dword_offset + i);
- kfree(regs);
-+ amdgpu_gfx_off_ctrl(adev, true);
- return -EFAULT;
- }
-+ }
-+ amdgpu_gfx_off_ctrl(adev, true);
- n = copy_to_user(out, regs, min(size, alloc_size));
- kfree(regs);
- return n ? -EFAULT : 0;