summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c41
1 files changed, 11 insertions, 30 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
index 84de9d0b..762cc10a 100644
--- a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
@@ -41,7 +41,7 @@ struct vgpu_fecs_trace {
41 void *buf; 41 void *buf;
42}; 42};
43 43
44static int vgpu_fecs_trace_init(struct gk20a *g) 44int vgpu_fecs_trace_init(struct gk20a *g)
45{ 45{
46 struct device *dev = dev_from_gk20a(g); 46 struct device *dev = dev_from_gk20a(g);
47 struct device_node *np = dev->of_node; 47 struct device_node *np = dev->of_node;
@@ -102,7 +102,7 @@ fail:
102 return err; 102 return err;
103} 103}
104 104
105static int vgpu_fecs_trace_deinit(struct gk20a *g) 105int vgpu_fecs_trace_deinit(struct gk20a *g)
106{ 106{
107 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 107 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
108 108
@@ -112,7 +112,7 @@ static int vgpu_fecs_trace_deinit(struct gk20a *g)
112 return 0; 112 return 0;
113} 113}
114 114
115static int vgpu_fecs_trace_enable(struct gk20a *g) 115int vgpu_fecs_trace_enable(struct gk20a *g)
116{ 116{
117 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 117 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
118 struct tegra_vgpu_cmd_msg msg = { 118 struct tegra_vgpu_cmd_msg msg = {
@@ -128,7 +128,7 @@ static int vgpu_fecs_trace_enable(struct gk20a *g)
128 return err; 128 return err;
129} 129}
130 130
131static int vgpu_fecs_trace_disable(struct gk20a *g) 131int vgpu_fecs_trace_disable(struct gk20a *g)
132{ 132{
133 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 133 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
134 struct tegra_vgpu_cmd_msg msg = { 134 struct tegra_vgpu_cmd_msg msg = {
@@ -144,14 +144,14 @@ static int vgpu_fecs_trace_disable(struct gk20a *g)
144 return err; 144 return err;
145} 145}
146 146
147static bool vpgpu_fecs_trace_is_enabled(struct gk20a *g) 147bool vgpu_fecs_trace_is_enabled(struct gk20a *g)
148{ 148{
149 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 149 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
150 150
151 return (vcst && vcst->enabled); 151 return (vcst && vcst->enabled);
152} 152}
153 153
154static int vgpu_fecs_trace_poll(struct gk20a *g) 154int vgpu_fecs_trace_poll(struct gk20a *g)
155{ 155{
156 struct tegra_vgpu_cmd_msg msg = { 156 struct tegra_vgpu_cmd_msg msg = {
157 .cmd = TEGRA_VGPU_CMD_FECS_TRACE_POLL, 157 .cmd = TEGRA_VGPU_CMD_FECS_TRACE_POLL,
@@ -165,7 +165,7 @@ static int vgpu_fecs_trace_poll(struct gk20a *g)
165 return err; 165 return err;
166} 166}
167 167
168static int vgpu_alloc_user_buffer(struct gk20a *g, void **buf, size_t *size) 168int vgpu_alloc_user_buffer(struct gk20a *g, void **buf, size_t *size)
169{ 169{
170 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 170 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
171 171
@@ -174,12 +174,12 @@ static int vgpu_alloc_user_buffer(struct gk20a *g, void **buf, size_t *size)
174 return 0; 174 return 0;
175} 175}
176 176
177static int vgpu_free_user_buffer(struct gk20a *g) 177int vgpu_free_user_buffer(struct gk20a *g)
178{ 178{
179 return 0; 179 return 0;
180} 180}
181 181
182static int vgpu_mmap_user_buffer(struct gk20a *g, struct vm_area_struct *vma) 182int vgpu_mmap_user_buffer(struct gk20a *g, struct vm_area_struct *vma)
183{ 183{
184 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 184 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
185 unsigned long size = vcst->cookie->size; 185 unsigned long size = vcst->cookie->size;
@@ -194,7 +194,7 @@ static int vgpu_mmap_user_buffer(struct gk20a *g, struct vm_area_struct *vma)
194 vma->vm_page_prot); 194 vma->vm_page_prot);
195} 195}
196 196
197static int vgpu_fecs_trace_max_entries(struct gk20a *g, 197int vgpu_fecs_trace_max_entries(struct gk20a *g,
198 struct nvgpu_ctxsw_trace_filter *filter) 198 struct nvgpu_ctxsw_trace_filter *filter)
199{ 199{
200 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace; 200 struct vgpu_fecs_trace *vcst = (struct vgpu_fecs_trace *)g->fecs_trace;
@@ -206,7 +206,7 @@ static int vgpu_fecs_trace_max_entries(struct gk20a *g,
206#error "FECS trace filter size mismatch!" 206#error "FECS trace filter size mismatch!"
207#endif 207#endif
208 208
209static int vgpu_fecs_trace_set_filter(struct gk20a *g, 209int vgpu_fecs_trace_set_filter(struct gk20a *g,
210 struct nvgpu_ctxsw_trace_filter *filter) 210 struct nvgpu_ctxsw_trace_filter *filter)
211{ 211{
212 struct tegra_vgpu_cmd_msg msg = { 212 struct tegra_vgpu_cmd_msg msg = {
@@ -223,25 +223,6 @@ static int vgpu_fecs_trace_set_filter(struct gk20a *g,
223 return err; 223 return err;
224} 224}
225 225
226void vgpu_init_fecs_trace_ops(struct gpu_ops *ops)
227{
228 ops->fecs_trace.init = vgpu_fecs_trace_init;
229 ops->fecs_trace.deinit = vgpu_fecs_trace_deinit;
230 ops->fecs_trace.enable = vgpu_fecs_trace_enable;
231 ops->fecs_trace.disable = vgpu_fecs_trace_disable;
232 ops->fecs_trace.is_enabled = vpgpu_fecs_trace_is_enabled;
233 ops->fecs_trace.reset = NULL;
234 ops->fecs_trace.flush = NULL;
235 ops->fecs_trace.poll = vgpu_fecs_trace_poll;
236 ops->fecs_trace.bind_channel = NULL;
237 ops->fecs_trace.unbind_channel = NULL;
238 ops->fecs_trace.max_entries = vgpu_fecs_trace_max_entries;
239 ops->fecs_trace.alloc_user_buffer = vgpu_alloc_user_buffer;
240 ops->fecs_trace.free_user_buffer = vgpu_free_user_buffer;
241 ops->fecs_trace.mmap_user_buffer = vgpu_mmap_user_buffer;
242 ops->fecs_trace.set_filter = vgpu_fecs_trace_set_filter;
243}
244
245void vgpu_fecs_trace_data_update(struct gk20a *g) 226void vgpu_fecs_trace_data_update(struct gk20a *g)
246{ 227{
247 gk20a_ctxsw_trace_wake_up(g, 0); 228 gk20a_ctxsw_trace_wake_up(g, 0);