diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c index 3341721c..36fad8b3 100644 --- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c | |||
@@ -1087,15 +1087,17 @@ u32 *gr_gm20b_rop_l2_en_mask(struct gk20a *g) | |||
1087 | { | 1087 | { |
1088 | struct gr_gk20a *gr = &g->gr; | 1088 | struct gr_gk20a *gr = &g->gr; |
1089 | u32 i, tmp, max_fbps_count, max_ltc_per_fbp; | 1089 | u32 i, tmp, max_fbps_count, max_ltc_per_fbp; |
1090 | unsigned long fbp_en_mask; | ||
1090 | u32 rop_l2_all_en; | 1091 | u32 rop_l2_all_en; |
1091 | 1092 | ||
1092 | tmp = gk20a_readl(g, top_num_fbps_r()); | 1093 | tmp = gk20a_readl(g, top_num_fbps_r()); |
1093 | max_fbps_count = top_num_fbps_value_v(tmp); | 1094 | max_fbps_count = top_num_fbps_value_v(tmp); |
1094 | max_ltc_per_fbp = gr_gm20b_get_max_ltc_per_fbp(g); | 1095 | max_ltc_per_fbp = gr_gm20b_get_max_ltc_per_fbp(g); |
1095 | rop_l2_all_en = (1 << max_ltc_per_fbp) - 1; | 1096 | rop_l2_all_en = (1 << max_ltc_per_fbp) - 1; |
1097 | fbp_en_mask = gr_gm20b_get_fbp_en_mask(g); | ||
1096 | 1098 | ||
1097 | /* mask of Rop_L2 for each FBP */ | 1099 | /* mask of Rop_L2 for each FBP */ |
1098 | for (i = 0; i < max_fbps_count; i++) { | 1100 | for_each_set_bit(i, &fbp_en_mask, max_fbps_count) { |
1099 | tmp = gk20a_readl(g, fuse_status_opt_rop_l2_fbp_r(i)); | 1101 | tmp = gk20a_readl(g, fuse_status_opt_rop_l2_fbp_r(i)); |
1100 | gr->fbp_rop_l2_en_mask[i] = rop_l2_all_en ^ tmp; | 1102 | gr->fbp_rop_l2_en_mask[i] = rop_l2_all_en ^ tmp; |
1101 | } | 1103 | } |