summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
diff options
context:
space:
mode:
authorYair Shachar <yair.shachar@amd.com>2015-05-20 13:58:12 +0300
committerOded Gabbay <oded.gabbay@gmail.com>2015-06-03 11:33:06 +0300
commit788bf83db3017f083ebb84c93f101607c769c3a7 (patch)
treeadaff7b892ba670ecaeda13fdead3f813764410f /drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
parentfbeb661bfa895dc14ea1f093edc5e6e80f1b6a95 (diff)
downloadlinux-788bf83db3017f083ebb84c93f101607c769c3a7.tar.gz
drm/amdkfd: Add wave control operation to debugger
The wave control operation supports several command types executed upon existing wave fronts that belong to the currently debugged process. The available commands are: HALT - Freeze wave front(s) execution RESUME - Resume freezed wave front(s) execution KILL - Kill existing wave front(s) Signed-off-by: Yair Shachar <yair.shachar@amd.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c')
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c b/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
index 959be983ac45..7e2c8e2ed959 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
@@ -133,3 +133,19 @@ long kfd_dbgmgr_unregister(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
return 0;
}
+
+long kfd_dbgmgr_wave_control(struct kfd_dbgmgr *pmgr,
+ struct dbg_wave_control_info *wac_info)
+{
+ BUG_ON(!pmgr || !pmgr->dbgdev || !wac_info);
+
+ /* Is the requests coming from the already registered process? */
+ if (pmgr->pasid != wac_info->process->pasid) {
+ pr_debug("H/W debugger support was not registered for requester pasid %d\n",
+ wac_info->process->pasid);
+ return -EINVAL;
+ }
+
+ return (long) pmgr->dbgdev->dbgdev_wave_control(pmgr->dbgdev, wac_info);
+}
+