diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c | 20 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 2 |
3 files changed, 10 insertions, 13 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c index d8ba332b..617ea61d 100644 --- a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.c | |||
@@ -57,6 +57,15 @@ 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) */ | ||
61 | static 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 | |||
60 | /* disable streaming to memory */ | 69 | /* disable streaming to memory */ |
61 | static void gv11b_css_hw_reset_streaming(struct gk20a *g) | 70 | static void gv11b_css_hw_reset_streaming(struct gk20a *g) |
62 | { | 71 | { |
@@ -77,17 +86,6 @@ static void gv11b_css_hw_reset_streaming(struct gk20a *g) | |||
77 | gv11b_css_hw_set_handled_snapshots(g, css_hw_get_pending_snapshots(g)); | 86 | gv11b_css_hw_set_handled_snapshots(g, css_hw_get_pending_snapshots(g)); |
78 | } | 87 | } |
79 | 88 | ||
80 | /* informs hw how many snapshots have been processed (frees up fifo space) */ | ||
81 | void 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 | |||
91 | int gv11b_css_hw_enable_snapshot(struct channel_gk20a *ch, | 89 | int gv11b_css_hw_enable_snapshot(struct channel_gk20a *ch, |
92 | struct gk20a_cs_snapshot_client *cs_client) | 90 | struct gk20a_cs_snapshot_client *cs_client) |
93 | { | 91 | { |
diff --git a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h index 186f5fcc..6b11a62e 100644 --- a/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h +++ b/drivers/gpu/nvgpu/gv11b/css_gr_gv11b.h | |||
@@ -30,6 +30,5 @@ int gv11b_css_hw_enable_snapshot(struct channel_gk20a *ch, | |||
30 | void gv11b_css_hw_disable_snapshot(struct gr_gk20a *gr); | 30 | void gv11b_css_hw_disable_snapshot(struct gr_gk20a *gr); |
31 | int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending, | 31 | int gv11b_css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending, |
32 | bool *hw_overflow); | 32 | bool *hw_overflow); |
33 | void gv11b_css_hw_set_handled_snapshots(struct gk20a *g, u32 done); | ||
34 | 33 | ||
35 | #endif /* CSS_GR_GV11B_H */ | 34 | #endif /* CSS_GR_GV11B_H */ |
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 8d78d524..5282af05 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 = gv11b_css_hw_set_handled_snapshots, | 691 | .set_handled_snapshots = 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 | }, |