Commit 0b4d79da authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amdgpu: Assign unique id to compute partition



Assign unique id to compute partition. This is the unique id of the
first XCD instance belonging to the partition.

Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarAsad Kamal <asad.kamal@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6fa82168
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -120,6 +120,25 @@ static void __amdgpu_xcp_add_block(struct amdgpu_xcp_mgr *xcp_mgr, int xcp_id,
	xcp->valid = true;
}

static void __amdgpu_xcp_set_unique_id(struct amdgpu_xcp_mgr *xcp_mgr,
				       int xcp_id)
{
	struct amdgpu_xcp *xcp = &xcp_mgr->xcp[xcp_id];
	struct amdgpu_device *adev = xcp_mgr->adev;
	uint32_t inst_mask;
	uint64_t uid;
	int i;

	if (!amdgpu_xcp_get_inst_details(xcp, AMDGPU_XCP_GFX, &inst_mask) &&
	    inst_mask) {
		i = GET_INST(GC, (ffs(inst_mask) - 1));
		uid = amdgpu_device_get_uid(xcp_mgr->adev->uid_info,
					    AMDGPU_UID_TYPE_XCD, i);
		if (uid)
			xcp->unique_id = uid;
	}
}

int amdgpu_xcp_init(struct amdgpu_xcp_mgr *xcp_mgr, int num_xcps, int mode)
{
	struct amdgpu_device *adev = xcp_mgr->adev;
@@ -158,6 +177,7 @@ int amdgpu_xcp_init(struct amdgpu_xcp_mgr *xcp_mgr, int num_xcps, int mode)
			else
				xcp_mgr->xcp[i].mem_id = mem_id;
		}
		__amdgpu_xcp_set_unique_id(xcp_mgr, i);
	}

	xcp_mgr->num_xcps = num_xcps;
+1 −0
Original line number Diff line number Diff line
@@ -112,6 +112,7 @@ struct amdgpu_xcp {
	struct amdgpu_sched	gpu_sched[AMDGPU_HW_IP_NUM][AMDGPU_RING_PRIO_MAX];
	struct amdgpu_xcp_mgr *xcp_mgr;
	struct kobject kobj;
	uint64_t unique_id;
};

struct amdgpu_xcp_mgr {