summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h3
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c4
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c4
-rw-r--r--drivers/gpu/nvgpu/gp10b/gr_gp10b.c2
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c4
-rw-r--r--drivers/gpu/nvgpu/gv100/hal_gv100.c4
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c4
-rw-r--r--drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c5
-rw-r--r--drivers/gpu/nvgpu/vgpu/gr_vgpu.c2
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c5
11 files changed, 36 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 6f99b3f9..06739eee 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -515,6 +515,9 @@ struct gpu_ops {
515 void (*pg_gr_load_gating_prod)(struct gk20a *g, bool prod); 515 void (*pg_gr_load_gating_prod)(struct gk20a *g, bool prod);
516 } clock_gating; 516 } clock_gating;
517 struct { 517 struct {
518 void (*post_events)(struct channel_gk20a *ch);
519 } debugger;
520 struct {
518 int (*init_fifo_setup_hw)(struct gk20a *g); 521 int (*init_fifo_setup_hw)(struct gk20a *g);
519 void (*bind_channel)(struct channel_gk20a *ch_gk20a); 522 void (*bind_channel)(struct channel_gk20a *ch_gk20a);
520 void (*unbind_channel)(struct channel_gk20a *ch_gk20a); 523 void (*unbind_channel)(struct channel_gk20a *ch_gk20a);
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 07185db2..068eb070 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -6053,7 +6053,7 @@ int gk20a_gr_isr(struct gk20a *g)
6053 /* signal clients waiting on an event */ 6053 /* signal clients waiting on an event */
6054 if (g->ops.gr.sm_debugger_attached(g) && 6054 if (g->ops.gr.sm_debugger_attached(g) &&
6055 post_event && fault_ch) { 6055 post_event && fault_ch) {
6056 gk20a_dbg_gpu_post_events(fault_ch); 6056 g->ops.debugger.post_events(fault_ch);
6057 } 6057 }
6058 } 6058 }
6059 6059
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index e390e4dd..8df66151 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -556,6 +556,9 @@ static const struct gpu_ops gm20b_ops = {
556 .debug = { 556 .debug = {
557 .show_dump = gk20a_debug_show_dump, 557 .show_dump = gk20a_debug_show_dump,
558 }, 558 },
559 .debugger = {
560 .post_events = gk20a_dbg_gpu_post_events,
561 },
559 .dbg_session_ops = { 562 .dbg_session_ops = {
560 .exec_reg_ops = exec_regops_gk20a, 563 .exec_reg_ops = exec_regops_gk20a,
561 .dbg_set_powergate = dbg_set_powergate, 564 .dbg_set_powergate = dbg_set_powergate,
@@ -628,6 +631,7 @@ int gm20b_init_hal(struct gk20a *g)
628 gops->mc = gm20b_ops.mc; 631 gops->mc = gm20b_ops.mc;
629 gops->dbg_session_ops = gm20b_ops.dbg_session_ops; 632 gops->dbg_session_ops = gm20b_ops.dbg_session_ops;
630 gops->debug = gm20b_ops.debug; 633 gops->debug = gm20b_ops.debug;
634 gops->debugger = gm20b_ops.debugger;
631 gops->bus = gm20b_ops.bus; 635 gops->bus = gm20b_ops.bus;
632#if defined(CONFIG_GK20A_CYCLE_STATS) 636#if defined(CONFIG_GK20A_CYCLE_STATS)
633 gops->css = gm20b_ops.css; 637 gops->css = gm20b_ops.css;
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 82ef0461..35e4a7dd 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -668,6 +668,9 @@ static const struct gpu_ops gp106_ops = {
668 .debug = { 668 .debug = {
669 .show_dump = gk20a_debug_show_dump, 669 .show_dump = gk20a_debug_show_dump,
670 }, 670 },
671 .debugger = {
672 .post_events = gk20a_dbg_gpu_post_events,
673 },
671 .dbg_session_ops = { 674 .dbg_session_ops = {
672 .exec_reg_ops = exec_regops_gk20a, 675 .exec_reg_ops = exec_regops_gk20a,
673 .dbg_set_powergate = dbg_set_powergate, 676 .dbg_set_powergate = dbg_set_powergate,
@@ -762,6 +765,7 @@ int gp106_init_hal(struct gk20a *g)
762 gops->regops = gp106_ops.regops; 765 gops->regops = gp106_ops.regops;
763 gops->mc = gp106_ops.mc; 766 gops->mc = gp106_ops.mc;
764 gops->debug = gp106_ops.debug; 767 gops->debug = gp106_ops.debug;
768 gops->debugger = gp106_ops.debugger;
765 gops->dbg_session_ops = gp106_ops.dbg_session_ops; 769 gops->dbg_session_ops = gp106_ops.dbg_session_ops;
766 gops->bus = gp106_ops.bus; 770 gops->bus = gp106_ops.bus;
767#if defined(CONFIG_GK20A_CYCLE_STATS) 771#if defined(CONFIG_GK20A_CYCLE_STATS)
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
index 6c145c00..0178abbf 100644
--- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
@@ -2032,7 +2032,7 @@ int gr_gp10b_handle_fecs_error(struct gk20a *g,
2032 } 2032 }
2033 2033
2034 /* Post events to UMD */ 2034 /* Post events to UMD */
2035 gk20a_dbg_gpu_post_events(ch); 2035 g->ops.debugger.post_events(ch);
2036 2036
2037 tsg = &g->fifo.tsg[ch->tsgid]; 2037 tsg = &g->fifo.tsg[ch->tsgid];
2038 2038
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
index 783dfcdd..ced3bb40 100644
--- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -602,6 +602,9 @@ static const struct gpu_ops gp10b_ops = {
602 .debug = { 602 .debug = {
603 .show_dump = gk20a_debug_show_dump, 603 .show_dump = gk20a_debug_show_dump,
604 }, 604 },
605 .debugger = {
606 .post_events = gk20a_dbg_gpu_post_events,
607 },
605 .dbg_session_ops = { 608 .dbg_session_ops = {
606 .exec_reg_ops = exec_regops_gk20a, 609 .exec_reg_ops = exec_regops_gk20a,
607 .dbg_set_powergate = dbg_set_powergate, 610 .dbg_set_powergate = dbg_set_powergate,
@@ -665,6 +668,7 @@ int gp10b_init_hal(struct gk20a *g)
665 gops->regops = gp10b_ops.regops; 668 gops->regops = gp10b_ops.regops;
666 gops->mc = gp10b_ops.mc; 669 gops->mc = gp10b_ops.mc;
667 gops->debug = gp10b_ops.debug; 670 gops->debug = gp10b_ops.debug;
671 gops->debugger = gp10b_ops.debugger;
668 gops->dbg_session_ops = gp10b_ops.dbg_session_ops; 672 gops->dbg_session_ops = gp10b_ops.dbg_session_ops;
669 gops->bus = gp10b_ops.bus; 673 gops->bus = gp10b_ops.bus;
670#if defined(CONFIG_GK20A_CYCLE_STATS) 674#if defined(CONFIG_GK20A_CYCLE_STATS)
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c
index 677f2a89..dffacdf7 100644
--- a/drivers/gpu/nvgpu/gv100/hal_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c
@@ -678,6 +678,9 @@ static const struct gpu_ops gv100_ops = {
678 .debug = { 678 .debug = {
679 .show_dump = gk20a_debug_show_dump, 679 .show_dump = gk20a_debug_show_dump,
680 }, 680 },
681 .debugger = {
682 .post_events = gk20a_dbg_gpu_post_events,
683 },
681 .dbg_session_ops = { 684 .dbg_session_ops = {
682 .exec_reg_ops = exec_regops_gk20a, 685 .exec_reg_ops = exec_regops_gk20a,
683 .dbg_set_powergate = dbg_set_powergate, 686 .dbg_set_powergate = dbg_set_powergate,
@@ -770,6 +773,7 @@ int gv100_init_hal(struct gk20a *g)
770 gops->regops = gv100_ops.regops; 773 gops->regops = gv100_ops.regops;
771 gops->mc = gv100_ops.mc; 774 gops->mc = gv100_ops.mc;
772 gops->debug = gv100_ops.debug; 775 gops->debug = gv100_ops.debug;
776 gops->debugger = gv100_ops.debugger;
773 gops->dbg_session_ops = gv100_ops.dbg_session_ops; 777 gops->dbg_session_ops = gv100_ops.dbg_session_ops;
774 gops->bus = gv100_ops.bus; 778 gops->bus = gv100_ops.bus;
775#if defined(CONFIG_GK20A_CYCLE_STATS) 779#if defined(CONFIG_GK20A_CYCLE_STATS)
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index d55d51ba..2cc2d53a 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -667,6 +667,9 @@ static const struct gpu_ops gv11b_ops = {
667 .debug = { 667 .debug = {
668 .show_dump = gk20a_debug_show_dump, 668 .show_dump = gk20a_debug_show_dump,
669 }, 669 },
670 .debugger = {
671 .post_events = gk20a_dbg_gpu_post_events,
672 },
670 .dbg_session_ops = { 673 .dbg_session_ops = {
671 .exec_reg_ops = exec_regops_gk20a, 674 .exec_reg_ops = exec_regops_gk20a,
672 .dbg_set_powergate = dbg_set_powergate, 675 .dbg_set_powergate = dbg_set_powergate,
@@ -729,6 +732,7 @@ int gv11b_init_hal(struct gk20a *g)
729 gops->regops = gv11b_ops.regops; 732 gops->regops = gv11b_ops.regops;
730 gops->mc = gv11b_ops.mc; 733 gops->mc = gv11b_ops.mc;
731 gops->debug = gv11b_ops.debug; 734 gops->debug = gv11b_ops.debug;
735 gops->debugger = gv11b_ops.debugger;
732 gops->dbg_session_ops = gv11b_ops.dbg_session_ops; 736 gops->dbg_session_ops = gv11b_ops.dbg_session_ops;
733 gops->bus = gv11b_ops.bus; 737 gops->bus = gv11b_ops.bus;
734#if defined(CONFIG_GK20A_CYCLE_STATS) 738#if defined(CONFIG_GK20A_CYCLE_STATS)
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
index bfdd0788..861f6c00 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
+++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
@@ -39,6 +39,7 @@
39#include "gk20a/flcn_gk20a.h" 39#include "gk20a/flcn_gk20a.h"
40#include "gk20a/mc_gk20a.h" 40#include "gk20a/mc_gk20a.h"
41#include "gk20a/fb_gk20a.h" 41#include "gk20a/fb_gk20a.h"
42#include "gk20a/dbg_gpu_gk20a.h"
42 43
43#include "gp10b/mc_gp10b.h" 44#include "gp10b/mc_gp10b.h"
44#include "gp10b/ltc_gp10b.h" 45#include "gp10b/ltc_gp10b.h"
@@ -478,6 +479,9 @@ static const struct gpu_ops vgpu_gp10b_ops = {
478 .debug = { 479 .debug = {
479 .show_dump = NULL, 480 .show_dump = NULL,
480 }, 481 },
482 .debugger = {
483 .post_events = gk20a_dbg_gpu_post_events,
484 },
481 .dbg_session_ops = { 485 .dbg_session_ops = {
482 .exec_reg_ops = vgpu_exec_regops, 486 .exec_reg_ops = vgpu_exec_regops,
483 .dbg_set_powergate = vgpu_dbg_set_powergate, 487 .dbg_set_powergate = vgpu_dbg_set_powergate,
@@ -542,6 +546,7 @@ int vgpu_gp10b_init_hal(struct gk20a *g)
542 gops->regops = vgpu_gp10b_ops.regops; 546 gops->regops = vgpu_gp10b_ops.regops;
543 gops->mc = vgpu_gp10b_ops.mc; 547 gops->mc = vgpu_gp10b_ops.mc;
544 gops->debug = vgpu_gp10b_ops.debug; 548 gops->debug = vgpu_gp10b_ops.debug;
549 gops->debugger = vgpu_gp10b_ops.debugger;
545 gops->dbg_session_ops = vgpu_gp10b_ops.dbg_session_ops; 550 gops->dbg_session_ops = vgpu_gp10b_ops.dbg_session_ops;
546 gops->bus = vgpu_gp10b_ops.bus; 551 gops->bus = vgpu_gp10b_ops.bus;
547#if defined(CONFIG_GK20A_CYCLE_STATS) 552#if defined(CONFIG_GK20A_CYCLE_STATS)
diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
index ee5a5d36..d04beb56 100644
--- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
@@ -951,7 +951,7 @@ int vgpu_gr_isr(struct gk20a *g, struct tegra_vgpu_gr_intr_info *info)
951 NVGPU_ERR_NOTIFIER_GR_ERROR_SW_NOTIFY); 951 NVGPU_ERR_NOTIFIER_GR_ERROR_SW_NOTIFY);
952 break; 952 break;
953 case TEGRA_VGPU_GR_INTR_SM_EXCEPTION: 953 case TEGRA_VGPU_GR_INTR_SM_EXCEPTION:
954 gk20a_dbg_gpu_post_events(ch); 954 g->ops.debugger.post_events(ch);
955 break; 955 break;
956 default: 956 default:
957 WARN_ON(1); 957 WARN_ON(1);
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
index b4e03ecd..01b31976 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
+++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
@@ -39,6 +39,7 @@
39#include <gk20a/flcn_gk20a.h> 39#include <gk20a/flcn_gk20a.h>
40#include <gk20a/bus_gk20a.h> 40#include <gk20a/bus_gk20a.h>
41#include <gk20a/mc_gk20a.h> 41#include <gk20a/mc_gk20a.h>
42#include "gk20a/dbg_gpu_gk20a.h"
42 43
43#include <gm20b/gr_gm20b.h> 44#include <gm20b/gr_gm20b.h>
44#include <gm20b/fb_gm20b.h> 45#include <gm20b/fb_gm20b.h>
@@ -525,6 +526,9 @@ static const struct gpu_ops vgpu_gv11b_ops = {
525 .debug = { 526 .debug = {
526 .show_dump = NULL, 527 .show_dump = NULL,
527 }, 528 },
529 .debugger = {
530 .post_events = gk20a_dbg_gpu_post_events,
531 },
528 .dbg_session_ops = { 532 .dbg_session_ops = {
529 .exec_reg_ops = vgpu_exec_regops, 533 .exec_reg_ops = vgpu_exec_regops,
530 .dbg_set_powergate = vgpu_dbg_set_powergate, 534 .dbg_set_powergate = vgpu_dbg_set_powergate,
@@ -585,6 +589,7 @@ int vgpu_gv11b_init_hal(struct gk20a *g)
585 gops->regops = vgpu_gv11b_ops.regops; 589 gops->regops = vgpu_gv11b_ops.regops;
586 gops->mc = vgpu_gv11b_ops.mc; 590 gops->mc = vgpu_gv11b_ops.mc;
587 gops->debug = vgpu_gv11b_ops.debug; 591 gops->debug = vgpu_gv11b_ops.debug;
592 gops->debugger = vgpu_gv11b_ops.debugger;
588 gops->dbg_session_ops = vgpu_gv11b_ops.dbg_session_ops; 593 gops->dbg_session_ops = vgpu_gv11b_ops.dbg_session_ops;
589 gops->bus = vgpu_gv11b_ops.bus; 594 gops->bus = vgpu_gv11b_ops.bus;
590#if defined(CONFIG_GK20A_CYCLE_STATS) 595#if defined(CONFIG_GK20A_CYCLE_STATS)