summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/dbg_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/dbg_vgpu.c29
1 files changed, 8 insertions, 21 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c b/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c
index 416b8903..6e8ab561 100644
--- a/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/dbg_vgpu.c
@@ -27,10 +27,11 @@
27#include "gk20a/channel_gk20a.h" 27#include "gk20a/channel_gk20a.h"
28#include "gk20a/dbg_gpu_gk20a.h" 28#include "gk20a/dbg_gpu_gk20a.h"
29#include "vgpu.h" 29#include "vgpu.h"
30#include "dbg_vgpu.h"
30 31
31#include <nvgpu/bug.h> 32#include <nvgpu/bug.h>
32 33
33static int vgpu_exec_regops(struct dbg_session_gk20a *dbg_s, 34int vgpu_exec_regops(struct dbg_session_gk20a *dbg_s,
34 struct nvgpu_dbg_gpu_reg_op *ops, 35 struct nvgpu_dbg_gpu_reg_op *ops,
35 u64 num_ops) 36 u64 num_ops)
36{ 37{
@@ -76,7 +77,7 @@ fail:
76 return err; 77 return err;
77} 78}
78 79
79static int vgpu_dbg_set_powergate(struct dbg_session_gk20a *dbg_s, __u32 mode) 80int vgpu_dbg_set_powergate(struct dbg_session_gk20a *dbg_s, __u32 mode)
80{ 81{
81 struct tegra_vgpu_cmd_msg msg; 82 struct tegra_vgpu_cmd_msg msg;
82 struct tegra_vgpu_set_powergate_params *p = &msg.params.set_powergate; 83 struct tegra_vgpu_set_powergate_params *p = &msg.params.set_powergate;
@@ -124,7 +125,7 @@ static int vgpu_sendrecv_prof_cmd(struct dbg_session_gk20a *dbg_s, u32 mode)
124 return err; 125 return err;
125} 126}
126 127
127static bool vgpu_check_and_set_global_reservation( 128bool vgpu_check_and_set_global_reservation(
128 struct dbg_session_gk20a *dbg_s, 129 struct dbg_session_gk20a *dbg_s,
129 struct dbg_profiler_object_data *prof_obj) 130 struct dbg_profiler_object_data *prof_obj)
130{ 131{
@@ -144,7 +145,7 @@ static bool vgpu_check_and_set_global_reservation(
144 return false; 145 return false;
145} 146}
146 147
147static bool vgpu_check_and_set_context_reservation( 148bool vgpu_check_and_set_context_reservation(
148 struct dbg_session_gk20a *dbg_s, 149 struct dbg_session_gk20a *dbg_s,
149 struct dbg_profiler_object_data *prof_obj) 150 struct dbg_profiler_object_data *prof_obj)
150{ 151{
@@ -167,7 +168,7 @@ static bool vgpu_check_and_set_context_reservation(
167 return false; 168 return false;
168} 169}
169 170
170static void vgpu_release_profiler_reservation( 171void vgpu_release_profiler_reservation(
171 struct dbg_session_gk20a *dbg_s, 172 struct dbg_session_gk20a *dbg_s,
172 struct dbg_profiler_object_data *prof_obj) 173 struct dbg_profiler_object_data *prof_obj)
173{ 174{
@@ -205,26 +206,12 @@ static int vgpu_sendrecv_perfbuf_cmd(struct gk20a *g, u64 offset, u32 size)
205 return err; 206 return err;
206} 207}
207 208
208static int vgpu_perfbuffer_enable(struct gk20a *g, u64 offset, u32 size) 209int vgpu_perfbuffer_enable(struct gk20a *g, u64 offset, u32 size)
209{ 210{
210 return vgpu_sendrecv_perfbuf_cmd(g, offset, size); 211 return vgpu_sendrecv_perfbuf_cmd(g, offset, size);
211} 212}
212 213
213static int vgpu_perfbuffer_disable(struct gk20a *g) 214int vgpu_perfbuffer_disable(struct gk20a *g)
214{ 215{
215 return vgpu_sendrecv_perfbuf_cmd(g, 0, 0); 216 return vgpu_sendrecv_perfbuf_cmd(g, 0, 0);
216} 217}
217
218void vgpu_init_dbg_session_ops(struct gpu_ops *gops)
219{
220 gops->dbg_session_ops.exec_reg_ops = vgpu_exec_regops;
221 gops->dbg_session_ops.dbg_set_powergate = vgpu_dbg_set_powergate;
222 gops->dbg_session_ops.check_and_set_global_reservation =
223 vgpu_check_and_set_global_reservation;
224 gops->dbg_session_ops.check_and_set_context_reservation =
225 vgpu_check_and_set_context_reservation;
226 gops->dbg_session_ops.release_profiler_reservation =
227 vgpu_release_profiler_reservation;
228 gops->dbg_session_ops.perfbuffer_enable = vgpu_perfbuffer_enable;
229 gops->dbg_session_ops.perfbuffer_disable = vgpu_perfbuffer_disable;
230}