From patchwork Fri May 13 16:48:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Deucher X-Patchwork-Id: 9092571 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7AA0E9F1C1 for ; Fri, 13 May 2016 16:48:58 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8B3722024C for ; Fri, 13 May 2016 16:48:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 626C720260 for ; Fri, 13 May 2016 16:48:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C13156EAD4; Fri, 13 May 2016 16:48:53 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ig0-x242.google.com (mail-ig0-x242.google.com [IPv6:2607:f8b0:4001:c05::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id E373F6EAD1 for ; Fri, 13 May 2016 16:48:43 +0000 (UTC) Received: by mail-ig0-x242.google.com with SMTP id rc4so1971255igc.0 for ; Fri, 13 May 2016 09:48:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ozD2r2MAyefPLX+Big5TH0yGYETIh3i6lpbbHOWKNLo=; b=atfuCVQbJ3KeTaUWtw4fAnjtrgzweNevpZ2yrVHmdEy9IbFVUxQiPEY3AR3RNwwfTK 1Vib0d+spH6MziOlTcBElfYlb1BJQ4/K2nDR7mJabF5SrB7sUruLOCUhI3Fac1WIzs3q vuAzSWyuAXC4J8OhY5HOFBvdBVmXOUJXthQj+DS6ac0BMi8oOMY+7OnImySrguTYOKyg hhYWXzl1zjNY1ILne6LlXrS2MbaWQhSFiQC2t2gkidKPLmKxKHhKo1cPL78EIgjjAo2i wmc+N/i8Bk0Ztvz+8ok3qJN2eQGafu2Mlso6JRjrsmrtpr3rE1DM/5cAKi7ftbHRLr9O aW4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ozD2r2MAyefPLX+Big5TH0yGYETIh3i6lpbbHOWKNLo=; b=aotKHlXdSV2TDWx/7rPSaVj/2AtlHpdPd+iwck30CPEkLQUdLrklVG5YpnOaIoqcY3 Jv+nNhS6mGW2ZMke8BM4W2iqqmNfCatzAPu+0lDgpVKFenQ1APcvia0jraEMdaXPW1ae muZklEcHvmRDhqGJ1sbCjtYyChd88j4dG4K5iG4bLwrHMe1bEYL52jTfSogM+RQXAPVI RfPi9V96wMGPyLiIIPZkRsQeIyBCT9Y+piSnEFB+omPP9l7brlXDcV27q8mnI4RyQ/26 4nqT4WX/gBnMggfEBAPHfzi+oj2TlXRXk0vpUaRvBbe5gMM26Bwzc5Ny/LZwt/ngfsNq L7XQ== X-Gm-Message-State: AOPr4FU6FsBwXmMUrEE9vBcoUxvPCo1dUjy6gtt+YARxxaMPPoha9vyEG5YNui3Mle+e+g== X-Received: by 10.50.140.193 with SMTP id ri1mr1490164igb.60.1463158122874; Fri, 13 May 2016 09:48:42 -0700 (PDT) Received: from cm.amd.com ([165.204.55.251]) by smtp.gmail.com with ESMTPSA id d1sm1204903igv.5.2016.05.13.09.48.41 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 13 May 2016 09:48:42 -0700 (PDT) From: Alex Deucher X-Google-Original-From: Alex Deucher To: dri-devel@lists.freedesktop.org Subject: [PATCH 4/4] tests/amdgpu: adapt to new polaris10/11 uvd fw Date: Fri, 13 May 2016 12:48:32 -0400 Message-Id: <1463158112-28625-4-git-send-email-alexander.deucher@amd.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1463158112-28625-1-git-send-email-alexander.deucher@amd.com> References: <1463158112-28625-1-git-send-email-alexander.deucher@amd.com> Cc: Sonny Jiang , Alex Deucher X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_WEB, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Sonny Jiang Signed-off-by: Sonny Jiang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher --- tests/amdgpu/cs_tests.c | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) 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)