drm/amdgpu: Add callback to fill xcp memory id
Add callback in xcp interface to fill xcp memory id information. Memory id is used to identify the range/partition of an XCP from the available memory partitions in device. Also, fill the id information. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Le Ma <le.ma@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
a433f1f594
commit
da539b213d
|
@ -116,6 +116,7 @@ static void __amdgpu_xcp_add_block(struct amdgpu_xcp_mgr *xcp_mgr, int xcp_id,
|
|||
static int __amdgpu_xcp_init(struct amdgpu_xcp_mgr *xcp_mgr, int num_xcps)
|
||||
{
|
||||
struct amdgpu_xcp_ip ip;
|
||||
uint8_t mem_id;
|
||||
int i, j, ret;
|
||||
|
||||
for (i = 0; i < MAX_XCP; ++i)
|
||||
|
@ -130,6 +131,17 @@ static int __amdgpu_xcp_init(struct amdgpu_xcp_mgr *xcp_mgr, int num_xcps)
|
|||
|
||||
__amdgpu_xcp_add_block(xcp_mgr, i, &ip);
|
||||
}
|
||||
|
||||
xcp_mgr->xcp[i].id = i;
|
||||
|
||||
if (xcp_mgr->funcs->get_xcp_mem_id) {
|
||||
ret = xcp_mgr->funcs->get_xcp_mem_id(
|
||||
xcp_mgr, &xcp_mgr->xcp[i], &mem_id);
|
||||
if (ret)
|
||||
continue;
|
||||
else
|
||||
xcp_mgr->xcp[i].mem_id = mem_id;
|
||||
}
|
||||
}
|
||||
|
||||
xcp_mgr->num_xcps = num_xcps;
|
||||
|
|
|
@ -68,7 +68,7 @@ struct amdgpu_xcp {
|
|||
struct amdgpu_xcp_ip ip[AMDGPU_XCP_MAX_BLOCKS];
|
||||
|
||||
uint8_t id;
|
||||
uint8_t mem_node;
|
||||
uint8_t mem_id;
|
||||
bool valid;
|
||||
};
|
||||
|
||||
|
@ -89,6 +89,8 @@ struct amdgpu_xcp_mgr_funcs {
|
|||
int (*get_ip_details)(struct amdgpu_xcp_mgr *xcp_mgr, int xcp_id,
|
||||
enum AMDGPU_XCP_IP_BLOCK ip_id,
|
||||
struct amdgpu_xcp_ip *ip);
|
||||
int (*get_xcp_mem_id)(struct amdgpu_xcp_mgr *xcp_mgr,
|
||||
struct amdgpu_xcp *xcp, uint8_t *mem_id);
|
||||
|
||||
int (*prepare_suspend)(struct amdgpu_xcp_mgr *xcp_mgr, int xcp_id);
|
||||
int (*suspend)(struct amdgpu_xcp_mgr *xcp_mgr, int xcp_id);
|
||||
|
|
Loading…
Reference in New Issue