Re: [PATCH v3 2/2] drm/amdgpu: update kernel vcn ring test

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2023-07-10 16:19, Liu, Leo wrote:
[AMD Official Use Only - General]

[AMD Official Use Only - General]

-----Original Message-----
From: Jamadar, Saleemkhan <Saleemkhan.Jamadar@xxxxxxx>
Sent: Monday, July 10, 2023 12:54 PM
To: Jamadar, Saleemkhan <Saleemkhan.Jamadar@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Liu, Leo <Leo.Liu@xxxxxxx>; Gopalakrishnan, Veerabadhran (Veera) <Veerabadhran.Gopalakrishnan@xxxxxxx>; Sundararaju, Sathishkumar <Sathishkumar.Sundararaju@xxxxxxx>
Cc: Koenig, Christian <Christian.Koenig@xxxxxxx>; Rao, Srinath <Srinath.rao@xxxxxxx>
Subject: [PATCH v3 2/2] drm/amdgpu: update kernel vcn ring test

add session context buffer to decoder ring test fro vcn v1 to v3.

v3 - correct the cmd for sesssion ctx buf
v2 - add the buffer into IB (Leo liu)

Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar@xxxxxxx>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 14 ++++++++++++++
  1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 76e9a2418286..4ee5f933e420 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -521,6 +521,7 @@ static int amdgpu_vcn_dec_send_msg(struct amdgpu_ring *ring,
                                    struct dma_fence **fence)
  {
         u64 addr = AMDGPU_GPU_PAGE_ALIGN(ib_msg->gpu_addr);
+       uint64_t session_ctx_buf_gaddr = AMDGPU_GPU_PAGE_ALIGN(ib_msg->gpu_addr + 8192);
         struct amdgpu_device *adev = ring->adev;
         struct dma_fence *f = NULL;
         struct amdgpu_job *job;
@@ -546,6 +547,19 @@ static int amdgpu_vcn_dec_send_msg(struct amdgpu_ring *ring,
         }
         ib->length_dw = 16;

This line above can be removed. With that the patch is:
Reviewed-by: Leo Liu <leo.liu@xxxxxxx>

I think we should rework the lines above of this line for msg buffer, put the session ctx buffer right behind it, and no need fill the nop command in between, so make the code cleaner.

Regards,

Leo


+       ib->ptr[ib->length_dw++] = PACKET0(adev->vcn.internal.data0, 0);
+       ib->ptr[ib->length_dw++] = lower_32_bits(session_ctx_buf_gaddr);
+       ib->ptr[ib->length_dw++] = PACKET0(adev->vcn.internal.data1, 0);
+       ib->ptr[ib->length_dw++] = upper_32_bits(session_ctx_buf_gaddr);
+       /* session ctx buffer cmd */
+       ib->ptr[ib->length_dw++] = PACKET0(adev->vcn.internal.cmd, 0xa);
+       ib->ptr[ib->length_dw++] = 0;
+       for (i = ib->length_dw; i < 32; i += 2) {
+               ib->ptr[i] = PACKET0(adev->vcn.internal.nop, 0);
+               ib->ptr[i+1] = 0;
+       }
+       ib->length_dw = 32;
+
         r = amdgpu_job_submit_direct(job, ring, &f);
         if (r)
                 goto err_free;
--
2.25.1




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux