for RLC SPM interface.

Signed-off-by: James Zhu <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c | 18 ++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h |  1 +
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
index 08d62183b2e3..531d6370bb94 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
@@ -618,5 +618,5 @@ void amdgpu_rlc_spm_release(struct amdgpu_device *adev, int 
xcc_id, struct amdgp
 void amdgpu_rlc_spm_interrupt(struct amdgpu_device *adev, int xcc_id)
 {
        if (adev->kfd.dev)
-               return; /* TODO: */
+               amdgpu_spm_interrupt(adev, xcc_id);
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
index 181aca333151..619ff4ce0773 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.c
@@ -60,3 +60,21 @@ void amdgpu_spm_mgr_fini(struct amdgpu_spm_mgr *spm_mgr)
                spm_mgr->file = NULL;
        }
 }
+
+void amdgpu_spm_interrupt(struct amdgpu_device *adev, int xcc_id)
+{
+       uint8_t  xcp_id;
+       struct amdgpu_spm_mgr *spm_mgr;
+
+       xcp_id = adev->xcp_mgr ?
+               fls(amdgpu_xcp_get_partition(adev->xcp_mgr, AMDGPU_XCP_GFX, 
xcc_id)) - 1 : 0;
+
+       spm_mgr = &(adev->prof_mgr.prof_xcp_mgr[xcp_id].spm_mgr);
+
+       if (!spm_mgr) {
+               dev_dbg(adev->dev, "%s XCP ID = %d", __func__, xcp_id);
+               return;
+       }
+
+       /* TODO */
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
index e8a44fc1d278..1460b87dc55d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_spm.h
@@ -29,5 +29,6 @@ struct amdgpu_spm_mgr {
 
 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);
 
 #endif
-- 
2.34.1

Reply via email to