Commit c52b6c37 authored by Likun Gao's avatar Likun Gao Committed by Alex Deucher
Browse files

drm/amdgpu: correct SDMA instance number for soc v1_0



Calculate sdma instance number according to xcc_mask and
num_inst_per_xcc, and correct adev->sdma.sdma_mask according
to totally sdma instance number.

Signed-off-by: default avatarLikun Gao <Likun.Gao@amd.com>
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1394a492
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -823,7 +823,7 @@ int soc_v1_0_init_soc_config(struct amdgpu_device *adev)
{
	int ret, i;
	int xcc_inst_per_aid = 4;
	uint16_t xcc_mask;
	uint16_t xcc_mask, sdma_mask = 0;

	xcc_mask = adev->gfx.xcc_mask;
	adev->aid_mask = 0;
@@ -833,10 +833,12 @@ int soc_v1_0_init_soc_config(struct amdgpu_device *adev)
	}

	adev->sdma.num_inst_per_xcc = 2;
	adev->sdma.num_instances =
		NUM_XCC(adev->gfx.xcc_mask) * adev->sdma.num_inst_per_xcc;
	adev->sdma.sdma_mask =
		GENMASK(adev->sdma.num_instances - 1, 0);
	for_each_inst(i, adev->gfx.xcc_mask)
		sdma_mask |=
			GENMASK(adev->sdma.num_inst_per_xcc - 1, 0) <<
			(i * adev->sdma.num_inst_per_xcc);
	adev->sdma.sdma_mask = sdma_mask;
	adev->sdma.num_instances = NUM_XCC(adev->sdma.sdma_mask);

	ret = soc_v1_0_xcp_mgr_init(adev);
	if (ret)