drm/amdgpu: fix a GPU hang issue when remove device
authorDennis Li <Dennis.Li@amd.com>
Wed, 30 Dec 2020 11:45:15 +0000 (19:45 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Jan 2021 21:17:27 +0000 (16:17 -0500)
commit88e21af1b3f887d217f2fb14fc7e7d3cd87ebf57
treee062968c5e46dd7b8ee7420d927078cc1523795f
parent9a029a3facc4d333100308a8e283d9210a36b94c
drm/amdgpu: fix a GPU hang issue when remove device

When GFXOFF is enabled and GPU is idle, driver will fail to access some
registers. Therefore change to disable power gating before all access
registers with MMIO.

Dmesg log is as following:
amdgpu 0000:03:00.0: amdgpu: amdgpu: finishing device.
amdgpu: cp queue pipe 4 queue 0 preemption failed
amdgpu 0000:03:00.0: amdgpu: failed to write reg 2890 wait reg 28a2
amdgpu 0000:03:00.0: amdgpu: failed to write reg 1a6f4 wait reg 1a706
amdgpu 0000:03:00.0: amdgpu: failed to write reg 2890 wait reg 28a2
amdgpu 0000:03:00.0: amdgpu: failed to write reg 1a6f4 wait reg 1a706

Signed-off-by: Dennis Li <Dennis.Li@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c