drm: Branch 'master' - 4 commits
[email protected] (Alex Deucher)
| Newsgroups | gmane.comp.video.dri.patches |
|---|---|
| Message-ID | <[email protected]> |
tests/amdgpu/basic_tests.c | 50 +++++++++++++++++++++++++++++++++++--------- tests/amdgpu/cs_tests.c | 51 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 85 insertions(+), 16 deletions(-) New commits: commit 7aab852d4ed25703fb986cf42328d3882697cfdc Author: Sonny Jiang <[email protected]> Date: Thu May 12 12:48:43 2016 -0400 tests/amdgpu: adapt to new polaris10/11 uvd fw Reviewed-by: Christian König <[email protected]> Signed-off-by: Sonny Jiang <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]> diff --git a/tests/amdgpu/cs_tests.c b/tests/amdgpu/cs_tests.c index c6930c0..a01ee48 100644 --- a/tests/amdgpu/cs_tests.c +++ b/tests/amdgpu/cs_tests.c @@ -43,6 +43,8 @@ static amdgpu_device_handle device_handle; static uint32_t major_version; static uint32_t minor_version; static uint32_t family_id; +static uint32_t chip_rev; +static uint32_t chip_id; static amdgpu_context_handle context_handle; static amdgpu_bo_handle ib_handle; @@ -78,6 +80,9 @@ int suite_cs_tests_init(void) return CUE_SINIT_FAILED; family_id = device_handle->info.family_id; + /* VI asic POLARIS10/11 have specific external_rev_id */ + chip_rev = device_handle->info.chip_rev; + chip_id = device_handle->info.chip_external_rev; r = amdgpu_cs_ctx_create(device_handle, &context_handle); if (r) @@ -200,8 +205,17 @@ static void amdgpu_cs_uvd_create(void) CU_ASSERT_EQUAL(r, 0); memcpy(msg, uvd_create_msg, sizeof(uvd_create_msg)); - if (family_id >= AMDGPU_FAMILY_VI) + if (family_id >= AMDGPU_FAMILY_VI) { ((uint8_t*)msg)[0x10] = 7; + /* chip polaris 10/11 */ + if (chip_id == chip_rev+0x50 || chip_id == chip_rev+0x5A) { + /* dpb size */ + ((uint8_t*)msg)[0x28] = 0x00; + ((uint8_t*)msg)[0x29] = 0x94; + ((uint8_t*)msg)[0x2A] = 0x6B; + ((uint8_t*)msg)[0x2B] = 0x00; + } + } r = amdgpu_bo_cpu_unmap(buf_handle); CU_ASSERT_EQUAL(r, 0); @@ -230,8 +244,8 @@ static void amdgpu_cs_uvd_create(void) static void amdgpu_cs_uvd_decode(void) { - const unsigned dpb_size = 15923584, dt_size = 737280; - uint64_t msg_addr, fb_addr, bs_addr, dpb_addr, dt_addr, it_addr; + const unsigned dpb_size = 15923584, ctx_size = 5287680, dt_size = 737280; + uint64_t msg_addr, fb_addr, bs_addr, dpb_addr, ctx_addr, dt_addr, it_addr; struct amdgpu_bo_alloc_request req = {0}; amdgpu_bo_handle buf_handle; amdgpu_va_handle va_handle; @@ -269,8 +283,21 @@ static void amdgpu_cs_uvd_decode(void) memcpy(ptr, uvd_decode_msg, sizeof(uvd_create_msg)); if (family_id >= AMDGPU_FAMILY_VI) { ptr[0x10] = 7; - ptr[0x98] = 0xb0; - ptr[0x99] = 0x1; + ptr[0x98] = 0x00; + ptr[0x99] = 0x02; + /* chip polaris10/11 */ + if (chip_id == chip_rev+0x50 || chip_id == chip_rev+0x5A) { + /*dpb size */ + ptr[0x24] = 0x00; + ptr[0x25] = 0x94; + ptr[0x26] = 0x6B; + ptr[0x27] = 0x00; + /*ctx size */ + ptr[0x2C] = 0x00; + ptr[0x2D] = 0xAF; + ptr[0x2E] = 0x50; + ptr[0x2F] = 0x00; + } } ptr += 4*1024; @@ -301,6 +328,12 @@ static void amdgpu_cs_uvd_decode(void) } else bs_addr = fb_addr + 4*1024; dpb_addr = ALIGN(bs_addr + sizeof(uvd_bitstream), 4*1024); + + if ((family_id >= AMDGPU_FAMILY_VI) && + (chip_id == chip_rev+0x50 || chip_id == chip_rev+0x5A)) { + ctx_addr = ALIGN(dpb_addr + 0x006B9400, 4*1024); + } + dt_addr = ALIGN(dpb_addr + dpb_size, 4*1024); i = 0; @@ -309,8 +342,11 @@ static void amdgpu_cs_uvd_decode(void) uvd_cmd(dt_addr, 0x2, &i); uvd_cmd(fb_addr, 0x3, &i); uvd_cmd(bs_addr, 0x100, &i); - if (family_id >= AMDGPU_FAMILY_VI) + if (family_id >= AMDGPU_FAMILY_VI) { uvd_cmd(it_addr, 0x204, &i); + if (chip_id == chip_rev+0x50 || chip_id == chip_rev+0x5A) + uvd_cmd(ctx_addr, 0x206, &i); +} ib_cpu[i++] = 0x3BC6; ib_cpu[i++] = 0x1; for (; i % 16; ++i) commit 4e7ec72a1b7cdfdbe895379949a71201c124e0f2 Author: Leo Liu <[email protected]> Date: Thu Mar 17 11:30:57 2016 -0400 tests/amdgpu: add interface to adapt firmware requirement Signed-off-by: Leo Liu <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]> diff --git a/tests/amdgpu/cs_tests.c b/tests/amdgpu/cs_tests.c index dfbf5af..c6930c0 100644 --- a/tests/amdgpu/cs_tests.c +++ b/tests/amdgpu/cs_tests.c @@ -266,9 +266,12 @@ static void amdgpu_cs_uvd_decode(void) r = amdgpu_bo_cpu_map(buf_handle, (void **)&ptr); CU_ASSERT_EQUAL(r, 0); - memcpy(ptr, uvd_decode_msg, sizeof(uvd_decode_msg)); - if (family_id >= AMDGPU_FAMILY_VI) + memcpy(ptr, uvd_decode_msg, sizeof(uvd_create_msg)); + if (family_id >= AMDGPU_FAMILY_VI) { ptr[0x10] = 7; + ptr[0x98] = 0xb0; + ptr[0x99] = 0x1; + } ptr += 4*1024; memset(ptr, 0, 4*1024); commit 3f5b31939cd3490225a52e4e11337a1b355b2635 Author: Alex Deucher <[email protected]> Date: Fri Feb 19 19:28:23 2016 -0500 tests/amdgpu: expand write/copy tests to compute Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]> diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c index 05ab145..e512bda 100644 --- a/tests/amdgpu/basic_tests.c +++ b/tests/amdgpu/basic_tests.c @@ -445,17 +445,17 @@ static void amdgpu_command_submission_gfx_shared_ib(void) CU_ASSERT_EQUAL(r, 0); } -static void amdgpu_command_submission_cp_write_data(void) +static void amdgpu_command_submission_gfx_cp_write_data(void) { amdgpu_command_submission_write_linear_helper(AMDGPU_HW_IP_GFX); } -static void amdgpu_command_submission_cp_const_fill(void) +static void amdgpu_command_submission_gfx_cp_const_fill(void) { amdgpu_command_submission_const_fill_helper(AMDGPU_HW_IP_GFX); } -static void amdgpu_command_submission_cp_copy_data(void) +static void amdgpu_command_submission_gfx_cp_copy_data(void) { amdgpu_command_submission_copy_linear_helper(AMDGPU_HW_IP_GFX); } @@ -463,11 +463,11 @@ static void amdgpu_command_submission_cp_copy_data(void) static void amdgpu_command_submission_gfx(void) { /* write data using the CP */ - amdgpu_command_submission_cp_write_data(); + amdgpu_command_submission_gfx_cp_write_data(); /* const fill using the CP */ - amdgpu_command_submission_cp_const_fill(); + amdgpu_command_submission_gfx_cp_const_fill(); /* copy data using the CP */ - amdgpu_command_submission_cp_copy_data(); + amdgpu_command_submission_gfx_cp_copy_data(); /* separate IB buffers for multi-IB submission */ amdgpu_command_submission_gfx_separate_ibs(); /* shared IB buffer for multi-IB submission */ @@ -602,7 +602,7 @@ static void amdgpu_semaphore_test(void) CU_ASSERT_EQUAL(r, 0); } -static void amdgpu_command_submission_compute(void) +static void amdgpu_command_submission_compute_nop(void) { amdgpu_context_handle context_handle; amdgpu_bo_handle ib_result_handle; @@ -673,6 +673,33 @@ static void amdgpu_command_submission_compute(void) CU_ASSERT_EQUAL(r, 0); } +static void amdgpu_command_submission_compute_cp_write_data(void) +{ + amdgpu_command_submission_write_linear_helper(AMDGPU_HW_IP_COMPUTE); +} + +static void amdgpu_command_submission_compute_cp_const_fill(void) +{ + amdgpu_command_submission_const_fill_helper(AMDGPU_HW_IP_COMPUTE); +} + +static void amdgpu_command_submission_compute_cp_copy_data(void) +{ + amdgpu_command_submission_copy_linear_helper(AMDGPU_HW_IP_COMPUTE); +} + +static void amdgpu_command_submission_compute(void) +{ + /* write data using the CP */ + amdgpu_command_submission_compute_cp_write_data(); + /* const fill using the CP */ + amdgpu_command_submission_compute_cp_const_fill(); + /* copy data using the CP */ + amdgpu_command_submission_compute_cp_copy_data(); + /* nop test */ + amdgpu_command_submission_compute_nop(); +} + /* * caller need create/release: * pm4_src, resources, ib_info, and ibs_request commit b7a51965e1c7a6e988c4882254ca21aa184f6396 Author: Alex Deucher <[email protected]> Date: Fri Feb 19 19:22:51 2016 -0500 tests/amdgpu: expand write/copy tests to compute Uses same packets as gfx. Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]> diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c index 599c090..05ab145 100644 --- a/tests/amdgpu/basic_tests.c +++ b/tests/amdgpu/basic_tests.c @@ -813,7 +813,8 @@ static void amdgpu_command_submission_write_linear_helper(unsigned ip_type) pm4[i++] = sdma_write_length; while(j++ < sdma_write_length) pm4[i++] = 0xdeadbeaf; - } else if (ip_type == AMDGPU_HW_IP_GFX) { + } else if ((ip_type == AMDGPU_HW_IP_GFX) || + (ip_type == AMDGPU_HW_IP_COMPUTE)) { pm4[i++] = PACKET3(PACKET3_WRITE_DATA, 2 + sdma_write_length); pm4[i++] = WRITE_DATA_DST_SEL(5) | WR_CONFIRM; pm4[i++] = 0xfffffffc & bo_mc; @@ -911,7 +912,8 @@ static void amdgpu_command_submission_const_fill_helper(unsigned ip_type) pm4[i++] = (0xffffffff00000000 & bo_mc) >> 32; pm4[i++] = 0xdeadbeaf; pm4[i++] = sdma_write_length; - } else if (ip_type == AMDGPU_HW_IP_GFX) { + } else if ((ip_type == AMDGPU_HW_IP_GFX) || + (ip_type == AMDGPU_HW_IP_COMPUTE)) { pm4[i++] = PACKET3(PACKET3_DMA_DATA, 5); pm4[i++] = PACKET3_DMA_DATA_ENGINE(0) | PACKET3_DMA_DATA_DST_SEL(0) | @@ -1030,7 +1032,8 @@ static void amdgpu_command_submission_copy_linear_helper(unsigned ip_type) pm4[i++] = (0xffffffff00000000 & bo1_mc) >> 32; pm4[i++] = 0xffffffff & bo2_mc; pm4[i++] = (0xffffffff00000000 & bo2_mc) >> 32; - } else if (ip_type == AMDGPU_HW_IP_GFX) { + } else if ((ip_type == AMDGPU_HW_IP_GFX) || + (ip_type == AMDGPU_HW_IP_COMPUTE)) { pm4[i++] = PACKET3(PACKET3_DMA_DATA, 5); pm4[i++] = PACKET3_DMA_DATA_ENGINE(0) | PACKET3_DMA_DATA_DST_SEL(0) | ------------------------------------------------------------------------------ Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j -- _______________________________________________ Dri-patches mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dri-patches