summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/common/linux/ctxsw_trace.c27
-rw-r--r--drivers/gpu/nvgpu/common/linux/ctxsw_trace.h39
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl.c4
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_channel.c3
-rw-r--r--drivers/gpu/nvgpu/common/linux/module.c4
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c3
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c2
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c2
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/ctxsw_trace.h (renamed from drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.h)49
-rw-r--r--drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c4
-rw-r--r--drivers/gpu/nvgpu/vgpu/fifo_vgpu.c1
-rw-r--r--drivers/gpu/nvgpu/vgpu/vgpu.c2
16 files changed, 88 insertions, 60 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ctxsw_trace.c b/drivers/gpu/nvgpu/common/linux/ctxsw_trace.c
index 81a54b7e..a4a07a4c 100644
--- a/drivers/gpu/nvgpu/common/linux/ctxsw_trace.c
+++ b/drivers/gpu/nvgpu/common/linux/ctxsw_trace.c
@@ -1,26 +1,19 @@
1/* 1/*
2 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a 4 * This program is free software; you can redistribute it and/or modify it
5 * copy of this software and associated documentation files (the "Software"), 5 * under the terms and conditions of the GNU General Public License,
6 * to deal in the Software without restriction, including without limitation 6 * version 2, as published by the Free Software Foundation.
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 * 7 *
11 * The above copyright notice and this permission notice shall be included in 8 * This program is distributed in the hope it will be useful, but WITHOUT
12 * all copies or substantial portions of the Software. 9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
13 * 12 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 * You should have received a copy of the GNU General Public License
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
21 */ 15 */
22 16
23#include <asm/barrier.h>
24#include <linux/wait.h> 17#include <linux/wait.h>
25#include <linux/ktime.h> 18#include <linux/ktime.h>
26#include <linux/uaccess.h> 19#include <linux/uaccess.h>
@@ -30,7 +23,6 @@
30 23
31#include "gk20a/gk20a.h" 24#include "gk20a/gk20a.h"
32#include "gk20a/gr_gk20a.h" 25#include "gk20a/gr_gk20a.h"
33#include "gk20a/ctxsw_trace_gk20a.h"
34#include "gk20a/platform_gk20a.h" 26#include "gk20a/platform_gk20a.h"
35 27
36#include <nvgpu/kmem.h> 28#include <nvgpu/kmem.h>
@@ -39,6 +31,7 @@
39#include <nvgpu/barrier.h> 31#include <nvgpu/barrier.h>
40 32
41#include "os_linux.h" 33#include "os_linux.h"
34#include "ctxsw_trace.h"
42 35
43#include <nvgpu/hw/gk20a/hw_ctxsw_prog_gk20a.h> 36#include <nvgpu/hw/gk20a/hw_ctxsw_prog_gk20a.h>
44#include <nvgpu/hw/gk20a/hw_gr_gk20a.h> 37#include <nvgpu/hw/gk20a/hw_gr_gk20a.h>
diff --git a/drivers/gpu/nvgpu/common/linux/ctxsw_trace.h b/drivers/gpu/nvgpu/common/linux/ctxsw_trace.h
new file mode 100644
index 00000000..88ca7f25
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/ctxsw_trace.h
@@ -0,0 +1,39 @@
1/*
2 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef __CTXSW_TRACE_H__
18#define __CTXSW_TRACE_H__
19
20#include <nvgpu/types.h>
21
22#define GK20A_CTXSW_TRACE_NUM_DEVS 1
23
24struct file;
25struct inode;
26struct poll_table_struct;
27
28struct gk20a;
29
30int gk20a_ctxsw_dev_release(struct inode *inode, struct file *filp);
31int gk20a_ctxsw_dev_open(struct inode *inode, struct file *filp);
32long gk20a_ctxsw_dev_ioctl(struct file *filp,
33 unsigned int cmd, unsigned long arg);
34ssize_t gk20a_ctxsw_dev_read(struct file *filp, char __user *buf,
35 size_t size, loff_t *offs);
36unsigned int gk20a_ctxsw_dev_poll(struct file *filp,
37 struct poll_table_struct *pts);
38
39#endif /* __CTXSW_TRACE_H__ */
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl.c b/drivers/gpu/nvgpu/common/linux/ioctl.c
index 7e6df9df..c1053268 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl.c
@@ -19,11 +19,12 @@
19#include <linux/file.h> 19#include <linux/file.h>
20 20
21#include <nvgpu/nvgpu_common.h> 21#include <nvgpu/nvgpu_common.h>
22#include <nvgpu/ctxsw_trace.h>
22 23
23#include "gk20a/gk20a.h" 24#include "gk20a/gk20a.h"
24#include "gk20a/platform_gk20a.h" 25#include "gk20a/platform_gk20a.h"
25#include "gk20a/dbg_gpu_gk20a.h" 26#include "gk20a/dbg_gpu_gk20a.h"
26#include "gk20a/ctxsw_trace_gk20a.h" 27
27#include "ioctl_channel.h" 28#include "ioctl_channel.h"
28#include "ioctl_ctrl.h" 29#include "ioctl_ctrl.h"
29#include "ioctl_as.h" 30#include "ioctl_as.h"
@@ -31,6 +32,7 @@
31#include "ioctl_dbg.h" 32#include "ioctl_dbg.h"
32#include "module.h" 33#include "module.h"
33#include "os_linux.h" 34#include "os_linux.h"
35#include "ctxsw_trace.h"
34 36
35#define GK20A_NUM_CDEVS 7 37#define GK20A_NUM_CDEVS 7
36 38
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
index 7814aea5..91dfc630 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
@@ -31,12 +31,13 @@
31#include <nvgpu/enabled.h> 31#include <nvgpu/enabled.h>
32 32
33#include "gk20a/gk20a.h" 33#include "gk20a/gk20a.h"
34#include "gk20a/ctxsw_trace_gk20a.h"
35#include "gk20a/dbg_gpu_gk20a.h" 34#include "gk20a/dbg_gpu_gk20a.h"
36#include "gk20a/fence_gk20a.h" 35#include "gk20a/fence_gk20a.h"
37#include "gk20a/platform_gk20a.h" 36#include "gk20a/platform_gk20a.h"
37
38#include "ioctl_channel.h" 38#include "ioctl_channel.h"
39#include "os_linux.h" 39#include "os_linux.h"
40#include "ctxsw_trace.h"
40 41
41static const char *gr_gk20a_graphics_preempt_mode_name(u32 graphics_preempt_mode) 42static const char *gr_gk20a_graphics_preempt_mode_name(u32 graphics_preempt_mode)
42{ 43{
diff --git a/drivers/gpu/nvgpu/common/linux/module.c b/drivers/gpu/nvgpu/common/linux/module.c
index d0abc836..b06f86ab 100644
--- a/drivers/gpu/nvgpu/common/linux/module.c
+++ b/drivers/gpu/nvgpu/common/linux/module.c
@@ -31,12 +31,12 @@
31#include <nvgpu/soc.h> 31#include <nvgpu/soc.h>
32#include <nvgpu/enabled.h> 32#include <nvgpu/enabled.h>
33#include <nvgpu/debug.h> 33#include <nvgpu/debug.h>
34#include <nvgpu/ctxsw_trace.h>
34 35
35#include "gk20a/platform_gk20a.h" 36#include "gk20a/platform_gk20a.h"
36#include "sysfs.h" 37#include "sysfs.h"
37#include "vgpu/vgpu.h" 38#include "vgpu/vgpu.h"
38#include "scale.h" 39#include "scale.h"
39#include "gk20a/ctxsw_trace_gk20a.h"
40#include "pci.h" 40#include "pci.h"
41#include "module.h" 41#include "module.h"
42#include "intr.h" 42#include "intr.h"
@@ -48,9 +48,11 @@
48#include "vgpu/vgpu_t19x.h" 48#include "vgpu/vgpu_t19x.h"
49#endif 49#endif
50#endif 50#endif
51
51#include "os_linux.h" 52#include "os_linux.h"
52#include "cde_gm20b.h" 53#include "cde_gm20b.h"
53#include "cde_gp10b.h" 54#include "cde_gp10b.h"
55#include "ctxsw_trace.h"
54 56
55#define CLASS_NAME "nvidia-gpu" 57#define CLASS_NAME "nvidia-gpu"
56/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */ 58/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 546f4164..00d20357 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -42,6 +42,7 @@
42#include <nvgpu/debug.h> 42#include <nvgpu/debug.h>
43#include <nvgpu/ltc.h> 43#include <nvgpu/ltc.h>
44#include <nvgpu/barrier.h> 44#include <nvgpu/barrier.h>
45#include <nvgpu/ctxsw_trace.h>
45 46
46/* 47/*
47 * This is required for nvgpu_vm_find_buf() which is used in the tracing 48 * This is required for nvgpu_vm_find_buf() which is used in the tracing
@@ -51,7 +52,6 @@
51#include <nvgpu/linux/vm.h> 52#include <nvgpu/linux/vm.h>
52 53
53#include "gk20a.h" 54#include "gk20a.h"
54#include "ctxsw_trace_gk20a.h"
55#include "dbg_gpu_gk20a.h" 55#include "dbg_gpu_gk20a.h"
56#include "fence_gk20a.h" 56#include "fence_gk20a.h"
57 57
diff --git a/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c b/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
index 1517d25a..cd206c2a 100644
--- a/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
@@ -34,8 +34,8 @@
34#include <nvgpu/barrier.h> 34#include <nvgpu/barrier.h>
35#include <nvgpu/mm.h> 35#include <nvgpu/mm.h>
36#include <nvgpu/enabled.h> 36#include <nvgpu/enabled.h>
37#include <nvgpu/ctxsw_trace.h>
37 38
38#include "ctxsw_trace_gk20a.h"
39#include "fecs_trace_gk20a.h" 39#include "fecs_trace_gk20a.h"
40#include "gk20a.h" 40#include "gk20a.h"
41#include "gr_gk20a.h" 41#include "gr_gk20a.h"
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index f3ed2efb..58a4180f 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -37,9 +37,9 @@
37#include <nvgpu/debug.h> 37#include <nvgpu/debug.h>
38#include <nvgpu/nvhost.h> 38#include <nvgpu/nvhost.h>
39#include <nvgpu/barrier.h> 39#include <nvgpu/barrier.h>
40#include <nvgpu/ctxsw_trace.h>
40 41
41#include "gk20a.h" 42#include "gk20a.h"
42#include "ctxsw_trace_gk20a.h"
43#include "mm_gk20a.h" 43#include "mm_gk20a.h"
44 44
45#include <nvgpu/hw/gk20a/hw_fifo_gk20a.h> 45#include <nvgpu/hw/gk20a/hw_fifo_gk20a.h>
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 6ca0362b..f2bb6dcf 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -35,13 +35,13 @@
35#include <nvgpu/ltc.h> 35#include <nvgpu/ltc.h>
36#include <nvgpu/vidmem.h> 36#include <nvgpu/vidmem.h>
37#include <nvgpu/mm.h> 37#include <nvgpu/mm.h>
38#include <nvgpu/ctxsw_trace.h>
38 39
39#include <trace/events/gk20a.h> 40#include <trace/events/gk20a.h>
40 41
41#include "gk20a.h" 42#include "gk20a.h"
42#include "channel_sync_gk20a.h" 43#include "channel_sync_gk20a.h"
43 44
44#include "ctxsw_trace_gk20a.h"
45#include "dbg_gpu_gk20a.h" 45#include "dbg_gpu_gk20a.h"
46#include "mc_gk20a.h" 46#include "mc_gk20a.h"
47#include "hal.h" 47#include "hal.h"
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index ef7136fe..a95368c3 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -38,6 +38,7 @@
38#include <nvgpu/debug.h> 38#include <nvgpu/debug.h>
39#include <nvgpu/barrier.h> 39#include <nvgpu/barrier.h>
40#include <nvgpu/mm.h> 40#include <nvgpu/mm.h>
41#include <nvgpu/ctxsw_trace.h>
41 42
42#include "gk20a.h" 43#include "gk20a.h"
43#include "kind_gk20a.h" 44#include "kind_gk20a.h"
@@ -45,7 +46,7 @@
45#include "gr_pri_gk20a.h" 46#include "gr_pri_gk20a.h"
46#include "regops_gk20a.h" 47#include "regops_gk20a.h"
47#include "dbg_gpu_gk20a.h" 48#include "dbg_gpu_gk20a.h"
48#include "ctxsw_trace_gk20a.h" 49
49#include "common/linux/os_linux.h" 50#include "common/linux/os_linux.h"
50 51
51#include <nvgpu/hw/gk20a/hw_ccsr_gk20a.h> 52#include <nvgpu/hw/gk20a/hw_ccsr_gk20a.h>
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 3193a629..0c431385 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -24,7 +24,6 @@
24 24
25#include "gk20a/gk20a.h" 25#include "gk20a/gk20a.h"
26#include "gk20a/fifo_gk20a.h" 26#include "gk20a/fifo_gk20a.h"
27#include "gk20a/ctxsw_trace_gk20a.h"
28#include "gk20a/fecs_trace_gk20a.h" 27#include "gk20a/fecs_trace_gk20a.h"
29#include "gk20a/mm_gk20a.h" 28#include "gk20a/mm_gk20a.h"
30#include "gk20a/dbg_gpu_gk20a.h" 29#include "gk20a/dbg_gpu_gk20a.h"
@@ -87,6 +86,7 @@
87#include <nvgpu/bug.h> 86#include <nvgpu/bug.h>
88#include <nvgpu/bus.h> 87#include <nvgpu/bus.h>
89#include <nvgpu/enabled.h> 88#include <nvgpu/enabled.h>
89#include <nvgpu/ctxsw_trace.h>
90 90
91#include <nvgpu/hw/gp106/hw_proj_gp106.h> 91#include <nvgpu/hw/gp106/hw_proj_gp106.h>
92#include <nvgpu/hw/gp106/hw_fifo_gp106.h> 92#include <nvgpu/hw/gp106/hw_fifo_gp106.h>
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
index bb95f6db..a54a3297 100644
--- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -24,7 +24,6 @@
24 24
25#include "gk20a/gk20a.h" 25#include "gk20a/gk20a.h"
26#include "gk20a/fifo_gk20a.h" 26#include "gk20a/fifo_gk20a.h"
27#include "gk20a/ctxsw_trace_gk20a.h"
28#include "gk20a/fecs_trace_gk20a.h" 27#include "gk20a/fecs_trace_gk20a.h"
29#include "gk20a/mm_gk20a.h" 28#include "gk20a/mm_gk20a.h"
30#include "gk20a/dbg_gpu_gk20a.h" 29#include "gk20a/dbg_gpu_gk20a.h"
@@ -70,6 +69,7 @@
70#include <nvgpu/bug.h> 69#include <nvgpu/bug.h>
71#include <nvgpu/enabled.h> 70#include <nvgpu/enabled.h>
72#include <nvgpu/bus.h> 71#include <nvgpu/bus.h>
72#include <nvgpu/ctxsw_trace.h>
73 73
74#include <nvgpu/hw/gp10b/hw_proj_gp10b.h> 74#include <nvgpu/hw/gp10b/hw_proj_gp10b.h>
75#include <nvgpu/hw/gp10b/hw_fuse_gp10b.h> 75#include <nvgpu/hw/gp10b/hw_fuse_gp10b.h>
diff --git a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/ctxsw_trace.h
index dddb8603..cc6edb49 100644
--- a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/ctxsw_trace.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a 4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"), 5 * copy of this software and associated documentation files (the "Software"),
@@ -20,45 +20,34 @@
20 * DEALINGS IN THE SOFTWARE. 20 * DEALINGS IN THE SOFTWARE.
21 */ 21 */
22 22
23#ifndef __CTXSW_TRACE_GK20A_H 23#ifndef __NVGPU_CTXSW_TRACE_H__
24#define __CTXSW_TRACE_GK20A_H 24#define __NVGPU_CTXSW_TRACE_H__
25 25
26#include <nvgpu/types.h> 26#include <nvgpu/types.h>
27 27
28#define GK20A_CTXSW_TRACE_NUM_DEVS 1
29
30struct file;
31struct inode;
32struct gk20a; 28struct gk20a;
33struct gpu_ops;
34struct nvgpu_ctxsw_trace_entry;
35struct channel_gk20a;
36struct channel_ctx_gk20a;
37struct gk20a_ctxsw_dev;
38struct gk20a_fecs_trace;
39struct tsg_gk20a; 29struct tsg_gk20a;
40struct poll_table_struct; 30struct channel_gk20a;
41 31struct nvgpu_ctxsw_trace_entry;
42int gk20a_ctxsw_dev_release(struct inode *inode, struct file *filp);
43int gk20a_ctxsw_dev_open(struct inode *inode, struct file *filp);
44long gk20a_ctxsw_dev_ioctl(struct file *filp,
45 unsigned int cmd, unsigned long arg);
46ssize_t gk20a_ctxsw_dev_read(struct file *filp, char __user *buf,
47 size_t size, loff_t *offs);
48unsigned int gk20a_ctxsw_dev_poll(struct file *filp,
49 struct poll_table_struct *pts);
50int gk20a_ctxsw_dev_mmap(struct file *filp, struct vm_area_struct *vma);
51int gk20a_ctxsw_dev_ring_alloc(struct gk20a *g, void **buf, size_t *size);
52int gk20a_ctxsw_dev_ring_free(struct gk20a *g);
53int gk20a_ctxsw_dev_mmap_buffer(struct gk20a *g, struct vm_area_struct *vma);
54 32
55int gk20a_ctxsw_trace_init(struct gk20a *g); 33int gk20a_ctxsw_trace_init(struct gk20a *g);
34
35void gk20a_ctxsw_trace_channel_reset(struct gk20a *g, struct channel_gk20a *ch);
36void gk20a_ctxsw_trace_tsg_reset(struct gk20a *g, struct tsg_gk20a *tsg);
37
56void gk20a_ctxsw_trace_cleanup(struct gk20a *g); 38void gk20a_ctxsw_trace_cleanup(struct gk20a *g);
57int gk20a_ctxsw_trace_write(struct gk20a *g, 39int gk20a_ctxsw_trace_write(struct gk20a *g,
58 struct nvgpu_ctxsw_trace_entry *entry); 40 struct nvgpu_ctxsw_trace_entry *entry);
59void gk20a_ctxsw_trace_wake_up(struct gk20a *g, int vmid); 41void gk20a_ctxsw_trace_wake_up(struct gk20a *g, int vmid);
60 42
61void gk20a_ctxsw_trace_channel_reset(struct gk20a *g, struct channel_gk20a *ch); 43#ifdef CONFIG_GK20A_CTXSW_TRACE
62void gk20a_ctxsw_trace_tsg_reset(struct gk20a *g, struct tsg_gk20a *tsg); 44struct file;
45struct vm_area_struct;
46
47int gk20a_ctxsw_dev_mmap(struct file *filp, struct vm_area_struct *vma);
48int gk20a_ctxsw_dev_ring_alloc(struct gk20a *g, void **buf, size_t *size);
49int gk20a_ctxsw_dev_ring_free(struct gk20a *g);
50int gk20a_ctxsw_dev_mmap_buffer(struct gk20a *g, struct vm_area_struct *vma);
51#endif
63 52
64#endif /* __CTXSW_TRACE_GK20A_H */ 53#endif
diff --git a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
index 72f2ae8b..dc7608ff 100644
--- a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c
@@ -24,12 +24,14 @@
24#include <linux/tegra-ivc.h> 24#include <linux/tegra-ivc.h>
25#include <linux/tegra_vgpu.h> 25#include <linux/tegra_vgpu.h>
26 26
27#include <uapi/linux/nvgpu.h>
28
27#include <nvgpu/kmem.h> 29#include <nvgpu/kmem.h>
28#include <nvgpu/bug.h> 30#include <nvgpu/bug.h>
29#include <nvgpu/enabled.h> 31#include <nvgpu/enabled.h>
32#include <nvgpu/ctxsw_trace.h>
30 33
31#include "gk20a/gk20a.h" 34#include "gk20a/gk20a.h"
32#include "gk20a/ctxsw_trace_gk20a.h"
33#include "vgpu.h" 35#include "vgpu.h"
34#include "fecs_trace_vgpu.h" 36#include "fecs_trace_vgpu.h"
35 37
diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
index 121a52f1..149a51c0 100644
--- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
@@ -33,7 +33,6 @@
33 33
34#include "vgpu/vgpu.h" 34#include "vgpu/vgpu.h"
35#include "vgpu/fifo_vgpu.h" 35#include "vgpu/fifo_vgpu.h"
36#include "gk20a/ctxsw_trace_gk20a.h"
37 36
38#include <nvgpu/hw/gk20a/hw_fifo_gk20a.h> 37#include <nvgpu/hw/gk20a/hw_fifo_gk20a.h>
39#include <nvgpu/hw/gk20a/hw_ram_gk20a.h> 38#include <nvgpu/hw/gk20a/hw_ram_gk20a.h>
diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c
index 70214676..93f9eaf4 100644
--- a/drivers/gpu/nvgpu/vgpu/vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/vgpu.c
@@ -34,11 +34,11 @@
34#include <nvgpu/debug.h> 34#include <nvgpu/debug.h>
35#include <nvgpu/bus.h> 35#include <nvgpu/bus.h>
36#include <nvgpu/soc.h> 36#include <nvgpu/soc.h>
37#include <nvgpu/ctxsw_trace.h>
37 38
38#include "vgpu/vgpu.h" 39#include "vgpu/vgpu.h"
39#include "vgpu/fecs_trace_vgpu.h" 40#include "vgpu/fecs_trace_vgpu.h"
40#include "vgpu/clk_vgpu.h" 41#include "vgpu/clk_vgpu.h"
41#include "gk20a/ctxsw_trace_gk20a.h"
42#include "gk20a/tsg_gk20a.h" 42#include "gk20a/tsg_gk20a.h"
43#include "gk20a/channel_gk20a.h" 43#include "gk20a/channel_gk20a.h"
44#include "gm20b/hal_gm20b.h" 44#include "gm20b/hal_gm20b.h"