summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
index e5d315e5..309faf3b 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
@@ -19,6 +19,9 @@
19#define GR_GK20A_H 19#define GR_GK20A_H
20 20
21#include <linux/slab.h> 21#include <linux/slab.h>
22#ifdef CONFIG_ARCH_TEGRA_18x_SOC
23#include "gr_t18x.h"
24#endif
22 25
23#include "tsg_gk20a.h" 26#include "tsg_gk20a.h"
24#include "gr_ctx_gk20a.h" 27#include "gr_ctx_gk20a.h"
@@ -284,6 +287,10 @@ struct gr_gk20a {
284 void (*remove_support)(struct gr_gk20a *gr); 287 void (*remove_support)(struct gr_gk20a *gr);
285 bool sw_ready; 288 bool sw_ready;
286 bool skip_ucode_init; 289 bool skip_ucode_init;
290
291#ifdef CONFIG_ARCH_TEGRA_18x_SOC
292 struct gr_t18x t18x;
293#endif
287}; 294};
288 295
289void gk20a_fecs_dump_falcon_stats(struct gk20a *g); 296void gk20a_fecs_dump_falcon_stats(struct gk20a *g);
@@ -336,6 +343,28 @@ struct gk20a_ctxsw_bootloader_desc {
336 u32 entry_point; 343 u32 entry_point;
337}; 344};
338 345
346struct fecs_method_op_gk20a {
347 struct {
348 u32 addr;
349 u32 data;
350 } method;
351
352 struct {
353 u32 id;
354 u32 data;
355 u32 clr;
356 u32 *ret;
357 u32 ok;
358 u32 fail;
359 } mailbox;
360
361 struct {
362 u32 ok;
363 u32 fail;
364 } cond;
365
366};
367
339struct gpu_ops; 368struct gpu_ops;
340int gr_gk20a_load_golden_ctx_image(struct gk20a *g, 369int gr_gk20a_load_golden_ctx_image(struct gk20a *g,
341 struct channel_gk20a *c); 370 struct channel_gk20a *c);
@@ -462,4 +491,12 @@ int gr_gk20a_add_zbc_depth(struct gk20a *g, struct gr_gk20a *gr,
462 struct zbc_entry *depth_val, u32 index); 491 struct zbc_entry *depth_val, u32 index);
463int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies, 492int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies,
464 u32 expect_delay); 493 u32 expect_delay);
494int gr_gk20a_init_ctx_state(struct gk20a *g);
495int gr_gk20a_submit_fecs_method_op(struct gk20a *g,
496 struct fecs_method_op_gk20a op);
497int gr_gk20a_alloc_gr_ctx(struct gk20a *g,
498 struct gr_ctx_desc **__gr_ctx, struct vm_gk20a *vm,
499 u32 padding);
500void gr_gk20a_free_gr_ctx(struct gk20a *g,
501 struct vm_gk20a *vm, struct gr_ctx_desc *gr_ctx);
465#endif /*__GR_GK20A_H__*/ 502#endif /*__GR_GK20A_H__*/