and implement CSA functions in this file Change-Id: Ife0eff7b13b8b5946f005a39f6ecb8db1cb72c38 Signed-off-by: Monk Liu <Monk.Liu at amd.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 14 ++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h index 0d821d9..cc36d28 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h @@ -28,9 +28,23 @@ #define AMDGPU_SRIOV_CAPS_ENABLE_IOV (1 << 1) /* sr-iov is enabled on this GPU */ #define AMDGPU_SRIOV_CAPS_IS_VF (1 << 2) /* this GPU is a virtual function */ #define AMDGPU_PASSTHROUGH_MODE (1 << 3) /* thw whole GPU is pass through for VM */ + /* GPU virtualization */ struct amdgpu_virt { uint32_t caps; + uint32_t csa_size; + struct amdgpu_bo *csa_obj; + uint64_t csa_vmid0_addr; + uint64_t gds_vmid0_addr; +}; + +struct amdgpu_vm_virt { + /* each VM will map on CSA */ + struct ttm_validate_buffer csa_tv; + struct amdgpu_bo_va *csa_bo_va; + /* virtual MC address of CSA & GDS for each VM */ + uint64_t vm_csa_addr; + uint64_t vm_gds_addr; }; #define amdgpu_sriov_enabled(adev) \ diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h index 42a629b..27cbcbc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h @@ -29,6 +29,7 @@ #include "gpu_scheduler.h" #include "amdgpu_sync.h" #include "amdgpu_ring.h" +#include "amdgpu_virt.h" struct amdgpu_bo_va; struct amdgpu_job; @@ -111,6 +112,7 @@ struct amdgpu_vm { /* client id */ u64 client_id; + struct amdgpu_vm_virt vm_virt; }; struct amdgpu_vm_id { -- 2.7.4