drm/damdgpu:add new mqd member in ring
authorMonk Liu <Monk.Liu@amd.com>
Tue, 24 Jan 2017 10:33:22 +0000 (18:33 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 30 Mar 2017 03:52:41 +0000 (23:52 -0400)
introduce a new mqd member in ring is for later usage.
we need keep a clean version of MQD for the purpose
of recovering compute rings from hang.

Signed-off-by: Monk Liu <Monk.Liu@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_ring.h
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c

index 2345b39..5785db8 100644 (file)
@@ -161,6 +161,8 @@ struct amdgpu_ring {
        u32                     pipe;
        u32                     queue;
        struct amdgpu_bo        *mqd_obj;
+       uint64_t                mqd_gpu_addr;
+       struct vi_mqd           *mqd_ptr;
        u32                     doorbell_index;
        bool                    use_doorbell;
        unsigned                wptr_offs;
index e0a96ca..505db77 100644 (file)
@@ -4596,6 +4596,8 @@ static void gfx_v8_0_cp_compute_fini(struct amdgpu_device *adev)
 
                        amdgpu_bo_unref(&ring->mqd_obj);
                        ring->mqd_obj = NULL;
+                       ring->mqd_ptr = NULL;
+                       ring->mqd_gpu_addr = 0;
                }
        }
 }