summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c9
-rw-r--r--drivers/gpu/nvgpu/gk20a/css_gr_gk20a.h4
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h2
3 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
index 0fc39bf4..764ffe1a 100644
--- a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
@@ -22,9 +22,6 @@
22 * DEALINGS IN THE SOFTWARE. 22 * DEALINGS IN THE SOFTWARE.
23 */ 23 */
24 24
25#include <linux/dma-mapping.h>
26#include <linux/dma-buf.h>
27
28#include <nvgpu/bitops.h> 25#include <nvgpu/bitops.h>
29#include <nvgpu/kmem.h> 26#include <nvgpu/kmem.h>
30#include <nvgpu/lock.h> 27#include <nvgpu/lock.h>
@@ -61,14 +58,14 @@
61#define CSS_MAX_PERFMON_IDS 256 58#define CSS_MAX_PERFMON_IDS 256
62 59
63/* reports whether the hw queue overflowed */ 60/* reports whether the hw queue overflowed */
64static inline bool css_hw_get_overflow_status(struct gk20a *g) 61bool css_hw_get_overflow_status(struct gk20a *g)
65{ 62{
66 const u32 st = perf_pmasys_control_membuf_status_overflowed_f(); 63 const u32 st = perf_pmasys_control_membuf_status_overflowed_f();
67 return st == (gk20a_readl(g, perf_pmasys_control_r()) & st); 64 return st == (gk20a_readl(g, perf_pmasys_control_r()) & st);
68} 65}
69 66
70/* returns how many pending snapshot entries are pending */ 67/* returns how many pending snapshot entries are pending */
71static inline u32 css_hw_get_pending_snapshots(struct gk20a *g) 68u32 css_hw_get_pending_snapshots(struct gk20a *g)
72{ 69{
73 return gk20a_readl(g, perf_pmasys_mem_bytes_r()) / 70 return gk20a_readl(g, perf_pmasys_mem_bytes_r()) /
74 sizeof(struct gk20a_cs_snapshot_fifo_entry); 71 sizeof(struct gk20a_cs_snapshot_fifo_entry);
@@ -245,7 +242,7 @@ static void css_gr_free_shared_data(struct gr_gk20a *gr)
245} 242}
246 243
247 244
248static struct gk20a_cs_snapshot_client* 245struct gk20a_cs_snapshot_client*
249css_gr_search_client(struct nvgpu_list_node *clients, u32 perfmon) 246css_gr_search_client(struct nvgpu_list_node *clients, u32 perfmon)
250{ 247{
251 struct gk20a_cs_snapshot_client *client; 248 struct gk20a_cs_snapshot_client *client;
diff --git a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.h
index bee8f4fb..8aefe848 100644
--- a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.h
@@ -129,6 +129,8 @@ struct gk20a_cs_snapshot {
129 struct gk20a_cs_snapshot_fifo_entry *hw_get; 129 struct gk20a_cs_snapshot_fifo_entry *hw_get;
130}; 130};
131 131
132bool css_hw_get_overflow_status(struct gk20a *g);
133u32 css_hw_get_pending_snapshots(struct gk20a *g);
132void css_hw_set_handled_snapshots(struct gk20a *g, u32 done); 134void css_hw_set_handled_snapshots(struct gk20a *g, u32 done);
133int css_hw_enable_snapshot(struct channel_gk20a *ch, 135int css_hw_enable_snapshot(struct channel_gk20a *ch,
134 struct gk20a_cs_snapshot_client *cs_client); 136 struct gk20a_cs_snapshot_client *cs_client);
@@ -140,5 +142,7 @@ u32 css_gr_release_perfmon_ids(struct gk20a_cs_snapshot *data,
140 u32 count); 142 u32 count);
141int css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending, 143int css_hw_check_data_available(struct channel_gk20a *ch, u32 *pending,
142 bool *hw_overflow); 144 bool *hw_overflow);
145struct gk20a_cs_snapshot_client*
146css_gr_search_client(struct nvgpu_list_node *clients, u32 perfmon);
143 147
144#endif /* CSS_GR_GK20A_H */ 148#endif /* CSS_GR_GK20A_H */
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index bc4bd682..2605f954 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -1185,6 +1185,8 @@ struct gpu_ops {
1185 u32 count); 1185 u32 count);
1186 int (*detach_snapshot)(struct channel_gk20a *ch, 1186 int (*detach_snapshot)(struct channel_gk20a *ch,
1187 struct gk20a_cs_snapshot_client *client); 1187 struct gk20a_cs_snapshot_client *client);
1188 bool (*get_overflow_status)(struct gk20a *g);
1189 u32 (*get_pending_snapshots)(struct gk20a *g);
1188 } css; 1190 } css;
1189#endif 1191#endif
1190 struct { 1192 struct {