aboutsummaryrefslogtreecommitdiffstats
path: root/net/rfkill/rfkill.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rfkill/rfkill.c')
-rw-r--r--net/rfkill/rfkill.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/net/rfkill/rfkill.c b/net/rfkill/rfkill.c
index f95081a4a024..3edc585dcfa6 100644
--- a/net/rfkill/rfkill.c
+++ b/net/rfkill/rfkill.c
@@ -39,6 +39,11 @@ MODULE_LICENSE("GPL");
39static LIST_HEAD(rfkill_list); /* list of registered rf switches */ 39static LIST_HEAD(rfkill_list); /* list of registered rf switches */
40static DEFINE_MUTEX(rfkill_mutex); 40static DEFINE_MUTEX(rfkill_mutex);
41 41
42static unsigned int rfkill_default_state = RFKILL_STATE_ON;
43module_param_named(default_state, rfkill_default_state, uint, 0444);
44MODULE_PARM_DESC(default_state,
45 "Default initial state for all radio types, 0 = radio off");
46
42static enum rfkill_state rfkill_states[RFKILL_TYPE_MAX]; 47static enum rfkill_state rfkill_states[RFKILL_TYPE_MAX];
43 48
44 49
@@ -436,8 +441,12 @@ static int __init rfkill_init(void)
436 int error; 441 int error;
437 int i; 442 int i;
438 443
444 if (rfkill_default_state != RFKILL_STATE_OFF &&
445 rfkill_default_state != RFKILL_STATE_ON)
446 return -EINVAL;
447
439 for (i = 0; i < ARRAY_SIZE(rfkill_states); i++) 448 for (i = 0; i < ARRAY_SIZE(rfkill_states); i++)
440 rfkill_states[i] = RFKILL_STATE_ON; 449 rfkill_states[i] = rfkill_default_state;
441 450
442 error = class_register(&rfkill_class); 451 error = class_register(&rfkill_class);
443 if (error) { 452 if (error) {