xref: /freebsd/sys/dev/qat/qat_common/qat_common_module.c (revision b197d4b893974c9eb4d7b38704c6d5c486235d6f)
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 #include "qat_freebsd.h"
5 #include "adf_common_drv.h"
6 
7 static int __init
8 qat_common_register(void)
9 {
10 	if (adf_init_aer())
11 		return EFAULT;
12 
13 	if (adf_init_fatal_error_wq())
14 		return EFAULT;
15 
16 	return 0;
17 }
18 
19 static void __exit
20 qat_common_unregister(void)
21 {
22 	adf_exit_vf_wq();
23 	adf_exit_aer();
24 	adf_exit_fatal_error_wq();
25 	adf_clean_vf_map(false);
26 }
27 
28 static int
29 qat_common_modevent(module_t mod, int type, void *data)
30 {
31 	switch (type) {
32 	case MOD_LOAD:
33 		return qat_common_register();
34 	case MOD_UNLOAD:
35 		qat_common_unregister();
36 		return 0;
37 	default:
38 		return EOPNOTSUPP;
39 	}
40 }
41 
42 static moduledata_t qat_common_mod = { "qat_common", qat_common_modevent, 0 };
43 
44 DECLARE_MODULE(qat_common, qat_common_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
45 MODULE_VERSION(qat_common, 1);
46 MODULE_DEPEND(qat_common, firmware, 1, 1, 1);
47 MODULE_DEPEND(qat_common, linuxkpi, 1, 1, 1);
48