OSDN Git Service

drm/amdgpu:set cond_exec polling value to 1 in ring_init
authorMonk Liu <Monk.Liu@amd.com>
Wed, 18 Jan 2017 02:31:18 +0000 (10:31 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 27 Jan 2017 16:13:37 +0000 (11:13 -0500)
no need to set it per ib_schedule(), hw won't override
this polling address.

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c

index 972e84e..38dded5 100644 (file)
@@ -175,9 +175,6 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
        if (ring->funcs->emit_hdp_flush)
                amdgpu_ring_emit_hdp_flush(ring);
 
-       /* always set cond_exec_polling to CONTINUE */
-       *ring->cond_exe_cpu_addr = 1;
-
        skip_preamble = ring->current_ctx == fence_ctx;
        need_ctx_switch = ring->current_ctx != fence_ctx;
        if (job && ring->funcs->emit_cntxcntl) {
index a476283..7c842b7 100644 (file)
@@ -207,6 +207,8 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
        }
        ring->cond_exe_gpu_addr = adev->wb.gpu_addr + (ring->cond_exe_offs * 4);
        ring->cond_exe_cpu_addr = &adev->wb.wb[ring->cond_exe_offs];
+       /* always set cond_exec_polling to CONTINUE */
+       *ring->cond_exe_cpu_addr = 1;
 
        r = amdgpu_fence_driver_start_ring(ring, irq_src, irq_type);
        if (r) {
@@ -307,7 +309,7 @@ static ssize_t amdgpu_debugfs_ring_read(struct file *f, char __user *buf,
        while (size) {
                if (*pos >= (ring->ring_size + 12))
                        return result;
-                       
+
                value = ring->ring[(*pos - 12)/4];
                r = put_user(value, (uint32_t*)buf);
                if (r)