summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h')
-rw-r--r--drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h
new file mode 100644
index 00000000..7815201e
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/gr_vgpu.h
@@ -0,0 +1,64 @@
1/*
2 * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef _GR_VGPU_H_
18#define _GR_VGPU_H_
19
20#include <nvgpu/types.h>
21
22struct gk20a;
23struct channel_gk20a;
24struct gr_gk20a;
25struct gr_zcull_info;
26struct zbc_entry;
27struct zbc_query_params;
28struct dbg_session_gk20a;
29
30void vgpu_gr_detect_sm_arch(struct gk20a *g);
31void vgpu_gr_free_channel_ctx(struct channel_gk20a *c, bool is_tsg);
32int vgpu_gr_alloc_obj_ctx(struct channel_gk20a *c, u32 class_num, u32 flags);
33int vgpu_gr_bind_ctxsw_zcull(struct gk20a *g, struct gr_gk20a *gr,
34 struct channel_gk20a *c, u64 zcull_va,
35 u32 mode);
36int vgpu_gr_get_zcull_info(struct gk20a *g, struct gr_gk20a *gr,
37 struct gr_zcull_info *zcull_params);
38u32 vgpu_gr_get_gpc_tpc_mask(struct gk20a *g, u32 gpc_index);
39u32 vgpu_gr_get_max_fbps_count(struct gk20a *g);
40u32 vgpu_gr_get_fbp_en_mask(struct gk20a *g);
41u32 vgpu_gr_get_max_ltc_per_fbp(struct gk20a *g);
42u32 vgpu_gr_get_max_lts_per_ltc(struct gk20a *g);
43u32 *vgpu_gr_rop_l2_en_mask(struct gk20a *g);
44int vgpu_gr_add_zbc(struct gk20a *g, struct gr_gk20a *gr,
45 struct zbc_entry *zbc_val);
46int vgpu_gr_query_zbc(struct gk20a *g, struct gr_gk20a *gr,
47 struct zbc_query_params *query_params);
48int vgpu_gr_set_sm_debug_mode(struct gk20a *g,
49 struct channel_gk20a *ch, u64 sms, bool enable);
50int vgpu_gr_update_smpc_ctxsw_mode(struct gk20a *g,
51 struct channel_gk20a *ch, bool enable);
52int vgpu_gr_update_hwpm_ctxsw_mode(struct gk20a *g,
53 struct channel_gk20a *ch, bool enable);
54int vgpu_gr_clear_sm_error_state(struct gk20a *g,
55 struct channel_gk20a *ch, u32 sm_id);
56int vgpu_gr_suspend_contexts(struct gk20a *g,
57 struct dbg_session_gk20a *dbg_s,
58 int *ctx_resident_ch_fd);
59int vgpu_gr_resume_contexts(struct gk20a *g,
60 struct dbg_session_gk20a *dbg_s,
61 int *ctx_resident_ch_fd);
62int vgpu_gr_commit_inst(struct channel_gk20a *c, u64 gpu_va);
63
64#endif