summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.c49
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.h13
2 files changed, 1 insertions, 61 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
index 03728378..a9457330 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
@@ -220,7 +220,7 @@ static void set_pmu_cmdline_args_falctracedmabase_v5(struct nvgpu_pmu *pmu)
220{ 220{
221 struct gk20a *g = gk20a_from_pmu(pmu); 221 struct gk20a *g = gk20a_from_pmu(pmu);
222 222
223 gk20a_pmu_surface_describe(g, &pmu->trace_buf, &pmu->args_v5.trace_buf); 223 nvgpu_pmu_surface_describe(g, &pmu->trace_buf, &pmu->args_v5.trace_buf);
224} 224}
225 225
226static void set_pmu_cmdline_args_falctracedmaidx_v5( 226static void set_pmu_cmdline_args_falctracedmaidx_v5(
@@ -3789,53 +3789,6 @@ void gk20a_pmu_isr(struct gk20a *g)
3789 nvgpu_mutex_release(&pmu->isr_mutex); 3789 nvgpu_mutex_release(&pmu->isr_mutex);
3790} 3790}
3791 3791
3792void gk20a_pmu_surface_describe(struct gk20a *g, struct nvgpu_mem *mem,
3793 struct flcn_mem_desc_v0 *fb)
3794{
3795 fb->address.lo = u64_lo32(mem->gpu_va);
3796 fb->address.hi = u64_hi32(mem->gpu_va);
3797 fb->params = ((u32)mem->size & 0xFFFFFF);
3798 fb->params |= (GK20A_PMU_DMAIDX_VIRT << 24);
3799}
3800
3801int gk20a_pmu_vidmem_surface_alloc(struct gk20a *g, struct nvgpu_mem *mem,
3802 u32 size)
3803{
3804 struct mm_gk20a *mm = &g->mm;
3805 struct vm_gk20a *vm = mm->pmu.vm;
3806 int err;
3807
3808 err = nvgpu_dma_alloc_map_vid(vm, size, mem);
3809 if (err) {
3810 nvgpu_err(g, "memory allocation failed");
3811 return -ENOMEM;
3812 }
3813
3814 return 0;
3815}
3816
3817int gk20a_pmu_sysmem_surface_alloc(struct gk20a *g, struct nvgpu_mem *mem,
3818 u32 size)
3819{
3820 struct mm_gk20a *mm = &g->mm;
3821 struct vm_gk20a *vm = mm->pmu.vm;
3822 int err;
3823
3824 err = nvgpu_dma_alloc_map_sys(vm, size, mem);
3825 if (err) {
3826 nvgpu_err(g, "failed to allocate memory");
3827 return -ENOMEM;
3828 }
3829
3830 return 0;
3831}
3832
3833void gk20a_pmu_surface_free(struct gk20a *g, struct nvgpu_mem *mem)
3834{
3835 nvgpu_dma_free(g, mem);
3836 memset(mem, 0, sizeof(struct nvgpu_mem));
3837}
3838
3839int gk20a_pmu_pg_global_enable(struct gk20a *g, u32 enable_pg) 3792int gk20a_pmu_pg_global_enable(struct gk20a *g, u32 enable_pg)
3840{ 3793{
3841 u32 status = 0; 3794 u32 status = 0;
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
index 1c29b380..1d2e20e6 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
@@ -57,12 +57,6 @@ struct nvgpu_firmware;
57#define PMU_PGENG_GR_BUFFER_IDX_ZBC (1) 57#define PMU_PGENG_GR_BUFFER_IDX_ZBC (1)
58#define PMU_PGENG_GR_BUFFER_IDX_FECS (2) 58#define PMU_PGENG_GR_BUFFER_IDX_FECS (2)
59 59
60struct pmu_surface {
61 struct nvgpu_mem vidmem_desc;
62 struct nvgpu_mem sysmem_desc;
63 struct flcn_mem_desc_v0 params;
64};
65
66#define PMU_PG_IDLE_THRESHOLD_SIM 1000 60#define PMU_PG_IDLE_THRESHOLD_SIM 1000
67#define PMU_PG_POST_POWERUP_IDLE_THRESHOLD_SIM 4000000 61#define PMU_PG_POST_POWERUP_IDLE_THRESHOLD_SIM 4000000
68/* TBD: QT or else ? */ 62/* TBD: QT or else ? */
@@ -154,13 +148,6 @@ int gk20a_pmu_reset(struct gk20a *g);
154int pmu_idle(struct nvgpu_pmu *pmu); 148int pmu_idle(struct nvgpu_pmu *pmu);
155int pmu_enable_hw(struct nvgpu_pmu *pmu, bool enable); 149int pmu_enable_hw(struct nvgpu_pmu *pmu, bool enable);
156 150
157void gk20a_pmu_surface_free(struct gk20a *g, struct nvgpu_mem *mem);
158void gk20a_pmu_surface_describe(struct gk20a *g, struct nvgpu_mem *mem,
159 struct flcn_mem_desc_v0 *fb);
160int gk20a_pmu_vidmem_surface_alloc(struct gk20a *g, struct nvgpu_mem *mem,
161 u32 size);
162int gk20a_pmu_sysmem_surface_alloc(struct gk20a *g, struct nvgpu_mem *mem,
163 u32 size);
164bool nvgpu_find_hex_in_string(char *strings, struct gk20a *g, u32 *hex_pos); 151bool nvgpu_find_hex_in_string(char *strings, struct gk20a *g, u32 *hex_pos);
165 152
166int nvgpu_pmu_perfmon_start_sampling(struct nvgpu_pmu *pmu); 153int nvgpu_pmu_perfmon_start_sampling(struct nvgpu_pmu *pmu);