diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 504da8484..6959b86a9 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -302,6 +302,7 @@ struct gpu_ops { void (*program_sm_id_numbering)(struct gk20a *g, u32 gpc, u32 tpc, u32 smid); void (*program_active_tpc_counts)(struct gk20a *g, u32 gpc); + int (*setup_rop_mapping)(struct gk20a *g, struct gr_gk20a *gr); } gr; const char *name; struct { diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 9a201cb69..e78c40f32 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -1363,7 +1363,8 @@ int gr_gk20a_init_fs_state(struct gk20a *g) } /* gr__setup_pd_mapping stubbed for gk20a */ - gr_gk20a_setup_rop_mapping(g, gr); + if (g->ops.gr.setup_rop_mapping) + g->ops.gr.setup_rop_mapping(g, gr); if (g->ops.gr.setup_alpha_beta_tables) g->ops.gr.setup_alpha_beta_tables(g, gr); @@ -9055,4 +9056,5 @@ void gk20a_init_gr_ops(struct gpu_ops *gops) gr_gk20a_split_lts_broadcast_addr_stub; gops->gr.split_ltc_broadcast_addr = gr_gk20a_split_ltc_broadcast_addr_stub; + gops->gr.setup_rop_mapping = gr_gk20a_setup_rop_mapping; }