aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rfkill.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/rfkill.h')
-rw-r--r--include/linux/rfkill.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
index 98667becdee4..c5f6e54ec6ae 100644
--- a/include/linux/rfkill.h
+++ b/include/linux/rfkill.h
@@ -46,16 +46,25 @@ enum rfkill_type {
46}; 46};
47 47
48enum rfkill_state { 48enum rfkill_state {
49 RFKILL_STATE_OFF = 0, /* Radio output blocked */ 49 RFKILL_STATE_SOFT_BLOCKED = 0, /* Radio output blocked */
50 RFKILL_STATE_ON = 1, /* Radio output active */ 50 RFKILL_STATE_UNBLOCKED = 1, /* Radio output allowed */
51 RFKILL_STATE_HARD_BLOCKED = 2, /* Output blocked, non-overrideable */
51}; 52};
52 53
54/*
55 * These are DEPRECATED, drivers using them should be verified to
56 * comply with the rfkill usage guidelines in Documentation/rfkill.txt
57 * and then converted to use the new names for rfkill_state
58 */
59#define RFKILL_STATE_OFF RFKILL_STATE_SOFT_BLOCKED
60#define RFKILL_STATE_ON RFKILL_STATE_UNBLOCKED
61
53/** 62/**
54 * struct rfkill - rfkill control structure. 63 * struct rfkill - rfkill control structure.
55 * @name: Name of the switch. 64 * @name: Name of the switch.
56 * @type: Radio type which the button controls, the value stored 65 * @type: Radio type which the button controls, the value stored
57 * here should be a value from enum rfkill_type. 66 * here should be a value from enum rfkill_type.
58 * @state: State of the switch, "ON" means radio can operate. 67 * @state: State of the switch, "UNBLOCKED" means radio can operate.
59 * @user_claim_unsupported: Whether the hardware supports exclusive 68 * @user_claim_unsupported: Whether the hardware supports exclusive
60 * RF-kill control by userspace. Set this before registering. 69 * RF-kill control by userspace. Set this before registering.
61 * @user_claim: Set when the switch is controlled exlusively by userspace. 70 * @user_claim: Set when the switch is controlled exlusively by userspace.
@@ -63,8 +72,12 @@ enum rfkill_state {
63 * @data: Pointer to the RF button drivers private data which will be 72 * @data: Pointer to the RF button drivers private data which will be
64 * passed along when toggling radio state. 73 * passed along when toggling radio state.
65 * @toggle_radio(): Mandatory handler to control state of the radio. 74 * @toggle_radio(): Mandatory handler to control state of the radio.
75 * only RFKILL_STATE_SOFT_BLOCKED and RFKILL_STATE_UNBLOCKED are
76 * valid parameters.
66 * @get_state(): handler to read current radio state from hardware, 77 * @get_state(): handler to read current radio state from hardware,
67 * may be called from atomic context, should return 0 on success. 78 * may be called from atomic context, should return 0 on success.
79 * Either this handler OR judicious use of rfkill_force_state() is
80 * MANDATORY for any driver capable of RFKILL_STATE_HARD_BLOCKED.
68 * @led_trigger: A LED trigger for this button's LED. 81 * @led_trigger: A LED trigger for this button's LED.
69 * @dev: Device structure integrating the switch into device tree. 82 * @dev: Device structure integrating the switch into device tree.
70 * @node: Used to place switch into list of all switches known to the 83 * @node: Used to place switch into list of all switches known to the
@@ -103,6 +116,19 @@ void rfkill_unregister(struct rfkill *rfkill);
103int rfkill_force_state(struct rfkill *rfkill, enum rfkill_state state); 116int rfkill_force_state(struct rfkill *rfkill, enum rfkill_state state);
104 117
105/** 118/**
119 * rfkill_state_complement - return complementar state
120 * @state: state to return the complement of
121 *
122 * Returns RFKILL_STATE_SOFT_BLOCKED if @state is RFKILL_STATE_UNBLOCKED,
123 * returns RFKILL_STATE_UNBLOCKED otherwise.
124 */
125static inline enum rfkill_state rfkill_state_complement(enum rfkill_state state)
126{
127 return (state == RFKILL_STATE_UNBLOCKED) ?
128 RFKILL_STATE_SOFT_BLOCKED : RFKILL_STATE_UNBLOCKED;
129}
130
131/**
106 * rfkill_get_led_name - Get the LED trigger name for the button's LED. 132 * rfkill_get_led_name - Get the LED trigger name for the button's LED.
107 * This function might return a NULL pointer if registering of the 133 * This function might return a NULL pointer if registering of the
108 * LED trigger failed. 134 * LED trigger failed.