diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/rfkill/rfkill.c | 11 |
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"); | |||
39 | static LIST_HEAD(rfkill_list); /* list of registered rf switches */ | 39 | static LIST_HEAD(rfkill_list); /* list of registered rf switches */ |
40 | static DEFINE_MUTEX(rfkill_mutex); | 40 | static DEFINE_MUTEX(rfkill_mutex); |
41 | 41 | ||
42 | static unsigned int rfkill_default_state = RFKILL_STATE_ON; | ||
43 | module_param_named(default_state, rfkill_default_state, uint, 0444); | ||
44 | MODULE_PARM_DESC(default_state, | ||
45 | "Default initial state for all radio types, 0 = radio off"); | ||
46 | |||
42 | static enum rfkill_state rfkill_states[RFKILL_TYPE_MAX]; | 47 | static 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) { |