diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 9acaa007..5ab09ac3 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -126,6 +126,7 @@ struct gpu_ops { | |||
126 | } ce2; | 126 | } ce2; |
127 | struct { | 127 | struct { |
128 | int (*init_fs_state)(struct gk20a *g); | 128 | int (*init_fs_state)(struct gk20a *g); |
129 | int (*init_preemption_state)(struct gk20a *g); | ||
129 | void (*access_smpc_reg)(struct gk20a *g, u32 quad, u32 offset); | 130 | void (*access_smpc_reg)(struct gk20a *g, u32 quad, u32 offset); |
130 | void (*bundle_cb_defaults)(struct gk20a *g); | 131 | void (*bundle_cb_defaults)(struct gk20a *g); |
131 | void (*cb_size_default)(struct gk20a *g); | 132 | void (*cb_size_default)(struct gk20a *g); |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 0c64fcba..638f47f5 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -4587,6 +4587,12 @@ static int gk20a_init_gr_setup_hw(struct gk20a *g) | |||
4587 | if (err) | 4587 | if (err) |
4588 | goto out; | 4588 | goto out; |
4589 | 4589 | ||
4590 | if (g->ops.gr.init_preemption_state) { | ||
4591 | err = g->ops.gr.init_preemption_state(g); | ||
4592 | if (err) | ||
4593 | goto out; | ||
4594 | } | ||
4595 | |||
4590 | /* disable fe_go_idle */ | 4596 | /* disable fe_go_idle */ |
4591 | gk20a_writel(g, gr_fe_go_idle_timeout_r(), | 4597 | gk20a_writel(g, gr_fe_go_idle_timeout_r(), |
4592 | gr_fe_go_idle_timeout_count_disabled_f()); | 4598 | gr_fe_go_idle_timeout_count_disabled_f()); |