summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-04-24 13:13:43 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:52:05 -0500
commitb9999f25cce027c50c17200f4d5f1090f31a578b (patch)
treea8f1c40037a480f65c411922591709c490cf2de0 /drivers/gpu/nvgpu/gp10b/gr_gp10b.c
parentc0e798c25035daaf7f5b67953f8aa9a0210c76f9 (diff)
gpu: nvgpu: gp10b: Dynamic GfxP buffer size
Calculate GFXP attrib cb buffer size from the global buffer size. Bug 1628352 Change-Id: If4edfbf5700334b791dbf8e5cf38fd0208ee7fa1 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/735717
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r--drivers/gpu/nvgpu/gp10b/gr_gp10b.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
index 96070df7..1b88112e 100644
--- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
@@ -476,17 +476,20 @@ static int gr_gp10b_alloc_gr_ctx(struct gk20a *g,
476 if (flags == NVGPU_GR_PREEMPTION_MODE_GFXP) { 476 if (flags == NVGPU_GR_PREEMPTION_MODE_GFXP) {
477 u32 spill_size = 477 u32 spill_size =
478 gr_gpc0_swdx_rm_spill_buffer_size_256b_default_v(); 478 gr_gpc0_swdx_rm_spill_buffer_size_256b_default_v();
479 u32 betacb_size = ALIGN(
480 (gr_gpc0_ppc0_cbm_beta_cb_size_v_gfxp_v() *
481 gr_gpc0_ppc0_cbm_beta_cb_size_v_granularity_v() *
482 g->gr.max_tpc_count) +
483 (g->gr.alpha_cb_size *
484 gr_gpc0_ppc0_cbm_beta_cb_size_v_granularity_v() *
485 g->gr.max_tpc_count),
486 128);
487 u32 pagepool_size = g->ops.gr.pagepool_default_size(g) * 479 u32 pagepool_size = g->ops.gr.pagepool_default_size(g) *
488 gr_scc_pagepool_total_pages_byte_granularity_v(); 480 gr_scc_pagepool_total_pages_byte_granularity_v();
489 481 u32 betacb_size = g->gr.attrib_cb_default_size +
482 (gr_gpc0_ppc0_cbm_beta_cb_size_v_gfxp_v() -
483 gr_gpc0_ppc0_cbm_beta_cb_size_v_default_v());
484 u32 attrib_cb_size = (betacb_size + g->gr.alpha_cb_size) *
485 gr_gpc0_ppc0_cbm_beta_cb_size_v_granularity_v() *
486 g->gr.max_tpc_count;
487 attrib_cb_size = ALIGN(attrib_cb_size, 128);
488
489 gk20a_dbg_info("gfxp context spill_size=%d", spill_size);
490 gk20a_dbg_info("gfxp context pagepool_size=%d", pagepool_size);
491 gk20a_dbg_info("gfxp context attrib_cb_size=%d",
492 attrib_cb_size);
490 err = gk20a_gmmu_alloc_map(vm, g->gr.t18x.ctx_vars.preempt_image_size, 493 err = gk20a_gmmu_alloc_map(vm, g->gr.t18x.ctx_vars.preempt_image_size,
491 &(*gr_ctx)->t18x.preempt_ctxsw_buffer); 494 &(*gr_ctx)->t18x.preempt_ctxsw_buffer);
492 if (err) { 495 if (err) {