summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu
diff options
context:
space:
mode:
authorDebarshi Dutta <ddutta@nvidia.com>2019-05-09 02:03:35 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2019-05-14 17:59:33 -0400
commit543a904e630dfe78b193803ad04d2bd12380c2b0 (patch)
tree024f656b7cdc7096b2990c2597cf61c8f97780ea /drivers/gpu/nvgpu
parent27625718c4b2e400650885f8c892860c6c7434fd (diff)
gpu: nvgpu: fecs ctxsw trace for gm20b
Register gk20a non-arch-specific functions for gm20b gpu_ops.fecs_trace, Register nvgpu_os_linux_ops.fecs_trace.init_debugfs gp10b_fecs_trace_flush is now replaced by gm20b_fecs_trace_flush in fecs_trace_gm20b.* and the fecs_trace_gp10b.* files are removed. Bug 2052906 Change-Id: I245c91ae8e6015b87bafeb3ec023b98fe4c57501 Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2115247 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r--drivers/gpu/nvgpu/Makefile2
-rw-r--r--drivers/gpu/nvgpu/Makefile.sources2
-rw-r--r--drivers/gpu/nvgpu/gm20b/fecs_trace_gm20b.c (renamed from drivers/gpu/nvgpu/gp10b/fecs_trace_gp10b.c)8
-rw-r--r--drivers/gpu/nvgpu/gm20b/fecs_trace_gm20b.h (renamed from drivers/gpu/nvgpu/gp10b/fecs_trace_gp10b.h)10
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c21
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c4
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c4
-rw-r--r--drivers/gpu/nvgpu/gv100/hal_gv100.c2
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c2
-rw-r--r--drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c8
10 files changed, 46 insertions, 17 deletions
diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile
index 819be617..827d7df5 100644
--- a/drivers/gpu/nvgpu/Makefile
+++ b/drivers/gpu/nvgpu/Makefile
@@ -256,6 +256,7 @@ nvgpu-y += \
256 gm20b/pmu_gm20b.o \ 256 gm20b/pmu_gm20b.o \
257 gm20b/mm_gm20b.o \ 257 gm20b/mm_gm20b.o \
258 gm20b/regops_gm20b.o \ 258 gm20b/regops_gm20b.o \
259 gm20b/fecs_trace_gm20b.o \
259 boardobj/boardobj.o \ 260 boardobj/boardobj.o \
260 boardobj/boardobjgrp.o \ 261 boardobj/boardobjgrp.o \
261 boardobj/boardobjgrpmask.o \ 262 boardobj/boardobjgrpmask.o \
@@ -302,7 +303,6 @@ nvgpu-y += \
302 gp10b/pmu_gp10b.o \ 303 gp10b/pmu_gp10b.o \
303 gp10b/hal_gp10b.o \ 304 gp10b/hal_gp10b.o \
304 gp10b/regops_gp10b.o \ 305 gp10b/regops_gp10b.o \
305 gp10b/fecs_trace_gp10b.o \
306 gp10b/gp10b.o \ 306 gp10b/gp10b.o \
307 gp10b/ecc_gp10b.o \ 307 gp10b/ecc_gp10b.o \
308 gp106/hal_gp106.o \ 308 gp106/hal_gp106.o \
diff --git a/drivers/gpu/nvgpu/Makefile.sources b/drivers/gpu/nvgpu/Makefile.sources
index 6ba8555d..183da6a5 100644
--- a/drivers/gpu/nvgpu/Makefile.sources
+++ b/drivers/gpu/nvgpu/Makefile.sources
@@ -172,6 +172,7 @@ srcs := os/posix/nvgpu.c \
172 gm20b/pmu_gm20b.c \ 172 gm20b/pmu_gm20b.c \
173 gm20b/mm_gm20b.c \ 173 gm20b/mm_gm20b.c \
174 gm20b/regops_gm20b.c \ 174 gm20b/regops_gm20b.c \
175 gm20b/fecs_trace_gm20b.c \
175 gp10b/gr_gp10b.c \ 176 gp10b/gr_gp10b.c \
176 gp10b/gr_ctx_gp10b.c \ 177 gp10b/gr_ctx_gp10b.c \
177 gp10b/ce_gp10b.c \ 178 gp10b/ce_gp10b.c \
@@ -181,7 +182,6 @@ srcs := os/posix/nvgpu.c \
181 gp10b/hal_gp10b.c \ 182 gp10b/hal_gp10b.c \
182 gp10b/regops_gp10b.c \ 183 gp10b/regops_gp10b.c \
183 gp10b/clk_arb_gp10b.c \ 184 gp10b/clk_arb_gp10b.c \
184 gp10b/fecs_trace_gp10b.c \
185 gp10b/gp10b.c \ 185 gp10b/gp10b.c \
186 gp10b/ecc_gp10b.c \ 186 gp10b/ecc_gp10b.c \
187 gv11b/gv11b.c \ 187 gv11b/gv11b.c \
diff --git a/drivers/gpu/nvgpu/gp10b/fecs_trace_gp10b.c b/drivers/gpu/nvgpu/gm20b/fecs_trace_gm20b.c
index 3dc672ff..84772af5 100644
--- a/drivers/gpu/nvgpu/gp10b/fecs_trace_gp10b.c
+++ b/drivers/gpu/nvgpu/gm20b/fecs_trace_gm20b.c
@@ -26,13 +26,13 @@
26 26
27#include "gk20a/fecs_trace_gk20a.h" 27#include "gk20a/fecs_trace_gk20a.h"
28 28
29#include "fecs_trace_gp10b.h" 29#include "fecs_trace_gm20b.h"
30 30
31#include <nvgpu/hw/gp10b/hw_ctxsw_prog_gp10b.h> 31#include <nvgpu/hw/gm20b/hw_ctxsw_prog_gm20b.h>
32#include <nvgpu/hw/gp10b/hw_gr_gp10b.h> 32#include <nvgpu/hw/gm20b/hw_gr_gm20b.h>
33 33
34#ifdef CONFIG_GK20A_CTXSW_TRACE 34#ifdef CONFIG_GK20A_CTXSW_TRACE
35int gp10b_fecs_trace_flush(struct gk20a *g) 35int gm20b_fecs_trace_flush(struct gk20a *g)
36{ 36{
37 struct fecs_method_op_gk20a op = { 37 struct fecs_method_op_gk20a op = {
38 .mailbox = { .id = 0, .data = 0, 38 .mailbox = { .id = 0, .data = 0,
diff --git a/drivers/gpu/nvgpu/gp10b/fecs_trace_gp10b.h b/drivers/gpu/nvgpu/gm20b/fecs_trace_gm20b.h
index 0eda975b..dd98e7c4 100644
--- a/drivers/gpu/nvgpu/gp10b/fecs_trace_gp10b.h
+++ b/drivers/gpu/nvgpu/gm20b/fecs_trace_gm20b.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * GP10B GPU FECS traces 2 * GM20B GPU FECS traces
3 * 3 *
4 * Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved. 4 * Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved.
5 * 5 *
@@ -22,11 +22,11 @@
22 * DEALINGS IN THE SOFTWARE. 22 * DEALINGS IN THE SOFTWARE.
23 */ 23 */
24 24
25#ifndef NVGPU_FECS_TRACE_GP10B_H 25#ifndef NVGPU_FECS_TRACE_GM20B_H
26#define NVGPU_FECS_TRACE_GP10B_H 26#define NVGPU_FECS_TRACE_GM20B_H
27 27
28struct gk20a; 28struct gk20a;
29 29
30int gp10b_fecs_trace_flush(struct gk20a *g); 30int gm20b_fecs_trace_flush(struct gk20a *g);
31 31
32#endif /* NVGPU_FECS_TRACE_GP10B_H */ 32#endif /* NVGPU_FECS_TRACE_GM20B_H */
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index c5bf4ff5..6de1dad5 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -29,6 +29,7 @@
29#include <nvgpu/gk20a.h> 29#include <nvgpu/gk20a.h>
30#include <nvgpu/channel.h> 30#include <nvgpu/channel.h>
31#include <nvgpu/tsg.h> 31#include <nvgpu/tsg.h>
32#include <nvgpu/ctxsw_trace.h>
32 33
33#include "common/clock_gating/gm20b_gating_reglist.h" 34#include "common/clock_gating/gm20b_gating_reglist.h"
34#include "common/bus/bus_gm20b.h" 35#include "common/bus/bus_gm20b.h"
@@ -51,6 +52,8 @@
51#include "gk20a/regops_gk20a.h" 52#include "gk20a/regops_gk20a.h"
52#include "gk20a/pmu_gk20a.h" 53#include "gk20a/pmu_gk20a.h"
53#include "gk20a/gr_gk20a.h" 54#include "gk20a/gr_gk20a.h"
55#include "gk20a/fecs_trace_gk20a.h"
56#include "gm20b/fecs_trace_gm20b.h"
54 57
55#include "gr_gm20b.h" 58#include "gr_gm20b.h"
56#include "fifo_gm20b.h" 59#include "fifo_gm20b.h"
@@ -484,6 +487,24 @@ static const struct gpu_ops gm20b_ops = {
484 .get_netlist_name = gr_gm20b_get_netlist_name, 487 .get_netlist_name = gr_gm20b_get_netlist_name,
485 .is_fw_defined = gr_gm20b_is_firmware_defined, 488 .is_fw_defined = gr_gm20b_is_firmware_defined,
486 }, 489 },
490#ifdef CONFIG_GK20A_CTXSW_TRACE
491 .fecs_trace = {
492 .alloc_user_buffer = gk20a_ctxsw_dev_ring_alloc,
493 .free_user_buffer = gk20a_ctxsw_dev_ring_free,
494 .mmap_user_buffer = gk20a_ctxsw_dev_mmap_buffer,
495 .init = gk20a_fecs_trace_init,
496 .deinit = gk20a_fecs_trace_deinit,
497 .enable = gk20a_fecs_trace_enable,
498 .disable = gk20a_fecs_trace_disable,
499 .is_enabled = gk20a_fecs_trace_is_enabled,
500 .reset = gk20a_fecs_trace_reset,
501 .flush = gm20b_fecs_trace_flush,
502 .poll = gk20a_fecs_trace_poll,
503 .bind_channel = gk20a_fecs_trace_bind_channel,
504 .unbind_channel = gk20a_fecs_trace_unbind_channel,
505 .max_entries = gk20a_gr_max_entries,
506 },
507#endif /* CONFIG_GK20A_CTXSW_TRACE */
487 .mm = { 508 .mm = {
488 .support_sparse = gm20b_mm_support_sparse, 509 .support_sparse = gm20b_mm_support_sparse,
489 .gmmu_map = gk20a_locked_gmmu_map, 510 .gmmu_map = gk20a_locked_gmmu_map,
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index fea2ffa0..86a133d5 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -54,7 +54,6 @@
54#include "gk20a/gr_gk20a.h" 54#include "gk20a/gr_gk20a.h"
55 55
56#include "gp10b/gr_gp10b.h" 56#include "gp10b/gr_gp10b.h"
57#include "gp10b/fecs_trace_gp10b.h"
58#include "gp10b/mm_gp10b.h" 57#include "gp10b/mm_gp10b.h"
59#include "gp10b/ce_gp10b.h" 58#include "gp10b/ce_gp10b.h"
60#include "gp10b/regops_gp10b.h" 59#include "gp10b/regops_gp10b.h"
@@ -71,6 +70,7 @@
71#include "gm20b/pmu_gm20b.h" 70#include "gm20b/pmu_gm20b.h"
72#include "gm20b/acr_gm20b.h" 71#include "gm20b/acr_gm20b.h"
73#include "gm20b/gr_gm20b.h" 72#include "gm20b/gr_gm20b.h"
73#include "gm20b/fecs_trace_gm20b.h"
74 74
75#include "gp106/acr_gp106.h" 75#include "gp106/acr_gp106.h"
76#include "gp106/sec2_gp106.h" 76#include "gp106/sec2_gp106.h"
@@ -570,7 +570,7 @@ static const struct gpu_ops gp106_ops = {
570 .disable = gk20a_fecs_trace_disable, 570 .disable = gk20a_fecs_trace_disable,
571 .is_enabled = gk20a_fecs_trace_is_enabled, 571 .is_enabled = gk20a_fecs_trace_is_enabled,
572 .reset = gk20a_fecs_trace_reset, 572 .reset = gk20a_fecs_trace_reset,
573 .flush = gp10b_fecs_trace_flush, 573 .flush = gm20b_fecs_trace_flush,
574 .poll = gk20a_fecs_trace_poll, 574 .poll = gk20a_fecs_trace_poll,
575 .bind_channel = gk20a_fecs_trace_bind_channel, 575 .bind_channel = gk20a_fecs_trace_bind_channel,
576 .unbind_channel = gk20a_fecs_trace_unbind_channel, 576 .unbind_channel = gk20a_fecs_trace_unbind_channel,
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
index 5fcfb32f..0723fa0e 100644
--- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -60,7 +60,6 @@
60#include "gk20a/gr_gk20a.h" 60#include "gk20a/gr_gk20a.h"
61 61
62#include "gp10b/gr_gp10b.h" 62#include "gp10b/gr_gp10b.h"
63#include "gp10b/fecs_trace_gp10b.h"
64#include "gp10b/mm_gp10b.h" 63#include "gp10b/mm_gp10b.h"
65#include "gp10b/ce_gp10b.h" 64#include "gp10b/ce_gp10b.h"
66#include "gp10b/pmu_gp10b.h" 65#include "gp10b/pmu_gp10b.h"
@@ -76,6 +75,7 @@
76#include "gm20b/pmu_gm20b.h" 75#include "gm20b/pmu_gm20b.h"
77#include "gm20b/clk_gm20b.h" 76#include "gm20b/clk_gm20b.h"
78#include "gm20b/mm_gm20b.h" 77#include "gm20b/mm_gm20b.h"
78#include "gm20b/fecs_trace_gm20b.h"
79 79
80#include "gp10b.h" 80#include "gp10b.h"
81#include "hal_gp10b.h" 81#include "hal_gp10b.h"
@@ -537,7 +537,7 @@ static const struct gpu_ops gp10b_ops = {
537 .disable = gk20a_fecs_trace_disable, 537 .disable = gk20a_fecs_trace_disable,
538 .is_enabled = gk20a_fecs_trace_is_enabled, 538 .is_enabled = gk20a_fecs_trace_is_enabled,
539 .reset = gk20a_fecs_trace_reset, 539 .reset = gk20a_fecs_trace_reset,
540 .flush = gp10b_fecs_trace_flush, 540 .flush = gm20b_fecs_trace_flush,
541 .poll = gk20a_fecs_trace_poll, 541 .poll = gk20a_fecs_trace_poll,
542 .bind_channel = gk20a_fecs_trace_bind_channel, 542 .bind_channel = gk20a_fecs_trace_bind_channel,
543 .unbind_channel = gk20a_fecs_trace_unbind_channel, 543 .unbind_channel = gk20a_fecs_trace_unbind_channel,
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c
index c8849631..457ae64c 100644
--- a/drivers/gpu/nvgpu/gv100/hal_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c
@@ -66,6 +66,7 @@
66#include "gm20b/mm_gm20b.h" 66#include "gm20b/mm_gm20b.h"
67#include "gm20b/pmu_gm20b.h" 67#include "gm20b/pmu_gm20b.h"
68#include "gm20b/acr_gm20b.h" 68#include "gm20b/acr_gm20b.h"
69#include "gm20b/fecs_trace_gm20b.h"
69 70
70#include "gp106/clk_arb_gp106.h" 71#include "gp106/clk_arb_gp106.h"
71#include "gp106/pmu_gp106.h" 72#include "gp106/pmu_gp106.h"
@@ -77,7 +78,6 @@
77#include "gp10b/gr_gp10b.h" 78#include "gp10b/gr_gp10b.h"
78#include "gp10b/ce_gp10b.h" 79#include "gp10b/ce_gp10b.h"
79#include "gp10b/fifo_gp10b.h" 80#include "gp10b/fifo_gp10b.h"
80#include "gp10b/fecs_trace_gp10b.h"
81#include "gp10b/mm_gp10b.h" 81#include "gp10b/mm_gp10b.h"
82#include "gp10b/pmu_gp10b.h" 82#include "gp10b/pmu_gp10b.h"
83 83
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index 718b6f93..6b4eeb88 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -60,10 +60,10 @@
60#include "gm20b/mm_gm20b.h" 60#include "gm20b/mm_gm20b.h"
61#include "gm20b/acr_gm20b.h" 61#include "gm20b/acr_gm20b.h"
62#include "gm20b/pmu_gm20b.h" 62#include "gm20b/pmu_gm20b.h"
63#include "gm20b/fecs_trace_gm20b.h"
63 64
64#include "gp10b/ce_gp10b.h" 65#include "gp10b/ce_gp10b.h"
65#include "gp10b/fifo_gp10b.h" 66#include "gp10b/fifo_gp10b.h"
66#include "gp10b/fecs_trace_gp10b.h"
67#include "gp10b/mm_gp10b.h" 67#include "gp10b/mm_gp10b.h"
68#include "gp10b/pmu_gp10b.h" 68#include "gp10b/pmu_gp10b.h"
69#include "gp10b/gr_gp10b.h" 69#include "gp10b/gr_gp10b.h"
diff --git a/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c b/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c
index 9024ce22..77aee395 100644
--- a/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c
+++ b/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c
@@ -18,6 +18,8 @@
18 18
19#include "cde_gm20b.h" 19#include "cde_gm20b.h"
20#include "debug_clk_gm20b.h" 20#include "debug_clk_gm20b.h"
21#include "debug_fecs_trace.h"
22
21 23
22static struct nvgpu_os_linux_ops gm20b_os_linux_ops = { 24static struct nvgpu_os_linux_ops gm20b_os_linux_ops = {
23#ifdef CONFIG_NVGPU_SUPPORT_CDE 25#ifdef CONFIG_NVGPU_SUPPORT_CDE
@@ -28,6 +30,10 @@ static struct nvgpu_os_linux_ops gm20b_os_linux_ops = {
28 .clk = { 30 .clk = {
29 .init_debugfs = gm20b_clk_init_debugfs, 31 .init_debugfs = gm20b_clk_init_debugfs,
30 }, 32 },
33
34 .fecs_trace = {
35 .init_debugfs = nvgpu_fecs_trace_init_debugfs,
36 },
31}; 37};
32 38
33void nvgpu_gm20b_init_os_ops(struct nvgpu_os_linux *l) 39void nvgpu_gm20b_init_os_ops(struct nvgpu_os_linux *l)
@@ -36,4 +42,6 @@ void nvgpu_gm20b_init_os_ops(struct nvgpu_os_linux *l)
36 l->ops.cde = gm20b_os_linux_ops.cde; 42 l->ops.cde = gm20b_os_linux_ops.cde;
37#endif 43#endif
38 l->ops.clk = gm20b_os_linux_ops.clk; 44 l->ops.clk = gm20b_os_linux_ops.clk;
45
46 l->ops.fecs_trace = gm20b_os_linux_ops.fecs_trace;
39} 47}