diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/hal_gp106.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv100/hal_gv100.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/gr_vgpu.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c | 5 |
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) |