From e7047d01517c44094eb7a62194e7cadd2c36625d Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Fri, 15 Mar 2019 19:19:46 +0530 Subject: [PATCH] gpu: nvgpu: move circular/pagepool buffer size hals to hal.gr.init unit Move g->ops.gr.get_global_ctx_cb_buffer_size() and g->ops.gr.get_global_ctx_pagepool_buffer_size() hals to hal.gr.init unit Move corresponding hal definitions to hal.gr.init unit Jira NVGPU-2961 Change-Id: Ifff3e2073f6d9bca5b37244f7e107bad885e7ca7 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/2077215 Reviewed-by: mobile promotions Tested-by: mobile promotions --- .../gpu/nvgpu/common/vgpu/gp10b/vgpu_hal_gp10b.c | 8 ++++---- drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c | 4 ++-- .../gpu/nvgpu/common/vgpu/gv11b/vgpu_hal_gv11b.c | 9 +++++---- drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 16 ++-------------- drivers/gpu/nvgpu/gk20a/gr_gk20a.h | 2 -- drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 8 ++++---- drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 8 ++++---- drivers/gpu/nvgpu/gv100/hal_gv100.c | 8 ++++---- drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 8 ++++---- drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.c | 12 ++++++++++++ drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.h | 2 ++ drivers/gpu/nvgpu/include/nvgpu/gk20a.h | 5 +++-- drivers/gpu/nvgpu/tu104/hal_tu104.c | 8 ++++---- 13 files changed, 50 insertions(+), 48 deletions(-) diff --git a/drivers/gpu/nvgpu/common/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/common/vgpu/gp10b/vgpu_hal_gp10b.c index b1fd94c6d..067aa452e 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gp10b/vgpu_hal_gp10b.c +++ b/drivers/gpu/nvgpu/common/vgpu/gp10b/vgpu_hal_gp10b.c @@ -212,10 +212,6 @@ static const struct gpu_ops vgpu_gp10b_ops = { .get_ctx_pagepool_size = gp10b_gr_get_ctx_pagepool_size, .get_ctx_betacb_size = gp10b_gr_get_ctx_betacb_size, .get_ctx_attrib_cb_size = gp10b_gr_get_ctx_attrib_cb_size, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .halt_pipe = NULL, .reset = NULL, .ctxsw_prog = { @@ -344,6 +340,10 @@ static const struct gpu_ops vgpu_gp10b_ops = { gp10b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gp10b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .perf = { diff --git a/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c b/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c index f09b937fa..116c57591 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c +++ b/drivers/gpu/nvgpu/common/vgpu/gr/gr_vgpu.c @@ -155,13 +155,13 @@ int vgpu_gr_alloc_global_ctx_buffers(struct gk20a *g) return -ENOMEM; } - size = g->ops.gr.get_global_ctx_cb_buffer_size(g); + size = g->ops.gr.init.get_global_ctx_cb_buffer_size(g); nvgpu_log_info(g, "cb_buffer_size : %d", size); nvgpu_gr_global_ctx_set_size(gr->global_ctx_buffer, NVGPU_GR_GLOBAL_CTX_CIRCULAR, size); - size = g->ops.gr.get_global_ctx_pagepool_buffer_size(g); + size = g->ops.gr.init.get_global_ctx_pagepool_buffer_size(g); nvgpu_log_info(g, "pagepool_buffer_size : %d", size); nvgpu_gr_global_ctx_set_size(gr->global_ctx_buffer, diff --git a/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_hal_gv11b.c index ee58bcc08..3d859e76b 100644 --- a/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_hal_gv11b.c +++ b/drivers/gpu/nvgpu/common/vgpu/gv11b/vgpu_hal_gv11b.c @@ -40,6 +40,7 @@ #include "hal/fb/fb_gm20b.h" #include "hal/fb/fb_gp10b.h" #include "hal/fb/fb_gv11b.h" +#include "hal/gr/init/gr_init_gm20b.h" #include "hal/gr/init/gr_init_gv11b.h" #include "common/netlist/netlist_gv11b.h" @@ -245,10 +246,6 @@ static const struct gpu_ops vgpu_gv11b_ops = { .get_ctx_pagepool_size = gv11b_gr_get_ctx_pagepool_size, .get_ctx_betacb_size = gv11b_gr_get_ctx_betacb_size, .get_ctx_attrib_cb_size = gv11b_gr_get_ctx_attrib_cb_size, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .halt_pipe = NULL, .reset = NULL, .ctxsw_prog = { @@ -391,6 +388,10 @@ static const struct gpu_ops vgpu_gv11b_ops = { gv11b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gv11b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .perf = { diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index a73230fdc..0a6969829 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -1660,7 +1660,7 @@ int gr_gk20a_alloc_global_ctx_buffers(struct gk20a *g) nvgpu_log_fn(g, " "); - size = g->ops.gr.get_global_ctx_cb_buffer_size(g); + size = g->ops.gr.init.get_global_ctx_cb_buffer_size(g); nvgpu_log_info(g, "cb_buffer_size : %d", size); nvgpu_gr_global_ctx_set_size(gr->global_ctx_buffer, @@ -1668,7 +1668,7 @@ int gr_gk20a_alloc_global_ctx_buffers(struct gk20a *g) nvgpu_gr_global_ctx_set_size(gr->global_ctx_buffer, NVGPU_GR_GLOBAL_CTX_CIRCULAR_VPR, size); - size = g->ops.gr.get_global_ctx_pagepool_buffer_size(g); + size = g->ops.gr.init.get_global_ctx_pagepool_buffer_size(g); nvgpu_log_info(g, "pagepool_buffer_size : %d", size); nvgpu_gr_global_ctx_set_size(gr->global_ctx_buffer, @@ -6269,15 +6269,3 @@ u32 gr_gk20a_gpccs_falcon_base_addr(void) { return gr_gpcs_gpccs_irqsset_r(); } - -u32 gk20a_gr_get_global_ctx_cb_buffer_size(struct gk20a *g) -{ - return g->ops.gr.init.get_bundle_cb_default_size(g) * - gr_scc_bundle_cb_size_div_256b_byte_granularity_v(); -} - -u32 gk20a_gr_get_global_ctx_pagepool_buffer_size(struct gk20a *g) -{ - return g->ops.gr.pagepool_default_size(g) * - gr_scc_pagepool_total_pages_byte_granularity_v(); -} diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h index 72db5676e..bf78b9fc1 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h @@ -545,6 +545,4 @@ void gk20a_gr_flush_channel_tlb(struct gr_gk20a *gr); u32 gk20a_gr_get_fecs_ctx_state_store_major_rev_id(struct gk20a *g); u32 gr_gk20a_fecs_falcon_base_addr(void); u32 gr_gk20a_gpccs_falcon_base_addr(void); -u32 gk20a_gr_get_global_ctx_cb_buffer_size(struct gk20a *g); -u32 gk20a_gr_get_global_ctx_pagepool_buffer_size(struct gk20a *g); #endif /*__GR_GK20A_H__*/ diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index a98acd7be..c27e565a1 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c @@ -326,10 +326,6 @@ static const struct gpu_ops gm20b_ops = { gk20a_gr_get_fecs_ctx_state_store_major_rev_id, .init_gfxp_rtv_cb = NULL, .log_mme_exception = NULL, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .halt_pipe = gr_gk20a_halt_pipe, .reset = gk20a_gr_reset, .ctxsw_prog = { @@ -453,6 +449,10 @@ static const struct gpu_ops gm20b_ops = { gm20b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gm20b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .fb = { diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index 97e323c17..887519da8 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c @@ -363,10 +363,6 @@ static const struct gpu_ops gp10b_ops = { .get_ctx_pagepool_size = gp10b_gr_get_ctx_pagepool_size, .get_ctx_betacb_size = gp10b_gr_get_ctx_betacb_size, .get_ctx_attrib_cb_size = gp10b_gr_get_ctx_attrib_cb_size, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .halt_pipe = gr_gk20a_halt_pipe, .reset = gk20a_gr_reset, .ctxsw_prog = { @@ -529,6 +525,10 @@ static const struct gpu_ops gp10b_ops = { gp10b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gp10b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .fb = { diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 6738910ae..e0e8ce686 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c @@ -486,10 +486,6 @@ static const struct gpu_ops gv100_ops = { .get_ctx_pagepool_size = gp10b_gr_get_ctx_pagepool_size, .get_ctx_betacb_size = gp10b_gr_get_ctx_betacb_size, .get_ctx_attrib_cb_size = gp10b_gr_get_ctx_attrib_cb_size, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .halt_pipe = gr_gk20a_halt_pipe, .reset = gk20a_gr_reset, .ctxsw_prog = { @@ -668,6 +664,10 @@ static const struct gpu_ops gv100_ops = { gv11b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gv11b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .fb = { diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 6b9b148eb..779b55e37 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c @@ -445,10 +445,6 @@ static const struct gpu_ops gv11b_ops = { .get_ctx_pagepool_size = gv11b_gr_get_ctx_pagepool_size, .get_ctx_betacb_size = gv11b_gr_get_ctx_betacb_size, .get_ctx_attrib_cb_size = gv11b_gr_get_ctx_attrib_cb_size, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .get_ctxsw_checksum_mismatch_mailbox_val = gr_gv11b_ctxsw_checksum_mismatch_mailbox_val, .halt_pipe = gr_gk20a_halt_pipe, @@ -627,6 +623,10 @@ static const struct gpu_ops gv11b_ops = { gv11b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gv11b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .fb = { diff --git a/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.c b/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.c index 66a96c8b1..dcfdde2cd 100644 --- a/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.c +++ b/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.c @@ -740,3 +740,15 @@ u32 gm20b_gr_init_get_global_attr_cb_size(struct gk20a *g, u32 tpc_count, return size; } +u32 gm20b_gr_init_get_global_ctx_cb_buffer_size(struct gk20a *g) +{ + return g->ops.gr.init.get_bundle_cb_default_size(g) * + gr_scc_bundle_cb_size_div_256b_byte_granularity_v(); +} + +u32 gm20b_gr_init_get_global_ctx_pagepool_buffer_size(struct gk20a *g) +{ + return g->ops.gr.pagepool_default_size(g) * + gr_scc_pagepool_total_pages_byte_granularity_v(); +} + diff --git a/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.h b/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.h index f2f75d31c..6d9932f43 100644 --- a/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.h +++ b/drivers/gpu/nvgpu/hal/gr/init/gr_init_gm20b.h @@ -65,5 +65,7 @@ u32 gm20b_gr_init_get_attrib_cb_size(struct gk20a *g, u32 tpc_count); u32 gm20b_gr_init_get_alpha_cb_size(struct gk20a *g, u32 tpc_count); u32 gm20b_gr_init_get_global_attr_cb_size(struct gk20a *g, u32 tpc_count, u32 max_tpc); +u32 gm20b_gr_init_get_global_ctx_cb_buffer_size(struct gk20a *g); +u32 gm20b_gr_init_get_global_ctx_pagepool_buffer_size(struct gk20a *g); #endif /* NVGPU_GR_INIT_GM20B_H */ diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 7b102b319..7e8b71050 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -491,8 +491,6 @@ struct gpu_ops { u32 (*get_ctx_pagepool_size)(struct gk20a *g); u32 (*get_ctx_betacb_size)(struct gk20a *g); u32 (*get_ctx_attrib_cb_size)(struct gk20a *g, u32 betacb_size); - u32 (*get_global_ctx_cb_buffer_size)(struct gk20a *g); - u32 (*get_global_ctx_pagepool_buffer_size)(struct gk20a *g); int (*halt_pipe)(struct gk20a *g); int (*reset)(struct gk20a *g); struct { @@ -710,6 +708,9 @@ struct gpu_ops { u32 tpc_count); u32 (*get_global_attr_cb_size)(struct gk20a *g, u32 tpc_count, u32 max_tpc); + u32 (*get_global_ctx_cb_buffer_size)(struct gk20a *g); + u32 (*get_global_ctx_pagepool_buffer_size)( + struct gk20a *g); } init; u32 (*get_ctxsw_checksum_mismatch_mailbox_val)(void); diff --git a/drivers/gpu/nvgpu/tu104/hal_tu104.c b/drivers/gpu/nvgpu/tu104/hal_tu104.c index 7506241d4..fc8e0e77a 100644 --- a/drivers/gpu/nvgpu/tu104/hal_tu104.c +++ b/drivers/gpu/nvgpu/tu104/hal_tu104.c @@ -514,10 +514,6 @@ static const struct gpu_ops tu104_ops = { .get_ctx_pagepool_size = gp10b_gr_get_ctx_pagepool_size, .get_ctx_betacb_size = gp10b_gr_get_ctx_betacb_size, .get_ctx_attrib_cb_size = gp10b_gr_get_ctx_attrib_cb_size, - .get_global_ctx_cb_buffer_size = - gk20a_gr_get_global_ctx_cb_buffer_size, - .get_global_ctx_pagepool_buffer_size = - gk20a_gr_get_global_ctx_pagepool_buffer_size, .halt_pipe = gr_gk20a_halt_pipe, .reset = gk20a_gr_reset, .ctxsw_prog = { @@ -700,6 +696,10 @@ static const struct gpu_ops tu104_ops = { gv11b_gr_init_get_alpha_cb_size, .get_global_attr_cb_size = gv11b_gr_init_get_global_attr_cb_size, + .get_global_ctx_cb_buffer_size = + gm20b_gr_init_get_global_ctx_cb_buffer_size, + .get_global_ctx_pagepool_buffer_size = + gm20b_gr_init_get_global_ctx_pagepool_buffer_size, }, }, .fb = {