diff options
Diffstat (limited to 'net/rfkill/rfkill-input.c')
-rw-r--r-- | net/rfkill/rfkill-input.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/net/rfkill/rfkill-input.c b/net/rfkill/rfkill-input.c index 5d4c8b2446f7..8aa822730145 100644 --- a/net/rfkill/rfkill-input.c +++ b/net/rfkill/rfkill-input.c | |||
@@ -84,7 +84,8 @@ static void rfkill_schedule_toggle(struct rfkill_task *task) | |||
84 | spin_lock_irqsave(&task->lock, flags); | 84 | spin_lock_irqsave(&task->lock, flags); |
85 | 85 | ||
86 | if (time_after(jiffies, task->last + msecs_to_jiffies(200))) { | 86 | if (time_after(jiffies, task->last + msecs_to_jiffies(200))) { |
87 | task->desired_state = !task->desired_state; | 87 | task->desired_state = |
88 | rfkill_state_complement(task->desired_state); | ||
88 | task->last = jiffies; | 89 | task->last = jiffies; |
89 | schedule_work(&task->work); | 90 | schedule_work(&task->work); |
90 | } | 91 | } |
@@ -92,14 +93,14 @@ static void rfkill_schedule_toggle(struct rfkill_task *task) | |||
92 | spin_unlock_irqrestore(&task->lock, flags); | 93 | spin_unlock_irqrestore(&task->lock, flags); |
93 | } | 94 | } |
94 | 95 | ||
95 | #define DEFINE_RFKILL_TASK(n, t) \ | 96 | #define DEFINE_RFKILL_TASK(n, t) \ |
96 | struct rfkill_task n = { \ | 97 | struct rfkill_task n = { \ |
97 | .work = __WORK_INITIALIZER(n.work, \ | 98 | .work = __WORK_INITIALIZER(n.work, \ |
98 | rfkill_task_handler), \ | 99 | rfkill_task_handler), \ |
99 | .type = t, \ | 100 | .type = t, \ |
100 | .mutex = __MUTEX_INITIALIZER(n.mutex), \ | 101 | .mutex = __MUTEX_INITIALIZER(n.mutex), \ |
101 | .lock = __SPIN_LOCK_UNLOCKED(n.lock), \ | 102 | .lock = __SPIN_LOCK_UNLOCKED(n.lock), \ |
102 | .desired_state = RFKILL_STATE_ON, \ | 103 | .desired_state = RFKILL_STATE_UNBLOCKED, \ |
103 | } | 104 | } |
104 | 105 | ||
105 | static DEFINE_RFKILL_TASK(rfkill_wlan, RFKILL_TYPE_WLAN); | 106 | static DEFINE_RFKILL_TASK(rfkill_wlan, RFKILL_TYPE_WLAN); |
@@ -135,15 +136,15 @@ static void rfkill_event(struct input_handle *handle, unsigned int type, | |||
135 | /* handle EPO (emergency power off) through shortcut */ | 136 | /* handle EPO (emergency power off) through shortcut */ |
136 | if (data) { | 137 | if (data) { |
137 | rfkill_schedule_set(&rfkill_wwan, | 138 | rfkill_schedule_set(&rfkill_wwan, |
138 | RFKILL_STATE_ON); | 139 | RFKILL_STATE_UNBLOCKED); |
139 | rfkill_schedule_set(&rfkill_wimax, | 140 | rfkill_schedule_set(&rfkill_wimax, |
140 | RFKILL_STATE_ON); | 141 | RFKILL_STATE_UNBLOCKED); |
141 | rfkill_schedule_set(&rfkill_uwb, | 142 | rfkill_schedule_set(&rfkill_uwb, |
142 | RFKILL_STATE_ON); | 143 | RFKILL_STATE_UNBLOCKED); |
143 | rfkill_schedule_set(&rfkill_bt, | 144 | rfkill_schedule_set(&rfkill_bt, |
144 | RFKILL_STATE_ON); | 145 | RFKILL_STATE_UNBLOCKED); |
145 | rfkill_schedule_set(&rfkill_wlan, | 146 | rfkill_schedule_set(&rfkill_wlan, |
146 | RFKILL_STATE_ON); | 147 | RFKILL_STATE_UNBLOCKED); |
147 | } else | 148 | } else |
148 | rfkill_schedule_epo(); | 149 | rfkill_schedule_epo(); |
149 | break; | 150 | break; |