drm/amdgpu: Enable doorbell for JPEG5_0_1
authorSathishkumar S <sathishkumar.sundararaju@amd.com>
Thu, 10 Apr 2025 06:28:16 +0000 (11:58 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 21 Apr 2025 14:55:25 +0000 (10:55 -0400)
Enable doorbell for JPEG5_0_1 and adjust index for VCN5_0_1.

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c

index 218e16b68f1de4437dd307a32fe862f59e09b98a..6f73033d78b5a16632c2712e5bdbb16c1513b720 100644 (file)
@@ -156,7 +156,7 @@ static int jpeg_v5_0_1_sw_init(struct amdgpu_ip_block *ip_block)
 
                for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
                        ring = &adev->jpeg.inst[i].ring_dec[j];
-                       ring->use_doorbell = false;
+                       ring->use_doorbell = true;
                        ring->vm_hub = AMDGPU_MMHUB0(adev->jpeg.inst[i].aid_id);
                        if (!amdgpu_sriov_vf(adev)) {
                                ring->doorbell_index =
@@ -264,7 +264,7 @@ static int jpeg_v5_0_1_hw_init(struct amdgpu_ip_block *ip_block)
                        ring = &adev->jpeg.inst[i].ring_dec[j];
                        if (ring->use_doorbell)
                                WREG32_SOC15_OFFSET(VCN, GET_INST(VCN, i), regVCN_JPEG_DB_CTRL,
-                                                   (ring->pipe ? (ring->pipe - 0x15) : 0),
+                                                   ring->pipe,
                                                    ring->doorbell_index <<
                                                    VCN_JPEG_DB_CTRL__OFFSET__SHIFT |
                                                    VCN_JPEG_DB_CTRL__EN_MASK);
index 581d8629b9d956e4fe8555a90e4661626299c907..4b2e6a033831b58e4b2c767f2160cc61e238c7dd 100644 (file)
@@ -126,7 +126,7 @@ static int vcn_v5_0_1_sw_init(struct amdgpu_ip_block *ip_block)
 
                ring = &adev->vcn.inst[i].ring_enc[0];
                ring->use_doorbell = true;
-               ring->doorbell_index = (adev->doorbell_index.vcn.vcn_ring0_1 << 1) + 9 * vcn_inst;
+               ring->doorbell_index = (adev->doorbell_index.vcn.vcn_ring0_1 << 1) + 11 * vcn_inst;
 
                ring->vm_hub = AMDGPU_MMHUB0(adev->vcn.inst[i].aid_id);
                sprintf(ring->name, "vcn_unified_%d", adev->vcn.inst[i].aid_id);
@@ -213,7 +213,7 @@ static int vcn_v5_0_1_hw_init(struct amdgpu_ip_block *ip_block)
                if (ring->use_doorbell)
                        adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
                                ((adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
-                                9 * vcn_inst),
+                                11 * vcn_inst),
                                adev->vcn.inst[i].aid_id);
 
                /* Re-init fw_shared, if required */