diff options
author | Chunming Zhou <david1.zhou@amd.com> | 2015-08-27 01:46:09 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-08-28 15:04:19 -0400 |
commit | 6e7a3840745c950c37d37cbb0af2e753a765d4ec (patch) | |
tree | 68066bf9fe3c0ac29a7c9f6c04f845e20d0f386c /drivers/gpu/drm/amd/amdgpu | |
parent | 8f8202f771c182a7244caa5880f50def1bedd713 (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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 12 |
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 | */ |
1366 | static void cik_sdma_emit_fill_buffer(struct amdgpu_ring *ring, | 1366 | static 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 | ||
1378 | static const struct amdgpu_buffer_funcs cik_sdma_buffer_funcs = { | 1378 | static 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 | */ |
1378 | static void sdma_v2_4_emit_fill_buffer(struct amdgpu_ring *ring, | 1378 | static 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 | ||
1390 | static const struct amdgpu_buffer_funcs sdma_v2_4_buffer_funcs = { | 1390 | static 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 | */ |
1502 | static void sdma_v3_0_emit_fill_buffer(struct amdgpu_ring *ring, | 1502 | static 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 | ||
1514 | static const struct amdgpu_buffer_funcs sdma_v3_0_buffer_funcs = { | 1514 | static const struct amdgpu_buffer_funcs sdma_v3_0_buffer_funcs = { |