Merge tag 'drm-misc-next-2023-01-03' of git://anongit.freedesktop.org/drm/drm-misc...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_ttm.c
index b4236572eae1b908706898cf75db834c276ef7d3..28a7d2ea6661722b4a0ed5de15f7617861a14499 100644 (file)
 #include <linux/module.h>
 
 #include <drm/drm_drv.h>
-#include <drm/ttm/ttm_bo_api.h>
-#include <drm/ttm/ttm_bo_driver.h>
+#include <drm/ttm/ttm_bo.h>
 #include <drm/ttm/ttm_placement.h>
 #include <drm/ttm/ttm_range_manager.h>
+#include <drm/ttm/ttm_tt.h>
 
 #include <drm/amdgpu_drm.h>
 #include <drm/drm_drv.h>
@@ -695,8 +695,19 @@ out_unlock:
        return r;
 }
 
+/* amdgpu_ttm_tt_discard_user_pages - Discard range and pfn array allocations
+ */
+void amdgpu_ttm_tt_discard_user_pages(struct ttm_tt *ttm,
+                                     struct hmm_range *range)
+{
+       struct amdgpu_ttm_tt *gtt = (void *)ttm;
+
+       if (gtt && gtt->userptr && range)
+               amdgpu_hmm_range_get_pages_done(range);
+}
+
 /*
- * amdgpu_ttm_tt_userptr_range_done - stop HMM track the CPU page table change
+ * amdgpu_ttm_tt_get_user_pages_done - stop HMM track the CPU page table change
  * Check if the pages backing this ttm range have been invalidated
  *
  * Returns: true if pages are still valid
@@ -714,10 +725,6 @@ bool amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm,
 
        WARN_ONCE(!range->hmm_pfns, "No user pages to check\n");
 
-       /*
-        * FIXME: Must always hold notifier_lock for this, and must
-        * not ignore the return code.
-        */
        return !amdgpu_hmm_range_get_pages_done(range);
 }
 #endif
@@ -1569,7 +1576,6 @@ static int amdgpu_ttm_fw_reserve_vram_init(struct amdgpu_device *adev)
        return amdgpu_bo_create_kernel_at(adev,
                                          adev->mman.fw_vram_usage_start_offset,
                                          adev->mman.fw_vram_usage_size,
-                                         AMDGPU_GEM_DOMAIN_VRAM,
                                          &adev->mman.fw_vram_usage_reserved_bo,
                                          &adev->mman.fw_vram_usage_va);
 }
@@ -1595,7 +1601,6 @@ static int amdgpu_ttm_drv_reserve_vram_init(struct amdgpu_device *adev)
        return amdgpu_bo_create_kernel_at(adev,
                                          adev->mman.drv_vram_usage_start_offset,
                                          adev->mman.drv_vram_usage_size,
-                                         AMDGPU_GEM_DOMAIN_VRAM,
                                          &adev->mman.drv_vram_usage_reserved_bo,
                                          &adev->mman.drv_vram_usage_va);
 }
@@ -1676,7 +1681,6 @@ static int amdgpu_ttm_reserve_tmr(struct amdgpu_device *adev)
                ret = amdgpu_bo_create_kernel_at(adev,
                                         ctx->c2p_train_data_offset,
                                         ctx->train_data_size,
-                                        AMDGPU_GEM_DOMAIN_VRAM,
                                         &ctx->c2p_bo,
                                         NULL);
                if (ret) {
@@ -1690,7 +1694,6 @@ static int amdgpu_ttm_reserve_tmr(struct amdgpu_device *adev)
        ret = amdgpu_bo_create_kernel_at(adev,
                                adev->gmc.real_vram_size - adev->mman.discovery_tmr_size,
                                adev->mman.discovery_tmr_size,
-                               AMDGPU_GEM_DOMAIN_VRAM,
                                &adev->mman.discovery_memory,
                                NULL);
        if (ret) {
@@ -1791,21 +1794,18 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
         * avoid display artifacts while transitioning between pre-OS
         * and driver.  */
        r = amdgpu_bo_create_kernel_at(adev, 0, adev->mman.stolen_vga_size,
-                                      AMDGPU_GEM_DOMAIN_VRAM,
                                       &adev->mman.stolen_vga_memory,
                                       NULL);
        if (r)
                return r;
        r = amdgpu_bo_create_kernel_at(adev, adev->mman.stolen_vga_size,
                                       adev->mman.stolen_extended_size,
-                                      AMDGPU_GEM_DOMAIN_VRAM,
                                       &adev->mman.stolen_extended_memory,
                                       NULL);
        if (r)
                return r;
        r = amdgpu_bo_create_kernel_at(adev, adev->mman.stolen_reserved_offset,
                                       adev->mman.stolen_reserved_size,
-                                      AMDGPU_GEM_DOMAIN_VRAM,
                                       &adev->mman.stolen_reserved_memory,
                                       NULL);
        if (r)