Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.8-rc4 113 lines 2.7 kB view raw
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");