1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <linux/types.h>
4 #include <linux/kconfig.h>
5 #include <linux/list.h>
6 #include <linux/slab.h>
7 #include <linux/security.h>
8 #include <linux/highmem.h>
9 #include <linux/umh.h>
10 #include <linux/sysctl.h>
11 
12 #include "fallback.h"
13 #include "firmware.h"
14 
15 /*
16  * firmware fallback configuration table
17  */
18 
19 /* Module or buit-in */
20 #ifdef CONFIG_FW_LOADER_USER_HELPER
21 
22 static unsigned int zero;
23 static unsigned int one = 1;
24 
25 struct firmware_fallback_config fw_fallback_config = {
26 	.force_sysfs_fallback = IS_ENABLED(CONFIG_FW_LOADER_USER_HELPER_FALLBACK),
27 	.loading_timeout = 60,
28 	.old_timeout = 60,
29 };
30 EXPORT_SYMBOL_GPL(fw_fallback_config);
31 
32 struct ctl_table firmware_config_table[] = {
33 	{
34 		.procname	= "force_sysfs_fallback",
35 		.data		= &fw_fallback_config.force_sysfs_fallback,
36 		.maxlen         = sizeof(unsigned int),
37 		.mode           = 0644,
38 		.proc_handler   = proc_douintvec_minmax,
39 		.extra1		= &zero,
40 		.extra2		= &one,
41 	},
42 	{
43 		.procname	= "ignore_sysfs_fallback",
44 		.data		= &fw_fallback_config.ignore_sysfs_fallback,
45 		.maxlen         = sizeof(unsigned int),
46 		.mode           = 0644,
47 		.proc_handler   = proc_douintvec_minmax,
48 		.extra1		= &zero,
49 		.extra2		= &one,
50 	},
51 	{ }
52 };
53 EXPORT_SYMBOL_GPL(firmware_config_table);
54 
55 #endif
56