summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-04-04 04:32:42 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-10 02:54:26 -0400
commite4464fd552d0bee2ca149c6a51fbf88b0fafb531 (patch)
tree8124ac83f97483839522aaf644e1bde00b128177 /drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h
parentdb2ee5c127afc3c270b0a5c0e74660f0532dafbe (diff)
gpu: nvgpu: use nvgpu list for channel and debug session lists
Use nvgpu list APIs instead of linux list APIs to store channel list in debug session and to store debug session list in channel Jira NVGPU-13 Change-Id: Iaf89524955a155adcb8a24505df6613bd9c4ccfb Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1454690 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h
index e8d2dbe5..beb57664 100644
--- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h
@@ -69,7 +69,7 @@ struct dbg_session_gk20a {
69 struct gk20a *g; 69 struct gk20a *g;
70 70
71 /* list of bound channels, if any */ 71 /* list of bound channels, if any */
72 struct list_head ch_list; 72 struct nvgpu_list_node ch_list;
73 struct nvgpu_mutex ch_list_lock; 73 struct nvgpu_mutex ch_list_lock;
74 74
75 /* event support */ 75 /* event support */
@@ -82,17 +82,31 @@ struct dbg_session_gk20a {
82 82
83struct dbg_session_data { 83struct dbg_session_data {
84 struct dbg_session_gk20a *dbg_s; 84 struct dbg_session_gk20a *dbg_s;
85 struct list_head dbg_s_entry; 85 struct nvgpu_list_node dbg_s_entry;
86};
87
88static inline struct dbg_session_data *
89dbg_session_data_from_dbg_s_entry(struct nvgpu_list_node *node)
90{
91 return (struct dbg_session_data *)
92 ((uintptr_t)node - offsetof(struct dbg_session_data, dbg_s_entry));
86}; 93};
87 94
88struct dbg_session_channel_data { 95struct dbg_session_channel_data {
89 struct file *ch_f; 96 struct file *ch_f;
90 int channel_fd; 97 int channel_fd;
91 int chid; 98 int chid;
92 struct list_head ch_entry; 99 struct nvgpu_list_node ch_entry;
93 struct dbg_session_data *session_data; 100 struct dbg_session_data *session_data;
94}; 101};
95 102
103static inline struct dbg_session_channel_data *
104dbg_session_channel_data_from_ch_entry(struct nvgpu_list_node *node)
105{
106 return (struct dbg_session_channel_data *)
107 ((uintptr_t)node - offsetof(struct dbg_session_channel_data, ch_entry));
108};
109
96struct dbg_profiler_object_data { 110struct dbg_profiler_object_data {
97 int session_id; 111 int session_id;
98 u32 prof_handle; 112 u32 prof_handle;