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