diff options
Diffstat (limited to 'net/rfkill')
-rw-r--r-- | net/rfkill/core.c | 7 | ||||
-rw-r--r-- | net/rfkill/input.c | 8 |
2 files changed, 13 insertions, 2 deletions
diff --git a/net/rfkill/core.c b/net/rfkill/core.c index a001f7c1f711..a9fa86f65983 100644 --- a/net/rfkill/core.c +++ b/net/rfkill/core.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/wait.h> | 33 | #include <linux/wait.h> |
34 | #include <linux/poll.h> | 34 | #include <linux/poll.h> |
35 | #include <linux/fs.h> | 35 | #include <linux/fs.h> |
36 | #include <linux/slab.h> | ||
36 | 37 | ||
37 | #include "rfkill.h" | 38 | #include "rfkill.h" |
38 | 39 | ||
@@ -579,6 +580,8 @@ static ssize_t rfkill_name_show(struct device *dev, | |||
579 | 580 | ||
580 | static const char *rfkill_get_type_str(enum rfkill_type type) | 581 | static const char *rfkill_get_type_str(enum rfkill_type type) |
581 | { | 582 | { |
583 | BUILD_BUG_ON(NUM_RFKILL_TYPES != RFKILL_TYPE_FM + 1); | ||
584 | |||
582 | switch (type) { | 585 | switch (type) { |
583 | case RFKILL_TYPE_WLAN: | 586 | case RFKILL_TYPE_WLAN: |
584 | return "wlan"; | 587 | return "wlan"; |
@@ -592,11 +595,11 @@ static const char *rfkill_get_type_str(enum rfkill_type type) | |||
592 | return "wwan"; | 595 | return "wwan"; |
593 | case RFKILL_TYPE_GPS: | 596 | case RFKILL_TYPE_GPS: |
594 | return "gps"; | 597 | return "gps"; |
598 | case RFKILL_TYPE_FM: | ||
599 | return "fm"; | ||
595 | default: | 600 | default: |
596 | BUG(); | 601 | BUG(); |
597 | } | 602 | } |
598 | |||
599 | BUILD_BUG_ON(NUM_RFKILL_TYPES != RFKILL_TYPE_GPS + 1); | ||
600 | } | 603 | } |
601 | 604 | ||
602 | static ssize_t rfkill_type_show(struct device *dev, | 605 | static ssize_t rfkill_type_show(struct device *dev, |
diff --git a/net/rfkill/input.c b/net/rfkill/input.c index a7295ad5f9cb..3713d7ecab96 100644 --- a/net/rfkill/input.c +++ b/net/rfkill/input.c | |||
@@ -212,6 +212,9 @@ static void rfkill_event(struct input_handle *handle, unsigned int type, | |||
212 | case KEY_WIMAX: | 212 | case KEY_WIMAX: |
213 | rfkill_schedule_toggle(RFKILL_TYPE_WIMAX); | 213 | rfkill_schedule_toggle(RFKILL_TYPE_WIMAX); |
214 | break; | 214 | break; |
215 | case KEY_RFKILL: | ||
216 | rfkill_schedule_toggle(RFKILL_TYPE_ALL); | ||
217 | break; | ||
215 | } | 218 | } |
216 | } else if (type == EV_SW && code == SW_RFKILL_ALL) | 219 | } else if (type == EV_SW && code == SW_RFKILL_ALL) |
217 | rfkill_schedule_evsw_rfkillall(data); | 220 | rfkill_schedule_evsw_rfkillall(data); |
@@ -295,6 +298,11 @@ static const struct input_device_id rfkill_ids[] = { | |||
295 | .keybit = { [BIT_WORD(KEY_WIMAX)] = BIT_MASK(KEY_WIMAX) }, | 298 | .keybit = { [BIT_WORD(KEY_WIMAX)] = BIT_MASK(KEY_WIMAX) }, |
296 | }, | 299 | }, |
297 | { | 300 | { |
301 | .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT, | ||
302 | .evbit = { BIT_MASK(EV_KEY) }, | ||
303 | .keybit = { [BIT_WORD(KEY_RFKILL)] = BIT_MASK(KEY_RFKILL) }, | ||
304 | }, | ||
305 | { | ||
298 | .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_SWBIT, | 306 | .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_SWBIT, |
299 | .evbit = { BIT(EV_SW) }, | 307 | .evbit = { BIT(EV_SW) }, |
300 | .swbit = { [BIT_WORD(SW_RFKILL_ALL)] = BIT_MASK(SW_RFKILL_ALL) }, | 308 | .swbit = { [BIT_WORD(SW_RFKILL_ALL)] = BIT_MASK(SW_RFKILL_ALL) }, |