From 95099d4622f8cb224d94e314c7a8e0df60b13f87 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Sat, 09 Dec 2023 08:38:01 +0000
Subject: [PATCH] enable docker ppp
---
kernel/drivers/gpu/drm/i915/selftests/mock_gtt.c | 70 ++++++++++++++++++++--------------
1 files changed, 41 insertions(+), 29 deletions(-)
diff --git a/kernel/drivers/gpu/drm/i915/selftests/mock_gtt.c b/kernel/drivers/gpu/drm/i915/selftests/mock_gtt.c
index a140ea5..7270fc8 100644
--- a/kernel/drivers/gpu/drm/i915/selftests/mock_gtt.c
+++ b/kernel/drivers/gpu/drm/i915/selftests/mock_gtt.c
@@ -38,16 +38,18 @@
{
}
-static int mock_bind_ppgtt(struct i915_vma *vma,
- enum i915_cache_level cache_level,
- u32 flags)
+static void mock_bind_ppgtt(struct i915_address_space *vm,
+ struct i915_vm_pt_stash *stash,
+ struct i915_vma *vma,
+ enum i915_cache_level cache_level,
+ u32 flags)
{
GEM_BUG_ON(flags & I915_VMA_GLOBAL_BIND);
- vma->flags |= I915_VMA_LOCAL_BIND;
- return 0;
+ set_bit(I915_VMA_LOCAL_BIND_BIT, __i915_vma_flags(vma));
}
-static void mock_unbind_ppgtt(struct i915_vma *vma)
+static void mock_unbind_ppgtt(struct i915_address_space *vm,
+ struct i915_vma *vma)
{
}
@@ -55,24 +57,30 @@
{
}
-struct i915_hw_ppgtt *
-mock_ppgtt(struct drm_i915_private *i915,
- const char *name)
+static void mock_clear_range(struct i915_address_space *vm,
+ u64 start, u64 length)
{
- struct i915_hw_ppgtt *ppgtt;
+}
+
+struct i915_ppgtt *mock_ppgtt(struct drm_i915_private *i915, const char *name)
+{
+ struct i915_ppgtt *ppgtt;
ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL);
if (!ppgtt)
return NULL;
- kref_init(&ppgtt->ref);
+ ppgtt->vm.gt = &i915->gt;
ppgtt->vm.i915 = i915;
ppgtt->vm.total = round_down(U64_MAX, PAGE_SIZE);
ppgtt->vm.file = ERR_PTR(-ENODEV);
+ ppgtt->vm.dma = &i915->drm.pdev->dev;
- i915_address_space_init(&ppgtt->vm, i915);
+ i915_address_space_init(&ppgtt->vm, VM_CLASS_PPGTT);
- ppgtt->vm.clear_range = nop_clear_range;
+ ppgtt->vm.alloc_pt_dma = alloc_pt_dma;
+
+ ppgtt->vm.clear_range = mock_clear_range;
ppgtt->vm.insert_page = mock_insert_page;
ppgtt->vm.insert_entries = mock_insert_entries;
ppgtt->vm.cleanup = mock_cleanup;
@@ -85,29 +93,34 @@
return ppgtt;
}
-static int mock_bind_ggtt(struct i915_vma *vma,
- enum i915_cache_level cache_level,
- u32 flags)
-{
- vma->flags |= I915_VMA_GLOBAL_BIND | I915_VMA_LOCAL_BIND;
- return 0;
-}
-
-static void mock_unbind_ggtt(struct i915_vma *vma)
+static void mock_bind_ggtt(struct i915_address_space *vm,
+ struct i915_vm_pt_stash *stash,
+ struct i915_vma *vma,
+ enum i915_cache_level cache_level,
+ u32 flags)
{
}
-void mock_init_ggtt(struct drm_i915_private *i915)
+static void mock_unbind_ggtt(struct i915_address_space *vm,
+ struct i915_vma *vma)
{
- struct i915_ggtt *ggtt = &i915->ggtt;
+}
+void mock_init_ggtt(struct drm_i915_private *i915, struct i915_ggtt *ggtt)
+{
+ memset(ggtt, 0, sizeof(*ggtt));
+
+ ggtt->vm.gt = &i915->gt;
ggtt->vm.i915 = i915;
+ ggtt->vm.is_ggtt = true;
ggtt->gmadr = (struct resource) DEFINE_RES_MEM(0, 2048 * PAGE_SIZE);
ggtt->mappable_end = resource_size(&ggtt->gmadr);
ggtt->vm.total = 4096 * PAGE_SIZE;
- ggtt->vm.clear_range = nop_clear_range;
+ ggtt->vm.alloc_pt_dma = alloc_pt_dma;
+
+ ggtt->vm.clear_range = mock_clear_range;
ggtt->vm.insert_page = mock_insert_page;
ggtt->vm.insert_entries = mock_insert_entries;
ggtt->vm.cleanup = mock_cleanup;
@@ -117,12 +130,11 @@
ggtt->vm.vma_ops.set_pages = ggtt_set_pages;
ggtt->vm.vma_ops.clear_pages = clear_pages;
- i915_address_space_init(&ggtt->vm, i915);
+ i915_address_space_init(&ggtt->vm, VM_CLASS_GGTT);
+ i915->gt.ggtt = ggtt;
}
-void mock_fini_ggtt(struct drm_i915_private *i915)
+void mock_fini_ggtt(struct i915_ggtt *ggtt)
{
- struct i915_ggtt *ggtt = &i915->ggtt;
-
i915_address_space_fini(&ggtt->vm);
}
--
Gitblit v1.6.2