Merge tag 'drm-misc-next-2020-06-26' of git://anongit.freedesktop.org/drm/drm-misc...
[platform/kernel/linux-starfive.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_object.c
index 3d822eb..5ac7b55 100644 (file)
@@ -918,7 +918,8 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
                bo->pin_count++;
 
                if (max_offset != 0) {
-                       u64 domain_start = bo->tbo.bdev->man[mem_type].gpu_offset;
+                       u64 domain_start = amdgpu_ttm_domain_start(adev,
+                                                                  mem_type);
                        WARN_ON_ONCE(max_offset <
                                     (amdgpu_bo_gpu_offset(bo) - domain_start));
                }
@@ -1484,7 +1485,25 @@ u64 amdgpu_bo_gpu_offset(struct amdgpu_bo *bo)
        WARN_ON_ONCE(bo->tbo.mem.mem_type == TTM_PL_VRAM &&
                     !(bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS));
 
-       return amdgpu_gmc_sign_extend(bo->tbo.offset);
+       return amdgpu_bo_gpu_offset_no_check(bo);
+}
+
+/**
+ * amdgpu_bo_gpu_offset_no_check - return GPU offset of bo
+ * @bo:        amdgpu object for which we query the offset
+ *
+ * Returns:
+ * current GPU offset of the object without raising warnings.
+ */
+u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo)
+{
+       struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
+       uint64_t offset;
+
+       offset = (bo->tbo.mem.start << PAGE_SHIFT) +
+                amdgpu_ttm_domain_start(adev, bo->tbo.mem.mem_type);
+
+       return amdgpu_gmc_sign_extend(offset);
 }
 
 /**