mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 18:16:01 +03:00
gpu: nvgpu: Simplify pagepool size query
Make pagepool size query into a function instead of storing the value during boot time in a structure. This simplifies the structure and users of pagepool size do not need to worry about whether it has already been set. Change-Id: Iba16e840cdf9b6c39449730237aa7d8fdff47848 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/660907
This commit is contained in:
committed by
Dan Willemsen
parent
0abb99eb9c
commit
69bb5e1569
@@ -143,7 +143,7 @@ struct gpu_ops {
|
||||
struct zbc_entry *color_val, u32 index);
|
||||
int (*add_zbc_depth)(struct gk20a *g, struct gr_gk20a *gr,
|
||||
struct zbc_entry *depth_val, u32 index);
|
||||
void (*buffer_size_defaults)(struct gk20a *g);
|
||||
u32 (*pagepool_default_size)(struct gk20a *g);
|
||||
} gr;
|
||||
const char *name;
|
||||
struct {
|
||||
|
||||
@@ -858,7 +858,7 @@ static int gr_gk20a_commit_global_ctx_buffers(struct gk20a *g,
|
||||
size = gr->global_ctx_buffer[PAGEPOOL].size /
|
||||
gr_scc_pagepool_total_pages_byte_granularity_v();
|
||||
|
||||
if (size == gr->pagepool_default_size)
|
||||
if (size == g->ops.gr.pagepool_default_size(g))
|
||||
size = gr_scc_pagepool_total_pages_hwmax_v();
|
||||
|
||||
gk20a_dbg_info("pagepool buffer addr : 0x%016llx, size : %d",
|
||||
@@ -2301,7 +2301,7 @@ static int gr_gk20a_alloc_global_ctx_buffers(struct gk20a *g)
|
||||
u32 cb_buffer_size = gr->bundle_cb_default_size *
|
||||
gr_scc_bundle_cb_size_div_256b_byte_granularity_v();
|
||||
|
||||
u32 pagepool_buffer_size = gr->pagepool_default_size *
|
||||
u32 pagepool_buffer_size = g->ops.gr.pagepool_default_size(g) *
|
||||
gr_scc_pagepool_total_pages_byte_granularity_v();
|
||||
|
||||
gk20a_dbg_fn("");
|
||||
@@ -3187,7 +3187,6 @@ static int gr_gk20a_init_gr_config(struct gk20a *g, struct gr_gk20a *gr)
|
||||
g->ops.gr.bundle_cb_defaults(g);
|
||||
g->ops.gr.cb_size_default(g);
|
||||
g->ops.gr.calc_global_ctx_buffer_size(g);
|
||||
g->ops.gr.buffer_size_defaults(g);
|
||||
gr->timeslice_mode = gr_gpcs_ppcs_cbm_cfg_timeslice_mode_enable_v();
|
||||
|
||||
gk20a_dbg_info("bundle_cb_default_size: %d",
|
||||
@@ -7318,12 +7317,9 @@ void gk20a_resume_all_sms(struct gk20a *g)
|
||||
gr_gpcs_tpcs_sm_dbgr_control0_r(), dbgr_control0);
|
||||
}
|
||||
|
||||
static void gr_gk20a_buffer_size_defaults(struct gk20a *g)
|
||||
static u32 gr_gk20a_pagepool_default_size(struct gk20a *g)
|
||||
{
|
||||
g->gr.pagepool_default_size =
|
||||
gr_scc_pagepool_total_pages_hwmax_value_v();
|
||||
g->gr.pagepool_max_size =
|
||||
gr_scc_pagepool_total_pages_hwmax_value_v();
|
||||
return gr_scc_pagepool_total_pages_hwmax_value_v();
|
||||
}
|
||||
|
||||
void gk20a_init_gr_ops(struct gpu_ops *gops)
|
||||
@@ -7362,6 +7358,6 @@ void gk20a_init_gr_ops(struct gpu_ops *gops)
|
||||
gops->gr.detect_sm_arch = gr_gk20a_detect_sm_arch;
|
||||
gops->gr.add_zbc_color = gr_gk20a_add_zbc_color;
|
||||
gops->gr.add_zbc_depth = gr_gk20a_add_zbc_depth;
|
||||
gops->gr.buffer_size_defaults = gr_gk20a_buffer_size_defaults;
|
||||
gops->gr.pagepool_default_size = gr_gk20a_pagepool_default_size;
|
||||
}
|
||||
|
||||
|
||||
@@ -243,8 +243,6 @@ struct gr_gk20a {
|
||||
u32 alpha_cb_default_size;
|
||||
u32 alpha_cb_size;
|
||||
u32 timeslice_mode;
|
||||
u32 pagepool_default_size;
|
||||
u32 pagepool_max_size;
|
||||
|
||||
struct gr_ctx_buffer_desc global_ctx_buffer[NR_GLOBAL_CTX_BUF];
|
||||
|
||||
|
||||
@@ -770,12 +770,9 @@ static void gr_gm20b_detect_sm_arch(struct gk20a *g)
|
||||
gr_gpc0_tpc0_sm_arch_warp_count_v(v);
|
||||
}
|
||||
|
||||
static void gr_gm20b_buffer_size_defaults(struct gk20a *g)
|
||||
static u32 gr_gm20b_pagepool_default_size(struct gk20a *g)
|
||||
{
|
||||
g->gr.pagepool_default_size =
|
||||
gr_scc_pagepool_total_pages_hwmax_value_v();
|
||||
g->gr.pagepool_max_size =
|
||||
gr_scc_pagepool_total_pages_hwmax_value_v();
|
||||
return gr_scc_pagepool_total_pages_hwmax_value_v();
|
||||
}
|
||||
|
||||
void gm20b_init_gr(struct gpu_ops *gops)
|
||||
@@ -815,5 +812,5 @@ void gm20b_init_gr(struct gpu_ops *gops)
|
||||
gops->gr.detect_sm_arch = gr_gm20b_detect_sm_arch;
|
||||
gops->gr.add_zbc_color = gr_gk20a_add_zbc_color;
|
||||
gops->gr.add_zbc_depth = gr_gk20a_add_zbc_depth;
|
||||
gops->gr.buffer_size_defaults = gr_gm20b_buffer_size_defaults;
|
||||
gops->gr.pagepool_default_size = gr_gm20b_pagepool_default_size;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user