diff --git a/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c b/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c index 5bc8be27e..cfd08fab8 100644 --- a/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c +++ b/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c @@ -29,7 +29,6 @@ #include #include #include -#include /* state transition : * OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF @@ -536,7 +535,7 @@ int nvgpu_pmu_init_powergating(struct gk20a *g) pg_engine_id_list = g->ops.pmu.pmu_pg_supported_engines_list(g); } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); for (pg_engine_id = PMU_PG_ELPG_ENGINE_ID_GRAPHICS; pg_engine_id < PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE; diff --git a/drivers/gpu/nvgpu/common/power_features/cg/cg.c b/drivers/gpu/nvgpu/common/power_features/cg/cg.c index 5bb75efda..57a501105 100644 --- a/drivers/gpu/nvgpu/common/power_features/cg/cg.c +++ b/drivers/gpu/nvgpu/common/power_features/cg/cg.c @@ -21,7 +21,6 @@ */ #include -#include #include #include @@ -94,7 +93,7 @@ void nvgpu_cg_elcg_enable(struct gk20a *g) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (g->elcg_enabled) { @@ -111,7 +110,7 @@ void nvgpu_cg_elcg_disable(struct gk20a *g) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (g->elcg_enabled) { @@ -129,7 +128,7 @@ void nvgpu_cg_blcg_mode_enable(struct gk20a *g) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (g->blcg_enabled) { @@ -147,7 +146,7 @@ void nvgpu_cg_blcg_mode_disable(struct gk20a *g) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (g->blcg_enabled) { @@ -305,7 +304,7 @@ void nvgpu_cg_slcg_gr_perf_ltc_load_enable(struct gk20a *g) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (!g->slcg_enabled) { @@ -332,7 +331,7 @@ void nvgpu_cg_slcg_gr_perf_ltc_load_disable(struct gk20a *g) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (!g->slcg_enabled) { @@ -476,7 +475,7 @@ void nvgpu_cg_elcg_set_elcg_enabled(struct gk20a *g, bool enable) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_release(&g->cg_pg_lock); if (enable) { @@ -503,7 +502,7 @@ void nvgpu_cg_blcg_set_blcg_enabled(struct gk20a *g, bool enable) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (enable) { @@ -564,7 +563,7 @@ void nvgpu_cg_slcg_set_slcg_enabled(struct gk20a *g, bool enable) return; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (enable) { diff --git a/drivers/gpu/nvgpu/common/power_features/pg/pg.c b/drivers/gpu/nvgpu/common/power_features/pg/pg.c index 6758569cb..ad7592eb6 100644 --- a/drivers/gpu/nvgpu/common/power_features/pg/pg.c +++ b/drivers/gpu/nvgpu/common/power_features/pg/pg.c @@ -21,7 +21,6 @@ */ #include -#include #include #include @@ -47,7 +46,7 @@ int nvgpu_pg_elpg_enable(struct gk20a *g) return 0; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (g->elpg_enabled) { @@ -67,7 +66,7 @@ int nvgpu_pg_elpg_disable(struct gk20a *g) return 0; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (g->elpg_enabled) { @@ -88,7 +87,7 @@ int nvgpu_pg_elpg_set_elpg_enabled(struct gk20a *g, bool enable) return 0; } - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_mutex_acquire(&g->cg_pg_lock); if (enable) { diff --git a/drivers/gpu/nvgpu/common/power_features/power_features.c b/drivers/gpu/nvgpu/common/power_features/power_features.c index 43e557dbe..a357b401b 100644 --- a/drivers/gpu/nvgpu/common/power_features/power_features.c +++ b/drivers/gpu/nvgpu/common/power_features/power_features.c @@ -21,7 +21,6 @@ */ #include -#include #include #include #include @@ -32,7 +31,7 @@ int nvgpu_cg_pg_disable(struct gk20a *g) nvgpu_log_fn(g, " "); - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); /* disable elpg before clock gating */ err = nvgpu_pg_elpg_disable(g); @@ -54,7 +53,7 @@ int nvgpu_cg_pg_enable(struct gk20a *g) nvgpu_log_fn(g, " "); - nvgpu_gr_wait_initialized(g); + g->ops.gr.init.wait_initialized(g); nvgpu_cg_elcg_enable(g); diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 083105a5c..47bb44b4f 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -411,6 +412,7 @@ static const struct gpu_ops gm20b_ops = { .program_zcull_mapping = gm20b_gr_program_zcull_mapping, }, .init = { + .wait_initialized = nvgpu_gr_wait_initialized, .ecc_scrub_reg = NULL, .get_fbp_en_mask = gm20b_gr_init_get_fbp_en_mask, .lg_coalesce = gm20b_gr_init_lg_coalesce, diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index 916820654..da49e201f 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c @@ -41,6 +41,7 @@ #include #include #include +#include #include "hal/mc/mc_gm20b.h" #include "hal/mc/mc_gp10b.h" @@ -481,6 +482,7 @@ static const struct gpu_ops gp10b_ops = { .program_zcull_mapping = gm20b_gr_program_zcull_mapping, }, .init = { + .wait_initialized = nvgpu_gr_wait_initialized, .ecc_scrub_reg = NULL, .get_fbp_en_mask = gm20b_gr_init_get_fbp_en_mask, .lg_coalesce = gm20b_gr_init_lg_coalesce, diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 8791716dc..8178c4819 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c @@ -170,6 +170,7 @@ #include #include #include +#include #include #include @@ -622,6 +623,7 @@ static const struct gpu_ops gv100_ops = { gv100_gr_hwpm_map_get_active_fbpa_mask, }, .init = { + .wait_initialized = nvgpu_gr_wait_initialized, .ecc_scrub_reg = NULL, .get_fbp_en_mask = gm20b_gr_init_get_fbp_en_mask, .lg_coalesce = gm20b_gr_init_lg_coalesce, diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 0e919478b..e66a5ded7 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c @@ -145,6 +145,7 @@ #include #include #include +#include #include #include @@ -580,6 +581,7 @@ static const struct gpu_ops gv11b_ops = { gv100_gr_hwpm_map_align_regs_perf_pma, }, .init = { + .wait_initialized = nvgpu_gr_wait_initialized, .ecc_scrub_reg = gv11b_gr_init_ecc_scrub_reg, .get_fbp_en_mask = gm20b_gr_init_get_fbp_en_mask, .lg_coalesce = gm20b_gr_init_lg_coalesce, diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 4a732492b..b51b4af72 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -680,6 +680,7 @@ struct gpu_ops { } hwpm_map; struct { + void (*wait_initialized)(struct gk20a *g); void (*ecc_scrub_reg)(struct gk20a *g, struct nvgpu_gr_config *gr_config); u32 (*get_fbp_en_mask)(struct gk20a *g); diff --git a/drivers/gpu/nvgpu/tu104/hal_tu104.c b/drivers/gpu/nvgpu/tu104/hal_tu104.c index 8b9449b8b..f7d281108 100644 --- a/drivers/gpu/nvgpu/tu104/hal_tu104.c +++ b/drivers/gpu/nvgpu/tu104/hal_tu104.c @@ -189,6 +189,7 @@ #include #include #include +#include #include #include @@ -650,6 +651,7 @@ static const struct gpu_ops tu104_ops = { gv100_gr_hwpm_map_get_active_fbpa_mask, }, .init = { + .wait_initialized = nvgpu_gr_wait_initialized, .ecc_scrub_reg = NULL, .get_fbp_en_mask = gm20b_gr_init_get_fbp_en_mask, .lg_coalesce = gm20b_gr_init_lg_coalesce,