diff options
Diffstat (limited to 'net/rfkill/rfkill-input.c')
-rw-r--r-- | net/rfkill/rfkill-input.c | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/net/rfkill/rfkill-input.c b/net/rfkill/rfkill-input.c index 84efde97c5a7..60a34f3b5f65 100644 --- a/net/rfkill/rfkill-input.c +++ b/net/rfkill/rfkill-input.c | |||
@@ -47,12 +47,6 @@ enum rfkill_global_sched_op { | |||
47 | RFKILL_GLOBAL_OP_UNBLOCK, | 47 | RFKILL_GLOBAL_OP_UNBLOCK, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | /* | ||
51 | * Currently, the code marked with RFKILL_NEED_SWSET is inactive. | ||
52 | * If handling of EV_SW SW_WLAN/WWAN/BLUETOOTH/etc is needed in the | ||
53 | * future, when such events are added, that code will be necessary. | ||
54 | */ | ||
55 | |||
56 | struct rfkill_task { | 50 | struct rfkill_task { |
57 | struct delayed_work dwork; | 51 | struct delayed_work dwork; |
58 | 52 | ||
@@ -65,14 +59,6 @@ struct rfkill_task { | |||
65 | /* pending regular switch operations (1=pending) */ | 59 | /* pending regular switch operations (1=pending) */ |
66 | unsigned long sw_pending[BITS_TO_LONGS(RFKILL_TYPE_MAX)]; | 60 | unsigned long sw_pending[BITS_TO_LONGS(RFKILL_TYPE_MAX)]; |
67 | 61 | ||
68 | #ifdef RFKILL_NEED_SWSET | ||
69 | /* set operation pending (1=pending) */ | ||
70 | unsigned long sw_setpending[BITS_TO_LONGS(RFKILL_TYPE_MAX)]; | ||
71 | |||
72 | /* desired state for pending set operation (1=unblock) */ | ||
73 | unsigned long sw_newstate[BITS_TO_LONGS(RFKILL_TYPE_MAX)]; | ||
74 | #endif | ||
75 | |||
76 | /* should the state be complemented (1=yes) */ | 62 | /* should the state be complemented (1=yes) */ |
77 | unsigned long sw_togglestate[BITS_TO_LONGS(RFKILL_TYPE_MAX)]; | 63 | unsigned long sw_togglestate[BITS_TO_LONGS(RFKILL_TYPE_MAX)]; |
78 | 64 | ||
@@ -111,24 +97,6 @@ static void __rfkill_handle_global_op(enum rfkill_global_sched_op op) | |||
111 | } | 97 | } |
112 | } | 98 | } |
113 | 99 | ||
114 | #ifdef RFKILL_NEED_SWSET | ||
115 | static void __rfkill_handle_normal_op(const enum rfkill_type type, | ||
116 | const bool sp, const bool s, const bool c) | ||
117 | { | ||
118 | enum rfkill_state state; | ||
119 | |||
120 | if (sp) | ||
121 | state = (s) ? RFKILL_STATE_UNBLOCKED : | ||
122 | RFKILL_STATE_SOFT_BLOCKED; | ||
123 | else | ||
124 | state = rfkill_get_global_state(type); | ||
125 | |||
126 | if (c) | ||
127 | state = rfkill_state_complement(state); | ||
128 | |||
129 | rfkill_switch_all(type, state); | ||
130 | } | ||
131 | #else | ||
132 | static void __rfkill_handle_normal_op(const enum rfkill_type type, | 100 | static void __rfkill_handle_normal_op(const enum rfkill_type type, |
133 | const bool c) | 101 | const bool c) |
134 | { | 102 | { |
@@ -140,7 +108,6 @@ static void __rfkill_handle_normal_op(const enum rfkill_type type, | |||
140 | 108 | ||
141 | rfkill_switch_all(type, state); | 109 | rfkill_switch_all(type, state); |
142 | } | 110 | } |
143 | #endif | ||
144 | 111 | ||
145 | static void rfkill_task_handler(struct work_struct *work) | 112 | static void rfkill_task_handler(struct work_struct *work) |
146 | { | 113 | { |
@@ -171,21 +138,11 @@ static void rfkill_task_handler(struct work_struct *work) | |||
171 | i < RFKILL_TYPE_MAX) { | 138 | i < RFKILL_TYPE_MAX) { |
172 | if (test_and_clear_bit(i, task->sw_pending)) { | 139 | if (test_and_clear_bit(i, task->sw_pending)) { |
173 | bool c; | 140 | bool c; |
174 | #ifdef RFKILL_NEED_SWSET | ||
175 | bool sp, s; | ||
176 | sp = test_and_clear_bit(i, | ||
177 | task->sw_setpending); | ||
178 | s = test_bit(i, task->sw_newstate); | ||
179 | #endif | ||
180 | c = test_and_clear_bit(i, | 141 | c = test_and_clear_bit(i, |
181 | task->sw_togglestate); | 142 | task->sw_togglestate); |
182 | spin_unlock_irq(&task->lock); | 143 | spin_unlock_irq(&task->lock); |
183 | 144 | ||
184 | #ifdef RFKILL_NEED_SWSET | ||
185 | __rfkill_handle_normal_op(i, sp, s, c); | ||
186 | #else | ||
187 | __rfkill_handle_normal_op(i, c); | 145 | __rfkill_handle_normal_op(i, c); |
188 | #endif | ||
189 | 146 | ||
190 | spin_lock_irq(&task->lock); | 147 | spin_lock_irq(&task->lock); |
191 | } | 148 | } |
@@ -238,32 +195,6 @@ static void rfkill_schedule_global_op(enum rfkill_global_sched_op op) | |||
238 | spin_unlock_irqrestore(&rfkill_task.lock, flags); | 195 | spin_unlock_irqrestore(&rfkill_task.lock, flags); |
239 | } | 196 | } |
240 | 197 | ||
241 | #ifdef RFKILL_NEED_SWSET | ||
242 | /* Use this if you need to add EV_SW SW_WLAN/WWAN/BLUETOOTH/etc handling */ | ||
243 | |||
244 | static void rfkill_schedule_set(enum rfkill_type type, | ||
245 | enum rfkill_state desired_state) | ||
246 | { | ||
247 | unsigned long flags; | ||
248 | |||
249 | if (rfkill_is_epo_lock_active()) | ||
250 | return; | ||
251 | |||
252 | spin_lock_irqsave(&rfkill_task.lock, flags); | ||
253 | if (!rfkill_task.global_op_pending) { | ||
254 | set_bit(type, rfkill_task.sw_pending); | ||
255 | set_bit(type, rfkill_task.sw_setpending); | ||
256 | clear_bit(type, rfkill_task.sw_togglestate); | ||
257 | if (desired_state) | ||
258 | set_bit(type, rfkill_task.sw_newstate); | ||
259 | else | ||
260 | clear_bit(type, rfkill_task.sw_newstate); | ||
261 | rfkill_schedule_ratelimited(); | ||
262 | } | ||
263 | spin_unlock_irqrestore(&rfkill_task.lock, flags); | ||
264 | } | ||
265 | #endif | ||
266 | |||
267 | static void rfkill_schedule_toggle(enum rfkill_type type) | 198 | static void rfkill_schedule_toggle(enum rfkill_type type) |
268 | { | 199 | { |
269 | unsigned long flags; | 200 | unsigned long flags; |