aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChunming Zhou <david1.zhou@amd.com>2015-08-27 01:46:09 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-08-28 15:04:19 -0400
commit6e7a3840745c950c37d37cbb0af2e753a765d4ec (patch)
tree68066bf9fe3c0ac29a7c9f6c04f845e20d0f386c
parent8f8202f771c182a7244caa5880f50def1bedd713 (diff)
drm/amdgpu: use IB for fill_buffer instead of direct command
Signed-off-by: Chunming Zhou <david1.zhou@amd.com> Reviewed-by: Christian K?nig <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/cik_sdma.c12
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c12
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c12
4 files changed, 20 insertions, 20 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 9fefcd9c1af1..c6812f2e198e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -262,7 +262,7 @@ struct amdgpu_buffer_funcs {
262 unsigned fill_num_dw; 262 unsigned fill_num_dw;
263 263
264 /* used for buffer clearing */ 264 /* used for buffer clearing */
265 void (*emit_fill_buffer)(struct amdgpu_ring *ring, 265 void (*emit_fill_buffer)(struct amdgpu_ib *ib,
266 /* value to write to memory */ 266 /* value to write to memory */
267 uint32_t src_data, 267 uint32_t src_data,
268 /* dst addr in bytes */ 268 /* dst addr in bytes */
@@ -2248,7 +2248,7 @@ static inline void amdgpu_ring_write(struct amdgpu_ring *ring, uint32_t v)
2248#define amdgpu_display_stop_mc_access(adev, s) (adev)->mode_info.funcs->stop_mc_access((adev), (s)) 2248#define amdgpu_display_stop_mc_access(adev, s) (adev)->mode_info.funcs->stop_mc_access((adev), (s))
2249#define amdgpu_display_resume_mc_access(adev, s) (adev)->mode_info.funcs->resume_mc_access((adev), (s)) 2249#define amdgpu_display_resume_mc_access(adev, s) (adev)->mode_info.funcs->resume_mc_access((adev), (s))
2250#define amdgpu_emit_copy_buffer(adev, ib, s, d, b) (adev)->mman.buffer_funcs->emit_copy_buffer((ib), (s), (d), (b)) 2250#define amdgpu_emit_copy_buffer(adev, ib, s, d, b) (adev)->mman.buffer_funcs->emit_copy_buffer((ib), (s), (d), (b))
2251#define amdgpu_emit_fill_buffer(adev, r, s, d, b) (adev)->mman.buffer_funcs->emit_fill_buffer((r), (s), (d), (b)) 2251#define amdgpu_emit_fill_buffer(adev, ib, s, d, b) (adev)->mman.buffer_funcs->emit_fill_buffer((ib), (s), (d), (b))
2252#define amdgpu_dpm_get_temperature(adev) (adev)->pm.funcs->get_temperature((adev)) 2252#define amdgpu_dpm_get_temperature(adev) (adev)->pm.funcs->get_temperature((adev))
2253#define amdgpu_dpm_pre_set_power_state(adev) (adev)->pm.funcs->pre_set_power_state((adev)) 2253#define amdgpu_dpm_pre_set_power_state(adev) (adev)->pm.funcs->pre_set_power_state((adev))
2254#define amdgpu_dpm_set_power_state(adev) (adev)->pm.funcs->set_power_state((adev)) 2254#define amdgpu_dpm_set_power_state(adev) (adev)->pm.funcs->set_power_state((adev))
diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
index 3920c1e346f8..c1e782952bd7 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
@@ -1363,16 +1363,16 @@ static void cik_sdma_emit_copy_buffer(struct amdgpu_ib *ib,
1363 * 1363 *
1364 * Fill GPU buffers using the DMA engine (CIK). 1364 * Fill GPU buffers using the DMA engine (CIK).
1365 */ 1365 */
1366static void cik_sdma_emit_fill_buffer(struct amdgpu_ring *ring, 1366static void cik_sdma_emit_fill_buffer(struct amdgpu_ib *ib,
1367 uint32_t src_data, 1367 uint32_t src_data,
1368 uint64_t dst_offset, 1368 uint64_t dst_offset,
1369 uint32_t byte_count) 1369 uint32_t byte_count)
1370{ 1370{
1371 amdgpu_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_CONSTANT_FILL, 0, 0)); 1371 ib->ptr[ib->length_dw++] = SDMA_PACKET(SDMA_OPCODE_CONSTANT_FILL, 0, 0);
1372 amdgpu_ring_write(ring, lower_32_bits(dst_offset)); 1372 ib->ptr[ib->length_dw++] = lower_32_bits(dst_offset);
1373 amdgpu_ring_write(ring, upper_32_bits(dst_offset)); 1373 ib->ptr[ib->length_dw++] = upper_32_bits(dst_offset);
1374 amdgpu_ring_write(ring, src_data); 1374 ib->ptr[ib->length_dw++] = src_data;
1375 amdgpu_ring_write(ring, byte_count); 1375 ib->ptr[ib->length_dw++] = byte_count;
1376} 1376}
1377 1377
1378static const struct amdgpu_buffer_funcs cik_sdma_buffer_funcs = { 1378static const struct amdgpu_buffer_funcs cik_sdma_buffer_funcs = {
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
index 715e02d3bfba..2f3948c09081 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
@@ -1375,16 +1375,16 @@ static void sdma_v2_4_emit_copy_buffer(struct amdgpu_ib *ib,
1375 * 1375 *
1376 * Fill GPU buffers using the DMA engine (VI). 1376 * Fill GPU buffers using the DMA engine (VI).
1377 */ 1377 */
1378static void sdma_v2_4_emit_fill_buffer(struct amdgpu_ring *ring, 1378static void sdma_v2_4_emit_fill_buffer(struct amdgpu_ib *ib,
1379 uint32_t src_data, 1379 uint32_t src_data,
1380 uint64_t dst_offset, 1380 uint64_t dst_offset,
1381 uint32_t byte_count) 1381 uint32_t byte_count)
1382{ 1382{
1383 amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_CONST_FILL)); 1383 ib->ptr[ib->length_dw++] = SDMA_PKT_HEADER_OP(SDMA_OP_CONST_FILL);
1384 amdgpu_ring_write(ring, lower_32_bits(dst_offset)); 1384 ib->ptr[ib->length_dw++] = lower_32_bits(dst_offset);
1385 amdgpu_ring_write(ring, upper_32_bits(dst_offset)); 1385 ib->ptr[ib->length_dw++] = upper_32_bits(dst_offset);
1386 amdgpu_ring_write(ring, src_data); 1386 ib->ptr[ib->length_dw++] = src_data;
1387 amdgpu_ring_write(ring, byte_count); 1387 ib->ptr[ib->length_dw++] = byte_count;
1388} 1388}
1389 1389
1390static const struct amdgpu_buffer_funcs sdma_v2_4_buffer_funcs = { 1390static const struct amdgpu_buffer_funcs sdma_v2_4_buffer_funcs = {
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
index 67128c8e78b8..a9d9607e8d91 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -1499,16 +1499,16 @@ static void sdma_v3_0_emit_copy_buffer(struct amdgpu_ib *ib,
1499 * 1499 *
1500 * Fill GPU buffers using the DMA engine (VI). 1500 * Fill GPU buffers using the DMA engine (VI).
1501 */ 1501 */
1502static void sdma_v3_0_emit_fill_buffer(struct amdgpu_ring *ring, 1502static void sdma_v3_0_emit_fill_buffer(struct amdgpu_ib *ib,
1503 uint32_t src_data, 1503 uint32_t src_data,
1504 uint64_t dst_offset, 1504 uint64_t dst_offset,
1505 uint32_t byte_count) 1505 uint32_t byte_count)
1506{ 1506{
1507 amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_CONST_FILL)); 1507 ib->ptr[ib->length_dw++] = SDMA_PKT_HEADER_OP(SDMA_OP_CONST_FILL);
1508 amdgpu_ring_write(ring, lower_32_bits(dst_offset)); 1508 ib->ptr[ib->length_dw++] = lower_32_bits(dst_offset);
1509 amdgpu_ring_write(ring, upper_32_bits(dst_offset)); 1509 ib->ptr[ib->length_dw++] = upper_32_bits(dst_offset);
1510 amdgpu_ring_write(ring, src_data); 1510 ib->ptr[ib->length_dw++] = src_data;
1511 amdgpu_ring_write(ring, byte_count); 1511 ib->ptr[ib->length_dw++] = byte_count;
1512} 1512}
1513 1513
1514static const struct amdgpu_buffer_funcs sdma_v3_0_buffer_funcs = { 1514static const struct amdgpu_buffer_funcs sdma_v3_0_buffer_funcs = {