Loading...
Note: File does not exist in v3.1.
1// SPDX-License-Identifier: GPL-2.0 AND MIT
2/*
3 * Copyright © 2023 Intel Corporation
4 */
5#include "ttm_kunit_helpers.h"
6
7struct ttm_device_funcs ttm_dev_funcs = {
8};
9EXPORT_SYMBOL_GPL(ttm_dev_funcs);
10
11int ttm_device_kunit_init(struct ttm_test_devices *priv,
12 struct ttm_device *ttm,
13 bool use_dma_alloc,
14 bool use_dma32)
15{
16 struct drm_device *drm = priv->drm;
17 int err;
18
19 err = ttm_device_init(ttm, &ttm_dev_funcs, drm->dev,
20 drm->anon_inode->i_mapping,
21 drm->vma_offset_manager,
22 use_dma_alloc, use_dma32);
23
24 return err;
25}
26EXPORT_SYMBOL_GPL(ttm_device_kunit_init);
27
28struct ttm_buffer_object *ttm_bo_kunit_init(struct kunit *test,
29 struct ttm_test_devices *devs,
30 size_t size)
31{
32 struct drm_gem_object gem_obj = { .size = size };
33 struct ttm_buffer_object *bo;
34
35 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL);
36 KUNIT_ASSERT_NOT_NULL(test, bo);
37
38 bo->base = gem_obj;
39 bo->bdev = devs->ttm_dev;
40
41 return bo;
42}
43EXPORT_SYMBOL_GPL(ttm_bo_kunit_init);
44
45struct ttm_test_devices *ttm_test_devices_basic(struct kunit *test)
46{
47 struct ttm_test_devices *devs;
48
49 devs = kunit_kzalloc(test, sizeof(*devs), GFP_KERNEL);
50 KUNIT_ASSERT_NOT_NULL(test, devs);
51
52 devs->dev = drm_kunit_helper_alloc_device(test);
53 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, devs->dev);
54
55 devs->drm = __drm_kunit_helper_alloc_drm_device(test, devs->dev,
56 sizeof(*devs->drm), 0,
57 DRIVER_GEM);
58 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, devs->drm);
59
60 return devs;
61}
62EXPORT_SYMBOL_GPL(ttm_test_devices_basic);
63
64struct ttm_test_devices *ttm_test_devices_all(struct kunit *test)
65{
66 struct ttm_test_devices *devs;
67 struct ttm_device *ttm_dev;
68 int err;
69
70 devs = ttm_test_devices_basic(test);
71
72 ttm_dev = kunit_kzalloc(test, sizeof(*ttm_dev), GFP_KERNEL);
73 KUNIT_ASSERT_NOT_NULL(test, ttm_dev);
74
75 err = ttm_device_kunit_init(devs, ttm_dev, false, false);
76 KUNIT_ASSERT_EQ(test, err, 0);
77
78 devs->ttm_dev = ttm_dev;
79
80 return devs;
81}
82EXPORT_SYMBOL_GPL(ttm_test_devices_all);
83
84void ttm_test_devices_put(struct kunit *test, struct ttm_test_devices *devs)
85{
86 if (devs->ttm_dev)
87 ttm_device_fini(devs->ttm_dev);
88
89 drm_kunit_helper_free_device(test, devs->dev);
90}
91EXPORT_SYMBOL_GPL(ttm_test_devices_put);
92
93int ttm_test_devices_init(struct kunit *test)
94{
95 struct ttm_test_devices *priv;
96
97 priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL);
98 KUNIT_ASSERT_NOT_NULL(test, priv);
99
100 priv = ttm_test_devices_basic(test);
101 test->priv = priv;
102
103 return 0;
104}
105EXPORT_SYMBOL_GPL(ttm_test_devices_init);
106
107void ttm_test_devices_fini(struct kunit *test)
108{
109 ttm_test_devices_put(test, test->priv);
110}
111EXPORT_SYMBOL_GPL(ttm_test_devices_fini);
112
113MODULE_LICENSE("GPL");