summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlan Jenkins <alan-jenkins@tuffmail.co.uk>2009-06-08 13:27:27 +0100
committerJohn W. Linville <linville@tuxdriver.com>2009-06-10 13:28:37 -0400
commitb3fa1329eaf2a7b97124dacf5b663fd51346ac19 (patch)
tree93fd6a76af00568e8317e3e4f084135379ec6c25 /include
parent8f77f3849cc3ae2d6df9301785a3d316ea7d7ee1 (diff)
downloadlwn-b3fa1329eaf2a7b97124dacf5b663fd51346ac19.tar.gz
lwn-b3fa1329eaf2a7b97124dacf5b663fd51346ac19.zip
rfkill: remove set_global_sw_state
rfkill_set_global_sw_state() (previously rfkill_set_default()) will no longer be exported by the rewritten rfkill core. Instead, platform drivers which can provide persistent soft-rfkill state across power-down/reboot should indicate their initial state by calling rfkill_set_sw_state() before registration. Otherwise, they will be initialized to a default value during registration by a set_block call. We remove existing calls to rfkill_set_sw_state() which happen before registration, since these had no effect in the old model. If these drivers do have persistent state, the calls can be put back (subject to testing :-). This affects hp-wmi and acer-wmi. Drivers with persistent state will affect the global state only if rfkill-input is enabled. This is required, otherwise booting with wireless soft-blocked and pressing the wireless-toggle key once would have no apparent effect. This special case will be removed in future along with rfkill-input, in favour of a more flexible userspace daemon (see Documentation/feature-removal-schedule.txt). Now rfkill_global_states[n].def is only used to preserve global states over EPO, it is renamed to ".sav". Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/rfkill.h28
1 files changed, 8 insertions, 20 deletions
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
index d7e818ad0bc4..c1dca0b8138b 100644
--- a/include/linux/rfkill.h
+++ b/include/linux/rfkill.h
@@ -157,8 +157,14 @@ struct rfkill * __must_check rfkill_alloc(const char *name,
* @rfkill: rfkill structure to be registered
*
* This function should be called by the transmitter driver to register
- * the rfkill structure needs to be registered. Before calling this function
- * the driver needs to be ready to service method calls from rfkill.
+ * the rfkill structure. Before calling this function the driver needs
+ * to be ready to service method calls from rfkill.
+ *
+ * If the software blocked state is not set before registration,
+ * set_block will be called to initialize it to a default value.
+ *
+ * If the hardware blocked state is not set before registration,
+ * it is assumed to be unblocked.
*/
int __must_check rfkill_register(struct rfkill *rfkill);
@@ -251,19 +257,6 @@ bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked);
void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw);
/**
- * rfkill_set_global_sw_state - set global sw block default
- * @type: rfkill type to set default for
- * @blocked: default to set
- *
- * This function sets the global default -- use at boot if your platform has
- * an rfkill switch. If not early enough this call may be ignored.
- *
- * XXX: instead of ignoring -- how about just updating all currently
- * registered drivers?
- */
-void rfkill_set_global_sw_state(const enum rfkill_type type, bool blocked);
-
-/**
* rfkill_blocked - query rfkill block
*
* @rfkill: rfkill struct to query
@@ -317,11 +310,6 @@ static inline void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
{
}
-static inline void rfkill_set_global_sw_state(const enum rfkill_type type,
- bool blocked)
-{
-}
-
static inline bool rfkill_blocked(struct rfkill *rfkill)
{
return false;