1*e3912d09SKarolina Stolarek // SPDX-License-Identifier: GPL-2.0 AND MIT 2*e3912d09SKarolina Stolarek /* 3*e3912d09SKarolina Stolarek * Copyright © 2023 Intel Corporation 4*e3912d09SKarolina Stolarek */ 5*e3912d09SKarolina Stolarek #include <drm/ttm/ttm_resource.h> 6*e3912d09SKarolina Stolarek #include <drm/ttm/ttm_device.h> 7*e3912d09SKarolina Stolarek #include <drm/ttm/ttm_placement.h> 8*e3912d09SKarolina Stolarek 9*e3912d09SKarolina Stolarek #include "ttm_kunit_helpers.h" 10*e3912d09SKarolina Stolarek 11*e3912d09SKarolina Stolarek static void ttm_device_init_basic(struct kunit *test) 12*e3912d09SKarolina Stolarek { 13*e3912d09SKarolina Stolarek struct ttm_test_devices *priv = test->priv; 14*e3912d09SKarolina Stolarek struct ttm_device *ttm_dev; 15*e3912d09SKarolina Stolarek struct ttm_resource_manager *ttm_sys_man; 16*e3912d09SKarolina Stolarek int err; 17*e3912d09SKarolina Stolarek 18*e3912d09SKarolina Stolarek ttm_dev = kunit_kzalloc(test, sizeof(*ttm_dev), GFP_KERNEL); 19*e3912d09SKarolina Stolarek KUNIT_ASSERT_NOT_NULL(test, ttm_dev); 20*e3912d09SKarolina Stolarek 21*e3912d09SKarolina Stolarek err = ttm_device_kunit_init(priv, ttm_dev, false, false); 22*e3912d09SKarolina Stolarek KUNIT_ASSERT_EQ(test, err, 0); 23*e3912d09SKarolina Stolarek 24*e3912d09SKarolina Stolarek KUNIT_EXPECT_PTR_EQ(test, ttm_dev->funcs, &ttm_dev_funcs); 25*e3912d09SKarolina Stolarek KUNIT_ASSERT_NOT_NULL(test, ttm_dev->wq); 26*e3912d09SKarolina Stolarek KUNIT_ASSERT_NOT_NULL(test, ttm_dev->man_drv[TTM_PL_SYSTEM]); 27*e3912d09SKarolina Stolarek 28*e3912d09SKarolina Stolarek ttm_sys_man = &ttm_dev->sysman; 29*e3912d09SKarolina Stolarek KUNIT_ASSERT_NOT_NULL(test, ttm_sys_man); 30*e3912d09SKarolina Stolarek KUNIT_EXPECT_TRUE(test, ttm_sys_man->use_tt); 31*e3912d09SKarolina Stolarek KUNIT_EXPECT_TRUE(test, ttm_sys_man->use_type); 32*e3912d09SKarolina Stolarek KUNIT_ASSERT_NOT_NULL(test, ttm_sys_man->func); 33*e3912d09SKarolina Stolarek 34*e3912d09SKarolina Stolarek KUNIT_EXPECT_PTR_EQ(test, ttm_dev->dev_mapping, 35*e3912d09SKarolina Stolarek priv->drm->anon_inode->i_mapping); 36*e3912d09SKarolina Stolarek 37*e3912d09SKarolina Stolarek ttm_device_fini(ttm_dev); 38*e3912d09SKarolina Stolarek } 39*e3912d09SKarolina Stolarek 40*e3912d09SKarolina Stolarek static struct kunit_case ttm_device_test_cases[] = { 41*e3912d09SKarolina Stolarek KUNIT_CASE(ttm_device_init_basic), 42*e3912d09SKarolina Stolarek {} 43*e3912d09SKarolina Stolarek }; 44*e3912d09SKarolina Stolarek 45*e3912d09SKarolina Stolarek static struct kunit_suite ttm_device_test_suite = { 46*e3912d09SKarolina Stolarek .name = "ttm_device", 47*e3912d09SKarolina Stolarek .init = ttm_test_devices_init, 48*e3912d09SKarolina Stolarek .exit = ttm_test_devices_fini, 49*e3912d09SKarolina Stolarek .test_cases = ttm_device_test_cases, 50*e3912d09SKarolina Stolarek }; 51*e3912d09SKarolina Stolarek 52*e3912d09SKarolina Stolarek kunit_test_suites(&ttm_device_test_suite); 53*e3912d09SKarolina Stolarek 54*e3912d09SKarolina Stolarek MODULE_LICENSE("GPL"); 55