From 31024f85ebda64b0fed0e487f4730cfdccf9ee8e Mon Sep 17 00:00:00 2001 From: Aparna Das Date: Thu, 5 Apr 2018 19:20:40 -0700 Subject: nvgpu: vgpu: add support to query rop_l2 en masks Fetch ROP_L2 enable masks in addition to other parameters when guest sends command to query constants. Bug 200401223 Change-Id: Ie386f24caaf7acd1155fc3f2a5e8c1f27016970a Signed-off-by: Aparna Das (cherry picked from commit a08bb08fb9fff40138d26e5e9bfa21267ca6b6af) Reviewed-on: https://git-master.nvidia.com/r/1694911 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/vgpu/gr_vgpu.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'drivers/gpu/nvgpu/vgpu/gr_vgpu.c') diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c index a6cb3828..2f1280ac 100644 --- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c @@ -746,8 +746,23 @@ u32 vgpu_gr_get_max_lts_per_ltc(struct gk20a *g) u32 *vgpu_gr_rop_l2_en_mask(struct gk20a *g) { - /* no one use it yet */ - return NULL; + struct vgpu_priv_data *priv = vgpu_get_priv_data(g); + u32 i, max_fbps_count = priv->constants.num_fbps; + + gk20a_dbg_fn(""); + + if (g->gr.fbp_rop_l2_en_mask == NULL) { + g->gr.fbp_rop_l2_en_mask = + nvgpu_kzalloc(g, max_fbps_count * sizeof(u32)); + if (!g->gr.fbp_rop_l2_en_mask) + return NULL; + } + + g->gr.max_fbps_count = max_fbps_count; + for (i = 0; i < max_fbps_count; i++) + g->gr.fbp_rop_l2_en_mask[i] = priv->constants.l2_en_mask[i]; + + return g->gr.fbp_rop_l2_en_mask; } int vgpu_gr_add_zbc(struct gk20a *g, struct gr_gk20a *gr, @@ -840,6 +855,9 @@ static void vgpu_remove_gr_support(struct gr_gk20a *gr) nvgpu_kfree(gr->g, gr->gpc_tpc_count); gr->gpc_tpc_count = NULL; + + nvgpu_kfree(gr->g, gr->fbp_rop_l2_en_mask); + gr->fbp_rop_l2_en_mask = NULL; } static int vgpu_gr_init_gr_setup_sw(struct gk20a *g) -- cgit v1.2.2