[PATCH 2/6] drm/amdgpu: reset GDW, GWS and OA software copy to update them
Xiangliang Yu
Xiangliang.Yu at amd.com
Thu May 4 06:34:24 UTC 2017
From: Pixel Ding <Pixel.Ding at amd.com>
Reset GDW, GWS and OA when SRIOV do reset.
Signed-off-by: Pixel Ding <Pixel.Ding at amd.com>
Signed-off-by: Xiangliang Yu <Xiangliang.Yu at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index aef2019..f11241d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2538,7 +2538,7 @@ static int amdgpu_recover_vram_from_shadow(struct amdgpu_device *adev,
*/
int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, bool voluntary)
{
- int i, r = 0;
+ int i, j, r = 0;
int resched;
struct amdgpu_bo *bo, *tmp;
struct amdgpu_ring *ring;
@@ -2616,6 +2616,14 @@ int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, bool voluntary)
}
fence_put(fence);
+ for (i = 0; i < AMDGPU_MAX_VMHUBS; i++) {
+ struct amdgpu_vm_id_manager *id_mgr =
+ &adev->vm_manager.id_mgr[i];
+
+ for (j = 1; j < id_mgr->num_ids; j++)
+ amdgpu_vm_reset_id(adev, i, j);
+ }
+
for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
struct amdgpu_ring *ring = adev->rings[i];
if (!ring || !ring->sched.thread)
--
2.7.4
More information about the amd-gfx
mailing list