for stream performance monitor.
Signed-off-by: James Zhu <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_profiler.c | 3 +++
drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c | 14 ++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h | 3 +++
3 files changed, 20 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_profiler.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_profiler.c
index 05ecb8e3855a..b760b0720591 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_profiler.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_profiler.c
@@ -50,6 +50,9 @@ int amdgpu_profiler_ioctl(
AMDGPU_PROFILER_VERSION_MINOR;
return 0;
+ case AMDGPU_PROFILER_SPM:
+ return amdgpu_spm_ioctl(dev, &args->spm, filp);
+
default:
dev_err(adev->dev, "Invalid option: %i", args->op);
return -EINVAL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
index 619ff4ce0773..e7d16359551f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
@@ -47,6 +47,20 @@ static int amdgpu_spm_release(struct amdgpu_spm_mgr
*spm_mgr, struct drm_file *f
return 0;
}
+int amdgpu_spm_ioctl(struct drm_device *dev, void __user *data,
+ struct drm_file *filp)
+{
+ struct amdgpu_fpriv *fpriv = filp->driver_priv;
+ struct amdgpu_device *adev = fpriv_to_adev(fpriv);
+ struct drm_amdgpu_spm_args *args = data;
+
+ switch (args->op) {
+ default:
+ dev_err(adev->dev, "Invalid option: %i\n", args->op);
+ return -EINVAL;
+ }
+}
+
int amdgpu_spm_mgr_init(struct amdgpu_spm_mgr *spm_mgr)
{
amdgpu_spm_init_device(spm_mgr);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
index 1460b87dc55d..3728f227bd61 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
@@ -27,6 +27,9 @@ struct amdgpu_spm_mgr {
struct drm_file *file;
};
+int amdgpu_spm_ioctl(struct drm_device *dev, void __user *data,
+ struct drm_file *filp);
+
int amdgpu_spm_mgr_init(struct amdgpu_spm_mgr *spm_mgr);
void amdgpu_spm_mgr_fini(struct amdgpu_spm_mgr *spm_mgr);
void amdgpu_spm_interrupt(struct amdgpu_device *adev, int xcc_id);
--
2.34.1