summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r--drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c20
-rw-r--r--drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h1
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c2
3 files changed, 13 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c
index 617ea61d..d8ba332b 100644
--- a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c
@@ -57,15 +57,6 @@ static inline u32 css_hw_get_pending_snapshots(struct gk20a *g)
57 sizeof(struct gk20a_cs_snapshot_fifo_entry); 57 sizeof(struct gk20a_cs_snapshot_fifo_entry);
58} 58}
59 59
60/* informs hw how many snapshots have been processed (frees up fifo space) */
61static inline void gv11b_css_hw_set_handled_snapshots(struct gk20a *g, u32 done)
62{
63 if (done > 0) {
64 gk20a_writel(g, perf_pmasys_mem_bump_r(),
65 done * sizeof(struct gk20a_cs_snapshot_fifo_entry));
66 }
67}
68
69/* disable streaming to memory */ 60/* disable streaming to memory */
70static void gv11b_css_hw_reset_streaming(struct gk20a *g) 61static void gv11b_css_hw_reset_streaming(struct gk20a *g)
71{ 62{
@@ -86,6 +77,17 @@ static void gv11b_css_hw_reset_streaming(struct gk20a *g)
86 gv11b_css_hw_set_handled_snapshots(g, css_hw_get_pending_snapshots(g)); 77 gv11b_css_hw_set_handled_snapshots(g, css_hw_get_pending_snapshots(g));
87} 78}
88 79
80/* informs hw how many snapshots have been processed (frees up fifo space) */
81void gv11b_css_hw_set_handled_snapshots(struct gk20a *g, u32 done)
82{
83 if (done == 0u) {
84 return;
85 }
86
87 gk20a_writel(g, perf_pmasys_mem_bump_r(),
88 done * sizeof(struct gk20a_cs_snapshot_fifo_entry));
89}
90
89int gv11b_css_hw_enable_snapshot(struct channel_gk20a *ch, 91int gv11b_css_hw_enable_snapshot(struct channel_gk20a *ch,
90 struct gk20a_cs_snapshot_client *cs_client) 92 struct gk20a_cs_snapshot_client *cs_client)
91{ 93{
diff --git a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h
index 6b11a62e..186f5fcc 100644
--- a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h
+++ b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h
@@ -30,5 +30,6 @@ int gv11b_css_hw_enable_snapshot(struct channel_gk20a *ch,
30void gv11b_css_hw_disable_snapshot(struct gr_gk20a *gr); 30void gv11b_css_hw_disable_snapshot(struct gr_gk20a *gr);
31int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending, 31int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
32 bool *hw_overflow); 32 bool *hw_overflow);
33void gv11b_css_hw_set_handled_snapshots(struct gk20a *g, u32 done);
33 34
34#endif /* CSS_GR_GV11B_H */ 35#endif /* CSS_GR_GV11B_H */
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index 5282af05..8d78d524 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -688,7 +688,7 @@ static const struct gpu_ops gv11b_ops = {
688 .enable_snapshot = gv11b_css_hw_enable_snapshot, 688 .enable_snapshot = gv11b_css_hw_enable_snapshot,
689 .disable_snapshot = gv11b_css_hw_disable_snapshot, 689 .disable_snapshot = gv11b_css_hw_disable_snapshot,
690 .check_data_available = gv11b_css_hw_check_data_available, 690 .check_data_available = gv11b_css_hw_check_data_available,
691 .set_handled_snapshots = css_hw_set_handled_snapshots, 691 .set_handled_snapshots = gv11b_css_hw_set_handled_snapshots,
692 .allocate_perfmon_ids = css_gr_allocate_perfmon_ids, 692 .allocate_perfmon_ids = css_gr_allocate_perfmon_ids,
693 .release_perfmon_ids = css_gr_release_perfmon_ids, 693 .release_perfmon_ids = css_gr_release_perfmon_ids,
694 }, 694 },