Merge tag 'amd-drm-next-5.11-2020-11-05' of git://people.freedesktop.org/~agd5f/linux...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_ttm.h
index a87951b2f06dd159ecb5e2b860e925d6e1c2a21a..bdca2970173e22efca4a8ff276137e5fbc09da57 100644 (file)
 
 #define AMDGPU_POISON  0xd0bed0be
 
+struct amdgpu_vram_reservation {
+       struct list_head node;
+       struct drm_mm_node mm_node;
+};
+
 struct amdgpu_vram_mgr {
        struct ttm_resource_manager manager;
        struct drm_mm mm;
        spinlock_t lock;
+       struct list_head reservations_pending;
+       struct list_head reserved_pages;
        atomic64_t usage;
        atomic64_t vis_usage;
 };
@@ -54,7 +61,6 @@ struct amdgpu_gtt_mgr {
 
 struct amdgpu_mman {
        struct ttm_bo_device            bdev;
-       bool                            mem_global_referenced;
        bool                            initialized;
        void __iomem                    *aper_base_kaddr;
 
@@ -119,6 +125,10 @@ void amdgpu_vram_mgr_free_sgt(struct amdgpu_device *adev,
                              struct sg_table *sgt);
 uint64_t amdgpu_vram_mgr_usage(struct ttm_resource_manager *man);
 uint64_t amdgpu_vram_mgr_vis_usage(struct ttm_resource_manager *man);
+int amdgpu_vram_mgr_reserve_range(struct ttm_resource_manager *man,
+                                 uint64_t start, uint64_t size);
+int amdgpu_vram_mgr_query_page_status(struct ttm_resource_manager *man,
+                                     uint64_t start);
 
 int amdgpu_ttm_init(struct amdgpu_device *adev);
 void amdgpu_ttm_late_init(struct amdgpu_device *adev);