summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
diff options
context:
space:
mode:
authorAparna Das <aparnad@nvidia.com>2018-04-05 22:20:40 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-04-23 01:13:29 -0400
commit31024f85ebda64b0fed0e487f4730cfdccf9ee8e (patch)
tree0bc83fb41758039c932bc54b373ab3725d88dbc3 /drivers/gpu/nvgpu/vgpu/gr_vgpu.c
parentd0e4dfd6efd651abc431aba9cfae5907638f8172 (diff)
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 <aparnad@nvidia.com> (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 <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/gr_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/gr_vgpu.c22
1 files changed, 20 insertions, 2 deletions
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)
746 746
747u32 *vgpu_gr_rop_l2_en_mask(struct gk20a *g) 747u32 *vgpu_gr_rop_l2_en_mask(struct gk20a *g)
748{ 748{
749 /* no one use it yet */ 749 struct vgpu_priv_data *priv = vgpu_get_priv_data(g);
750 return NULL; 750 u32 i, max_fbps_count = priv->constants.num_fbps;
751
752 gk20a_dbg_fn("");
753
754 if (g->gr.fbp_rop_l2_en_mask == NULL) {
755 g->gr.fbp_rop_l2_en_mask =
756 nvgpu_kzalloc(g, max_fbps_count * sizeof(u32));
757 if (!g->gr.fbp_rop_l2_en_mask)
758 return NULL;
759 }
760
761 g->gr.max_fbps_count = max_fbps_count;
762 for (i = 0; i < max_fbps_count; i++)
763 g->gr.fbp_rop_l2_en_mask[i] = priv->constants.l2_en_mask[i];
764
765 return g->gr.fbp_rop_l2_en_mask;
751} 766}
752 767
753int vgpu_gr_add_zbc(struct gk20a *g, struct gr_gk20a *gr, 768int 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)
840 855
841 nvgpu_kfree(gr->g, gr->gpc_tpc_count); 856 nvgpu_kfree(gr->g, gr->gpc_tpc_count);
842 gr->gpc_tpc_count = NULL; 857 gr->gpc_tpc_count = NULL;
858
859 nvgpu_kfree(gr->g, gr->fbp_rop_l2_en_mask);
860 gr->fbp_rop_l2_en_mask = NULL;
843} 861}
844 862
845static int vgpu_gr_init_gr_setup_sw(struct gk20a *g) 863static int vgpu_gr_init_gr_setup_sw(struct gk20a *g)