diff --git a/drivers/gpu/nvgpu/common/gr/gr_falcon.c b/drivers/gpu/nvgpu/common/gr/gr_falcon.c index 4522d22b7..c1056e96e 100644 --- a/drivers/gpu/nvgpu/common/gr/gr_falcon.c +++ b/drivers/gpu/nvgpu/common/gr/gr_falcon.c @@ -97,8 +97,8 @@ int nvgpu_gr_falcon_bind_fecs_elpg(struct gk20a *g) return err; } - if (pmu->pg->pg_buf.cpu_va == NULL) { - err = nvgpu_dma_alloc_map_sys(vm, size, &pmu->pg->pg_buf); + if (nvgpu_pmu_pg_buf_get_cpu_va(pmu) == NULL) { + err = nvgpu_dma_alloc_map_sys(vm, size, nvgpu_pmu_pg_buf(pmu)); if (err != 0) { nvgpu_err(g, "failed to allocate memory"); return -ENOMEM; @@ -115,7 +115,7 @@ int nvgpu_gr_falcon_bind_fecs_elpg(struct gk20a *g) return err; } - data = u64_lo32(pmu->pg->pg_buf.gpu_va >> 8); + data = u64_lo32(nvgpu_pmu_pg_buf_get_gpu_va(pmu) >> 8); err = g->ops.gr.falcon.ctrl_ctxsw(g, NVGPU_GR_FALCON_METHOD_REGLIST_SET_VIRTUAL_ADDRESS, data, NULL); if (err != 0) { diff --git a/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c b/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c index 43af40f16..6db4a8fab 100644 --- a/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c +++ b/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.c @@ -1094,3 +1094,18 @@ bool nvgpu_pmu_is_lpwr_feature_supported(struct gk20a *g, u32 feature_id) return pmu->pg->is_lpwr_feature_supported(g, feature_id); } + +u64 nvgpu_pmu_pg_buf_get_gpu_va(struct nvgpu_pmu *pmu) +{ + return pmu->pg->pg_buf.gpu_va; +} + +struct nvgpu_mem *nvgpu_pmu_pg_buf(struct nvgpu_pmu *pmu) +{ + return &pmu->pg->pg_buf; +} + +void *nvgpu_pmu_pg_buf_get_cpu_va(struct nvgpu_pmu *pmu) +{ + return pmu->pg->pg_buf.cpu_va; +} diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmu_pg.h b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmu_pg.h index e9c7fdcf0..d721a1583 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmu_pg.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmu_pg.h @@ -141,4 +141,8 @@ int nvgpu_pmu_elpg_statistics(struct gk20a *g, u32 pg_engine_id, void nvgpu_pmu_save_zbc(struct gk20a *g, u32 entries); bool nvgpu_pmu_is_lpwr_feature_supported(struct gk20a *g, u32 feature_id); +u64 nvgpu_pmu_pg_buf_get_gpu_va(struct nvgpu_pmu *pmu); +struct nvgpu_mem *nvgpu_pmu_pg_buf(struct nvgpu_pmu *pmu); +void *nvgpu_pmu_pg_buf_get_cpu_va(struct nvgpu_pmu *pmu); + #endif /* NVGPU_PMU_PG_H */