xref: /linux/tools/testing/cxl/test/hmem_test.c (revision 12bffaef28820e0b94c644c75708195c61af78f7)
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (C) 2026 Intel Corporation */
3 #include <linux/moduleparam.h>
4 #include <linux/workqueue.h>
5 #include "../../../drivers/dax/bus.h"
6 
7 static bool hmem_test;
8 
9 static void hmem_test_work(struct work_struct *work)
10 {
11 }
12 
13 static void hmem_test_release(struct device *dev)
14 {
15 	struct hmem_platform_device *hpdev =
16 		container_of(dev, typeof(*hpdev), pdev.dev);
17 
18 	memset(hpdev, 0, sizeof(*hpdev));
19 }
20 
21 static struct hmem_platform_device hmem_test_device = {
22 	.pdev = {
23 		.name = "hmem_platform",
24 		.id = 1,
25 		.dev = {
26 			.release = hmem_test_release,
27 		},
28 	},
29 	.work = __WORK_INITIALIZER(hmem_test_device.work, hmem_test_work),
30 };
31 
32 int hmem_test_init(void)
33 {
34 	if (!hmem_test)
35 		return 0;
36 
37 	return platform_device_register(&hmem_test_device.pdev);
38 }
39 
40 void hmem_test_exit(void)
41 {
42 	if (hmem_test)
43 		platform_device_unregister(&hmem_test_device.pdev);
44 }
45 
46 module_param(hmem_test, bool, 0444);
47 MODULE_PARM_DESC(hmem_test, "Enable/disable the dax_hmem test platform device");
48