mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
gpu: nvgpu: Per-chip context creation
Add HAL for context creation, and expose functions that T18x context creation needs. Bug 1517461 Bug 1521790 Bug 200063473 Change-Id: I63d1c52594e851570b677184a4585d402125a86d Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/660237
This commit is contained in:
committed by
Dan Willemsen
parent
5477d0f4c2
commit
0d9bb7f82e
@@ -19,6 +19,9 @@
|
||||
#define GR_GK20A_H
|
||||
|
||||
#include <linux/slab.h>
|
||||
#ifdef CONFIG_ARCH_TEGRA_18x_SOC
|
||||
#include "gr_t18x.h"
|
||||
#endif
|
||||
|
||||
#include "tsg_gk20a.h"
|
||||
#include "gr_ctx_gk20a.h"
|
||||
@@ -284,6 +287,10 @@ struct gr_gk20a {
|
||||
void (*remove_support)(struct gr_gk20a *gr);
|
||||
bool sw_ready;
|
||||
bool skip_ucode_init;
|
||||
|
||||
#ifdef CONFIG_ARCH_TEGRA_18x_SOC
|
||||
struct gr_t18x t18x;
|
||||
#endif
|
||||
};
|
||||
|
||||
void gk20a_fecs_dump_falcon_stats(struct gk20a *g);
|
||||
@@ -336,6 +343,28 @@ struct gk20a_ctxsw_bootloader_desc {
|
||||
u32 entry_point;
|
||||
};
|
||||
|
||||
struct fecs_method_op_gk20a {
|
||||
struct {
|
||||
u32 addr;
|
||||
u32 data;
|
||||
} method;
|
||||
|
||||
struct {
|
||||
u32 id;
|
||||
u32 data;
|
||||
u32 clr;
|
||||
u32 *ret;
|
||||
u32 ok;
|
||||
u32 fail;
|
||||
} mailbox;
|
||||
|
||||
struct {
|
||||
u32 ok;
|
||||
u32 fail;
|
||||
} cond;
|
||||
|
||||
};
|
||||
|
||||
struct gpu_ops;
|
||||
int gr_gk20a_load_golden_ctx_image(struct gk20a *g,
|
||||
struct channel_gk20a *c);
|
||||
@@ -462,4 +491,12 @@ int gr_gk20a_add_zbc_depth(struct gk20a *g, struct gr_gk20a *gr,
|
||||
struct zbc_entry *depth_val, u32 index);
|
||||
int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies,
|
||||
u32 expect_delay);
|
||||
int gr_gk20a_init_ctx_state(struct gk20a *g);
|
||||
int gr_gk20a_submit_fecs_method_op(struct gk20a *g,
|
||||
struct fecs_method_op_gk20a op);
|
||||
int gr_gk20a_alloc_gr_ctx(struct gk20a *g,
|
||||
struct gr_ctx_desc **__gr_ctx, struct vm_gk20a *vm,
|
||||
u32 padding);
|
||||
void gr_gk20a_free_gr_ctx(struct gk20a *g,
|
||||
struct vm_gk20a *vm, struct gr_ctx_desc *gr_ctx);
|
||||
#endif /*__GR_GK20A_H__*/
|
||||
|
||||
Reference in New Issue
Block a user