diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2018-02-13 04:07:18 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-03-08 02:27:49 -0500 |
commit | cc4b9f540f66abc9f60cf9f8e2217ff17349bc77 (patch) | |
tree | 695dca926578d8b02fab2cbf9fb98d3d4733c39f /drivers/gpu/nvgpu/gk20a | |
parent | 418f31cd91a5c3ca45f0920ed64205def49c8a80 (diff) |
gpu: nvgpu: PMU super surface support
- Added ops "pmu.alloc_super_surface" to create
memory space for pmu super surface
- Defined method nvgpu_pmu_sysmem_surface_alloc()
to allocate pmu super surface memory & assigned
to "pmu.alloc_super_surface" for gv100
- "pmu.alloc_super_surface" set to NULL for gp106
- Memory space of size "struct nv_pmu_super_surface"
is allocated during pmu sw init setup if
"pmu.alloc_super_surface" is not NULL &
free if error occur.
- Added ops "pmu_ver.config_pmu_cmdline_args_super_surface"
to describe PMU super surface details to PMU ucode
as part of pmu command line args command if
"pmu.alloc_super_surface" is not NULL.
- Updated pmu_cmdline_args_v6 to include member
"struct flcn_mem_desc_v0 super_surface"
- Free allocated memory for PMU super surface in
nvgpu_remove_pmu_support() method
- Added "struct nvgpu_mem super_surface_buf" to "nvgpu_pmu" struct
- Created header file "gpmu_super_surf_if.h" to include interface
about pmu super surface, added "struct nv_pmu_super_surface"
to hold super surface members along with rsvd[x] dummy space
to sync members offset with PMU super surface members.
Change-Id: I2b28912bf4d86a8cc72884e3b023f21c73fb3503
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1656571
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 6b93cb8d..0e164a72 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -641,6 +641,8 @@ struct gpu_ops { | |||
641 | u32 size); | 641 | u32 size); |
642 | void (*set_pmu_cmdline_args_trace_dma_base)( | 642 | void (*set_pmu_cmdline_args_trace_dma_base)( |
643 | struct nvgpu_pmu *pmu); | 643 | struct nvgpu_pmu *pmu); |
644 | void (*config_pmu_cmdline_args_super_surface)( | ||
645 | struct nvgpu_pmu *pmu); | ||
644 | void (*set_pmu_cmdline_args_trace_dma_idx)( | 646 | void (*set_pmu_cmdline_args_trace_dma_idx)( |
645 | struct nvgpu_pmu *pmu, u32 idx); | 647 | struct nvgpu_pmu *pmu, u32 idx); |
646 | void * (*get_pmu_cmdline_args_ptr)(struct nvgpu_pmu *pmu); | 648 | void * (*get_pmu_cmdline_args_ptr)(struct nvgpu_pmu *pmu); |
@@ -914,6 +916,8 @@ struct gpu_ops { | |||
914 | void (*update_lspmu_cmdline_args)(struct gk20a *g); | 916 | void (*update_lspmu_cmdline_args)(struct gk20a *g); |
915 | void (*setup_apertures)(struct gk20a *g); | 917 | void (*setup_apertures)(struct gk20a *g); |
916 | u32 (*get_irqdest)(struct gk20a *g); | 918 | u32 (*get_irqdest)(struct gk20a *g); |
919 | int (*alloc_super_surface)(struct gk20a *g, | ||
920 | struct nvgpu_mem *super_surface, u32 size); | ||
917 | } pmu; | 921 | } pmu; |
918 | struct { | 922 | struct { |
919 | int (*init_debugfs)(struct gk20a *g); | 923 | int (*init_debugfs)(struct gk20a *g); |