Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04305acb authored by James Zhu's avatar James Zhu Committed by Alex Deucher
Browse files

drm/amdgpu/vg20:Enable 2nd instance queue maping for uvd 7.2



Enable 2nd instance uvd queue maping for uvd 7.2. For user, only one UVD
instance presents. there is two rings for uvd decode, and
4 rings for uvd encode.

Signed-off-by: default avatarJames Zhu <James.Zhu@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b53a6ebc
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ static int amdgpu_identity_map(struct amdgpu_device *adev,
			       u32 ring,
			       struct amdgpu_ring **out_ring)
{
	u32 instance;

	switch (mapper->hw_ip) {
	case AMDGPU_HW_IP_GFX:
		*out_ring = &adev->gfx.gfx_ring[ring];
@@ -77,13 +79,16 @@ static int amdgpu_identity_map(struct amdgpu_device *adev,
		*out_ring = &adev->sdma.instance[ring].ring;
		break;
	case AMDGPU_HW_IP_UVD:
		*out_ring = &adev->uvd.inst->ring;
		instance = ring;
		*out_ring = &adev->uvd.inst[instance].ring;
		break;
	case AMDGPU_HW_IP_VCE:
		*out_ring = &adev->vce.ring[ring];
		break;
	case AMDGPU_HW_IP_UVD_ENC:
		*out_ring = &adev->uvd.inst->ring_enc[ring];
		instance = ring / adev->uvd.num_enc_rings;
		*out_ring =
		&adev->uvd.inst[instance].ring_enc[ring%adev->uvd.num_enc_rings];
		break;
	case AMDGPU_HW_IP_VCN_DEC:
		*out_ring = &adev->vcn.ring_dec;
@@ -240,13 +245,14 @@ int amdgpu_queue_mgr_map(struct amdgpu_device *adev,
		ip_num_rings = adev->sdma.num_instances;
		break;
	case AMDGPU_HW_IP_UVD:
		ip_num_rings = 1;
		ip_num_rings = adev->uvd.num_uvd_inst;
		break;
	case AMDGPU_HW_IP_VCE:
		ip_num_rings = adev->vce.num_rings;
		break;
	case AMDGPU_HW_IP_UVD_ENC:
		ip_num_rings = adev->uvd.num_enc_rings;
		ip_num_rings =
			adev->uvd.num_enc_rings * adev->uvd.num_uvd_inst;
		break;
	case AMDGPU_HW_IP_VCN_DEC:
		ip_num_rings = 1;