diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index 8514cc1e9..8d8f56f69 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c @@ -2382,6 +2382,7 @@ void gr_gv11b_set_preemption_buffer_va(struct gk20a *g, int gr_gv11b_init_fs_state(struct gk20a *g) { u32 data; + int err; gk20a_dbg_fn(""); @@ -2401,7 +2402,20 @@ int gr_gv11b_init_fs_state(struct gk20a *g) g->gr.fecs_feature_override_ecc_val); } - return gr_gm20b_init_fs_state(g); + err = gr_gk20a_init_fs_state(g); + if (err) + return err; + + g->ops.gr.load_tpc_mask(g); + + gk20a_writel(g, gr_bes_zrop_settings_r(), + gr_bes_zrop_settings_num_active_ltcs_f(g->ltc_count)); + gk20a_writel(g, gr_bes_crop_settings_r(), + gr_bes_crop_settings_num_active_ltcs_f(g->ltc_count)); + + g->ops.gr.load_smid_config(g); + + return err; } void gv11b_gr_get_esr_sm_sel(struct gk20a *g, u32 gpc, u32 tpc, diff --git a/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c b/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c index a199e024b..8661b4209 100644 --- a/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c @@ -69,10 +69,6 @@ void gv11b_ltc_init_fs_state(struct gk20a *g) g->ltc_count = gk20a_readl(g, pri_ringmaster_enum_ltc_r()); gk20a_dbg_info("%u ltcs out of %u", g->ltc_count, g->max_ltc_count); - gk20a_writel(g, ltc_ltcs_ltss_dstg_cfg0_r(), - gk20a_readl(g, ltc_ltc0_lts0_dstg_cfg0_r()) | - ltc_ltcs_ltss_dstg_cfg0_vdc_4to2_disable_m()); - /* Disable LTC interrupts */ reg = gk20a_readl(g, ltc_ltcs_ltss_intr_r()); reg &= ~ltc_ltcs_ltss_intr_en_evicted_cb_m();