diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.h | 37 |
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 | ||
289 | void gk20a_fecs_dump_falcon_stats(struct gk20a *g); | 296 | void 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 | ||
346 | struct 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 | |||
339 | struct gpu_ops; | 368 | struct gpu_ops; |
340 | int gr_gk20a_load_golden_ctx_image(struct gk20a *g, | 369 | int 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); |
463 | int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies, | 492 | int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies, |
464 | u32 expect_delay); | 493 | u32 expect_delay); |
494 | int gr_gk20a_init_ctx_state(struct gk20a *g); | ||
495 | int gr_gk20a_submit_fecs_method_op(struct gk20a *g, | ||
496 | struct fecs_method_op_gk20a op); | ||
497 | int gr_gk20a_alloc_gr_ctx(struct gk20a *g, | ||
498 | struct gr_ctx_desc **__gr_ctx, struct vm_gk20a *vm, | ||
499 | u32 padding); | ||
500 | void 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__*/ |