summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2016-05-10 18:44:06 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-05-13 19:07:00 -0400
commit773b3f2034fbff98af7770e735347f536cbbb21a (patch)
tree750f9e8962d3d4f2f9d27ef23d2c4855e8749e16 /drivers/gpu/nvgpu
parent50c6c9cfcd040742f3d242993576c65842006f92 (diff)
gpu: nvgpu: Do not program max ways evict
Setting max_ways_evict reserves some of L2 for CB. In gk20a CB is in dedicated RAM, so we don't need to reserve space for it. The code gets invoked only on gk20a. Change-Id: Ib8efec8c5e90c135bd0c10bb1eaa3f797ec68698 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1144993
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c7
-rw-r--r--drivers/gpu/nvgpu/gk20a/ltc_common.c14
-rw-r--r--drivers/gpu/nvgpu/gk20a/ltc_gk20a.c1
-rw-r--r--drivers/gpu/nvgpu/gm20b/ltc_gm20b.c1
5 files changed, 0 insertions, 24 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 2f85bf96..8dfe8eda 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -101,7 +101,6 @@ enum nvgpu_litter_value {
101struct gpu_ops { 101struct gpu_ops {
102 struct { 102 struct {
103 int (*determine_L2_size_bytes)(struct gk20a *gk20a); 103 int (*determine_L2_size_bytes)(struct gk20a *gk20a);
104 void (*set_max_ways_evict_last)(struct gk20a *g, u32 max_ways);
105 int (*init_comptags)(struct gk20a *g, struct gr_gk20a *gr); 104 int (*init_comptags)(struct gk20a *g, struct gr_gk20a *gr);
106 int (*cbc_ctrl)(struct gk20a *g, enum gk20a_cbc_op op, 105 int (*cbc_ctrl)(struct gk20a *g, enum gk20a_cbc_op op,
107 u32 min, u32 max); 106 u32 min, u32 max);
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 4638d597..c98da273 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -1293,7 +1293,6 @@ static int gr_gk20a_ctx_state_floorsweep(struct gk20a *g)
1293 u32 tpc_offset, gpc_offset; 1293 u32 tpc_offset, gpc_offset;
1294 u32 sm_id = 0, gpc_id = 0; 1294 u32 sm_id = 0, gpc_id = 0;
1295 u32 tpc_per_gpc; 1295 u32 tpc_per_gpc;
1296 u32 max_ways_evict = INVALID_MAX_WAYS;
1297 u32 gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_GPC_STRIDE); 1296 u32 gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_GPC_STRIDE);
1298 u32 tpc_in_gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_TPC_IN_GPC_STRIDE); 1297 u32 tpc_in_gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_TPC_IN_GPC_STRIDE);
1299 1298
@@ -1355,12 +1354,6 @@ static int gr_gk20a_ctx_state_floorsweep(struct gk20a *g)
1355 if (g->ops.gr.setup_alpha_beta_tables) 1354 if (g->ops.gr.setup_alpha_beta_tables)
1356 g->ops.gr.setup_alpha_beta_tables(g, gr); 1355 g->ops.gr.setup_alpha_beta_tables(g, gr);
1357 1356
1358 if (gr->num_fbps == 1)
1359 max_ways_evict = 9;
1360
1361 if (max_ways_evict != INVALID_MAX_WAYS)
1362 g->ops.ltc.set_max_ways_evict_last(g, max_ways_evict);
1363
1364 for (gpc_index = 0; 1357 for (gpc_index = 0;
1365 gpc_index < gr_pd_dist_skip_table__size_1_v() * 4; 1358 gpc_index < gr_pd_dist_skip_table__size_1_v() * 4;
1366 gpc_index += 4) { 1359 gpc_index += 4) {
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_common.c b/drivers/gpu/nvgpu/gk20a/ltc_common.c
index cc0932d9..a4d16b67 100644
--- a/drivers/gpu/nvgpu/gk20a/ltc_common.c
+++ b/drivers/gpu/nvgpu/gk20a/ltc_common.c
@@ -25,20 +25,6 @@
25#include "gr_gk20a.h" 25#include "gr_gk20a.h"
26 26
27/* 27/*
28 * Set the maximum number of ways that can have the "EVIST_LAST" class.
29 */
30static void gk20a_ltc_set_max_ways_evict_last(struct gk20a *g, u32 max_ways)
31{
32 u32 mgmt_reg;
33
34 mgmt_reg = gk20a_readl(g, ltc_ltcs_ltss_tstg_set_mgmt_r()) &
35 ~ltc_ltcs_ltss_tstg_set_mgmt_max_ways_evict_last_f(~0);
36 mgmt_reg |= ltc_ltcs_ltss_tstg_set_mgmt_max_ways_evict_last_f(max_ways);
37
38 gk20a_writel(g, ltc_ltcs_ltss_tstg_set_mgmt_r(), mgmt_reg);
39}
40
41/*
42 * Sets the ZBC color for the passed index. 28 * Sets the ZBC color for the passed index.
43 */ 29 */
44static void gk20a_ltc_set_zbc_color_entry(struct gk20a *g, 30static void gk20a_ltc_set_zbc_color_entry(struct gk20a *g,
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c
index 0ce4f91a..a2ecb345 100644
--- a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c
@@ -276,7 +276,6 @@ static int gk20a_determine_L2_size_bytes(struct gk20a *g)
276void gk20a_init_ltc(struct gpu_ops *gops) 276void gk20a_init_ltc(struct gpu_ops *gops)
277{ 277{
278 gops->ltc.determine_L2_size_bytes = gk20a_determine_L2_size_bytes; 278 gops->ltc.determine_L2_size_bytes = gk20a_determine_L2_size_bytes;
279 gops->ltc.set_max_ways_evict_last = gk20a_ltc_set_max_ways_evict_last;
280 gops->ltc.init_comptags = gk20a_ltc_init_comptags; 279 gops->ltc.init_comptags = gk20a_ltc_init_comptags;
281 gops->ltc.cbc_ctrl = gk20a_ltc_cbc_ctrl; 280 gops->ltc.cbc_ctrl = gk20a_ltc_cbc_ctrl;
282 gops->ltc.set_zbc_color_entry = gk20a_ltc_set_zbc_color_entry; 281 gops->ltc.set_zbc_color_entry = gk20a_ltc_set_zbc_color_entry;
diff --git a/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c b/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
index 4fc9d51b..56df6a5d 100644
--- a/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
@@ -394,7 +394,6 @@ void gm20b_init_ltc(struct gpu_ops *gops)
394{ 394{
395 /* Gk20a reused ops. */ 395 /* Gk20a reused ops. */
396 gops->ltc.determine_L2_size_bytes = gm20b_determine_L2_size_bytes; 396 gops->ltc.determine_L2_size_bytes = gm20b_determine_L2_size_bytes;
397 gops->ltc.set_max_ways_evict_last = gk20a_ltc_set_max_ways_evict_last;
398 gops->ltc.set_zbc_color_entry = gk20a_ltc_set_zbc_color_entry; 397 gops->ltc.set_zbc_color_entry = gk20a_ltc_set_zbc_color_entry;
399 gops->ltc.set_zbc_depth_entry = gk20a_ltc_set_zbc_depth_entry; 398 gops->ltc.set_zbc_depth_entry = gk20a_ltc_set_zbc_depth_entry;
400 gops->ltc.init_cbc = gk20a_ltc_init_cbc; 399 gops->ltc.init_cbc = gk20a_ltc_init_cbc;