diff options
author | Shaoyun Liu <Shaoyun.Liu@amd.com> | 2017-04-28 17:18:26 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-05-24 17:40:12 -0400 |
commit | cdf6adb28f79e728389b2e1a5e524504ce710eb6 (patch) | |
tree | d484f159d7673b510fed348365593680f3311cd4 /drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | |
parent | b98b8dbc39d59a06b2104cfafed71ce465573e8e (diff) |
drm/amdgpu: Move kiq ring lock out of virt structure
The usage of kiq should not depend on the virtualization.
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com>
Reviewed-by:Andres Rodriquez <andresx7@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index bd422f04f2ce..61fcf264c247 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | |||
@@ -108,7 +108,6 @@ void amdgpu_virt_init_setting(struct amdgpu_device *adev) | |||
108 | adev->cg_flags = 0; | 108 | adev->cg_flags = 0; |
109 | adev->pg_flags = 0; | 109 | adev->pg_flags = 0; |
110 | 110 | ||
111 | mutex_init(&adev->virt.lock_kiq); | ||
112 | mutex_init(&adev->virt.lock_reset); | 111 | mutex_init(&adev->virt.lock_reset); |
113 | } | 112 | } |
114 | 113 | ||
@@ -122,12 +121,12 @@ uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg) | |||
122 | 121 | ||
123 | BUG_ON(!ring->funcs->emit_rreg); | 122 | BUG_ON(!ring->funcs->emit_rreg); |
124 | 123 | ||
125 | mutex_lock(&adev->virt.lock_kiq); | 124 | mutex_lock(&kiq->ring_mutex); |
126 | amdgpu_ring_alloc(ring, 32); | 125 | amdgpu_ring_alloc(ring, 32); |
127 | amdgpu_ring_emit_rreg(ring, reg); | 126 | amdgpu_ring_emit_rreg(ring, reg); |
128 | amdgpu_fence_emit(ring, &f); | 127 | amdgpu_fence_emit(ring, &f); |
129 | amdgpu_ring_commit(ring); | 128 | amdgpu_ring_commit(ring); |
130 | mutex_unlock(&adev->virt.lock_kiq); | 129 | mutex_unlock(&kiq->ring_mutex); |
131 | 130 | ||
132 | r = dma_fence_wait(f, false); | 131 | r = dma_fence_wait(f, false); |
133 | if (r) | 132 | if (r) |
@@ -148,12 +147,12 @@ void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v) | |||
148 | 147 | ||
149 | BUG_ON(!ring->funcs->emit_wreg); | 148 | BUG_ON(!ring->funcs->emit_wreg); |
150 | 149 | ||
151 | mutex_lock(&adev->virt.lock_kiq); | 150 | mutex_lock(&kiq->ring_mutex); |
152 | amdgpu_ring_alloc(ring, 32); | 151 | amdgpu_ring_alloc(ring, 32); |
153 | amdgpu_ring_emit_wreg(ring, reg, v); | 152 | amdgpu_ring_emit_wreg(ring, reg, v); |
154 | amdgpu_fence_emit(ring, &f); | 153 | amdgpu_fence_emit(ring, &f); |
155 | amdgpu_ring_commit(ring); | 154 | amdgpu_ring_commit(ring); |
156 | mutex_unlock(&adev->virt.lock_kiq); | 155 | mutex_unlock(&kiq->ring_mutex); |
157 | 156 | ||
158 | r = dma_fence_wait(f, false); | 157 | r = dma_fence_wait(f, false); |
159 | if (r) | 158 | if (r) |