rt2x00: Replace RFKILL with INPUT
PATCH 1/1 rt2x00: Replace RFKILL with INPUT
As discussed on linux-wireless rt2x00 does not offer a true RFKILL key, for that reason RFKILL support should be entirely removed.
The key which is attached to the hardware should be treated as normal input device instead. Implement input_poll_dev support to poll the device frequently. When the key status has changed report it as a SW event.
Signed-off-by Ivo van Doorn <[email protected]>
---
drivers/net/wireless/rt2x00/Kconfig +4 -3
@@ -129,10 +129,11 @@ config RT2X00_LIB_CRYPTO config RT2X00_LIB_RFKILL boolean - default y if (RT2X00_LIB=y && RFKILL=y) || (RT2X00_LIB=m && RFKILL!=n) + default y if (RT2X00_LIB=y && INPUT=y) || (RT2X00_LIB=m && INPUT!=n) + select INPUT_POLLDEV -comment "rt2x00 rfkill support disabled due to modularized RFKILL and built-in rt2x00" - depends on RT2X00_LIB=y && RFKILL=m +comment "rt2x00 rfkill support disabled due to modularized INPUT and built-in rt2x00" + depends on RT2X00_LIB=y && INPUT=m config RT2X00_LIB_LEDS boolean
drivers/net/wireless/rt2x00/rt2x00.h +3 -2
@@ -33,6 +33,7 @@#include <linux/leds.h> #include <linux/mutex.h> #include <linux/etherdevice.h> +#include <linux/input-polldev.h> #include <net/mac80211.h>
@@ -648,8 +649,8 @@ struct rt2x00_dev {unsigned long rfkill_state;#define RFKILL_STATE_ALLOCATED 1#define RFKILL_STATE_REGISTERED 2 -struct rfkill *rfkill; -struct delayed_work rfkill_work; +#define RFKILL_STATE_BLOCKED 3 +struct input_polled_dev *rfkill_poll_dev;#endif /* CONFIG_RT2X00_LIB_RFKILL */ /*
drivers/net/wireless/rt2x00/rt2x00lib.h +1 -1
@@ -33,7 +33,7 @@* Both the link tuner as the rfkill will be called once per second. */ #define LINK_TUNE_INTERVAL ( round_jiffies_relative(HZ) ) -#define RFKILL_POLL_INTERVAL ( round_jiffies_relative(HZ) ) +#define RFKILL_POLL_INTERVAL ( 1000 )/* * rt2x00_rate: Per rate device information
drivers/net/wireless/rt2x00/rt2x00rfkill.c +37 -84
180 lines not on this page · raw message