drm/amdgpu: Refactor GPU reset for XGMI hive case
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Thu, 22 Nov 2018 23:57:08 +0000 (18:57 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 28 Nov 2018 20:55:36 +0000 (15:55 -0500)
commit26bc534094ed45fdedef6b4ce8b96030340c5ce7
tree63e9070146eb3da91e2f340e33afaf15da83c5bb
parented2bf5229c53f20cfbca7a34fcbafa91c3168e1e
drm/amdgpu: Refactor GPU reset for XGMI hive case

For XGMI hive case do reset in steps where each step iterates over
all devs in hive. This especially important for asic reset
since all PSP FW in hive must come up within a limited time
(around 1 sec) to properply negotiate the link.
Do this by  refactoring  amdgpu_device_gpu_recover and amdgpu_device_reset
into pre_asic_reset, asic_reset and post_asic_reset functions where is part
is exectued for all the GPUs in the hive before going to the next step.

v2: Update names for amdgpu_device_lock/unlock functions.

v3: Introduce per hive locking to avoid multiple resets for GPUs
    in same hive.
v4:
Remove delayed_workqueue()/ttm_bo_unlock_delayed_workqueue() - they
are copy & pasted over from radeon and on amdgpu there isn't
any reason for that any more.

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c