diff options
| author | James Zhu <James.Zhu@amd.com> | 2023-02-28 14:16:38 -0500 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2023-06-09 09:59:27 -0400 | 
| commit | be3800f57c3b0fb39dc732345279db76a50559a3 (patch) | |
| tree | 75bae42871096f08c579c7013b4c8494532c7554 /drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | |
| parent | 2c1c7ba457d4ecf475c0e220ac5359971355c6eb (diff) | |
drm/amdgpu: find partition ID when open device
Find partition ID when open device from render device minor.
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-and-tested-by: Philip Yang<Philip.Yang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | 29 | 
1 files changed, 29 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c index 8b28b18e4291..9b627a8b1d5c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c @@ -335,3 +335,32 @@ void amdgpu_xcp_dev_unplug(struct amdgpu_device *adev)  		drm_dev_unplug(adev->xcp_mgr->xcp[i].ddev);  } +int amdgpu_xcp_open_device(struct amdgpu_device *adev, +			   struct amdgpu_fpriv *fpriv, +			   struct drm_file *file_priv) +{ +	int i; + +	if (!adev->xcp_mgr) +		return 0; + +	fpriv->xcp_id = ~0; +	for (i = 0; i < MAX_XCP; ++i) { +		if (!adev->xcp_mgr->xcp[i].ddev) +			break; + +		if (file_priv->minor == adev->xcp_mgr->xcp[i].ddev->render) { +			if (adev->xcp_mgr->xcp[i].valid == FALSE) { +				dev_err(adev->dev, "renderD%d partition %d not valid!", +						file_priv->minor->index, i); +				return -ENOENT; +			} +			dev_dbg(adev->dev, "renderD%d partition %d openned!", +					file_priv->minor->index, i); +			fpriv->xcp_id = i; +			break; +		} +	} +	return 0; +} + | 
