Input devices may issue events that are related to rfkill.  These are the
 various KEY_* events and SW_* events supported by rfkill-input.c.
 
-******IMPORTANT******
-When rfkill-input is ACTIVE, userspace is NOT TO CHANGE THE STATE OF AN RFKILL
-SWITCH IN RESPONSE TO AN INPUT EVENT also handled by rfkill-input, unless it
-has set to true the user_claim attribute for that particular switch.  This rule
-is *absolute*; do NOT violate it.
-******IMPORTANT******
-
-Userspace must not assume it is the only source of control for rfkill switches.
-Their state CAN and WILL change due to firmware actions, direct user actions,
-and the rfkill-input EPO override for *_RFKILL_ALL.
+Userspace may not change the state of an rfkill switch in response to an
+input event, it should refrain from changing states entirely.
+
+Userspace cannot assume it is the only source of control for rfkill switches.
+Their state can change due to firmware actions, direct user actions, and the
+rfkill-input EPO override for *_RFKILL_ALL.
 
 When rfkill-input is not active, userspace must initiate a rfkill status
 change by writing to the "state" attribute in order for anything to happen.
 
        sc->rf_kill.rfkill->data = sc;
        sc->rf_kill.rfkill->toggle_radio = ath_sw_toggle_radio;
        sc->rf_kill.rfkill->state = RFKILL_STATE_UNBLOCKED;
-       sc->rf_kill.rfkill->user_claim_unsupported = 1;
 
        return 0;
 }
 
        rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
        rfk->rfkill->data = dev;
        rfk->rfkill->toggle_radio = b43_rfkill_soft_toggle;
-       rfk->rfkill->user_claim_unsupported = 1;
 
        rfk->poll_dev = input_allocate_polled_device();
        if (!rfk->poll_dev) {
 
        rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
        rfk->rfkill->data = dev;
        rfk->rfkill->toggle_radio = b43legacy_rfkill_soft_toggle;
-       rfk->rfkill->user_claim_unsupported = 1;
 
        rfk->poll_dev = input_allocate_polled_device();
        if (!rfk->poll_dev) {
 
        priv->rfkill->data = priv;
        priv->rfkill->state = RFKILL_STATE_UNBLOCKED;
        priv->rfkill->toggle_radio = iwl_rfkill_soft_rf_kill;
-       priv->rfkill->user_claim_unsupported = 1;
 
        priv->rfkill->dev.class->suspend = NULL;
        priv->rfkill->dev.class->resume = NULL;
 
        *data = cap;
        rfkill_dev->data = data;
        rfkill_dev->toggle_radio = acer_rfkill_set;
-       rfkill_dev->user_claim_unsupported = 1;
 
        err = rfkill_register(rfkill_dev);
        if (err) {
 
                wifi_rfkill->name = "hp-wifi";
                wifi_rfkill->state = hp_wmi_wifi_state();
                wifi_rfkill->toggle_radio = hp_wmi_wifi_set;
-               wifi_rfkill->user_claim_unsupported = 1;
                err = rfkill_register(wifi_rfkill);
                if (err)
                        goto add_sysfs_error;
                bluetooth_rfkill->name = "hp-bluetooth";
                bluetooth_rfkill->state = hp_wmi_bluetooth_state();
                bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set;
-               bluetooth_rfkill->user_claim_unsupported = 1;
                err = rfkill_register(bluetooth_rfkill);
                if (err)
                        goto register_bluetooth_error;
                wwan_rfkill->name = "hp-wwan";
                wwan_rfkill->state = hp_wmi_wwan_state();
                wwan_rfkill->toggle_radio = hp_wmi_wwan_set;
-               wwan_rfkill->user_claim_unsupported = 1;
                err = rfkill_register(wwan_rfkill);
                if (err)
                        goto register_wwan_err;
 
        sony_wifi_rfkill->name = "sony-wifi";
        sony_wifi_rfkill->toggle_radio = sony_nc_rfkill_set;
        sony_wifi_rfkill->get_state = sony_nc_rfkill_get;
-       sony_wifi_rfkill->user_claim_unsupported = 1;
        sony_wifi_rfkill->data = (void *)SONY_WIFI;
        err = rfkill_register(sony_wifi_rfkill);
        if (err)
        sony_bluetooth_rfkill->name = "sony-bluetooth";
        sony_bluetooth_rfkill->toggle_radio = sony_nc_rfkill_set;
        sony_bluetooth_rfkill->get_state = sony_nc_rfkill_get;
-       sony_bluetooth_rfkill->user_claim_unsupported = 1;
        sony_bluetooth_rfkill->data = (void *)SONY_BLUETOOTH;
        err = rfkill_register(sony_bluetooth_rfkill);
        if (err)
        sony_wwan_rfkill->name = "sony-wwan";
        sony_wwan_rfkill->toggle_radio = sony_nc_rfkill_set;
        sony_wwan_rfkill->get_state = sony_nc_rfkill_get;
-       sony_wwan_rfkill->user_claim_unsupported = 1;
        sony_wwan_rfkill->data = (void *)SONY_WWAN;
        err = rfkill_register(sony_wwan_rfkill);
        if (err)
        sony_wimax_rfkill->name = "sony-wimax";
        sony_wimax_rfkill->toggle_radio = sony_nc_rfkill_set;
        sony_wimax_rfkill->get_state = sony_nc_rfkill_get;
-       sony_wimax_rfkill->user_claim_unsupported = 1;
        sony_wimax_rfkill->data = (void *)SONY_WIMAX;
        err = rfkill_register(sony_wimax_rfkill);
        if (err)
 
 
                toshiba_acpi.rfk_dev->name = toshiba_acpi.bt_name;
                toshiba_acpi.rfk_dev->toggle_radio = bt_rfkill_toggle_radio;
-               toshiba_acpi.rfk_dev->user_claim_unsupported = 1;
                toshiba_acpi.rfk_dev->data = &toshiba_acpi;
 
                if (hci_get_bt_on(&bt_on) == HCI_SUCCESS && bt_on) {
 
  * @type: Radio type which the button controls, the value stored
  *     here should be a value from enum rfkill_type.
  * @state: State of the switch, "UNBLOCKED" means radio can operate.
- * @user_claim_unsupported: Whether the hardware supports exclusive
- *     RF-kill control by userspace. Set this before registering.
- * @user_claim: Set when the switch is controlled exlusively by userspace.
  * @mutex: Guards switch state transitions.  It serializes callbacks
  *     and also protects the state.
  * @data: Pointer to the RF button drivers private data which will be
        const char *name;
        enum rfkill_type type;
 
-       bool user_claim_unsupported;
-       bool user_claim;
-
        /* the mutex serializes callbacks and also protects
         * the state */
        struct mutex mutex;
 
 
        rfkill_global_states[type].current_state = state;
        list_for_each_entry(rfkill, &rfkill_list, node) {
-               if ((!rfkill->user_claim) && (rfkill->type == type)) {
+               if (rfkill->type == type) {
                        mutex_lock(&rfkill->mutex);
                        rfkill_toggle_radio(rfkill, state, 0);
                        mutex_unlock(&rfkill->mutex);
                                 struct device_attribute *attr,
                                 char *buf)
 {
-       struct rfkill *rfkill = to_rfkill(dev);
-
-       return sprintf(buf, "%d\n", rfkill->user_claim);
+       return sprintf(buf, "%d\n", 0);
 }
 
 static ssize_t rfkill_claim_store(struct device *dev,
                                  struct device_attribute *attr,
                                  const char *buf, size_t count)
 {
-       struct rfkill *rfkill = to_rfkill(dev);
-       unsigned long claim_tmp;
-       bool claim;
-       int error;
-
-       if (!capable(CAP_NET_ADMIN))
-               return -EPERM;
-
-       if (rfkill->user_claim_unsupported)
-               return -EOPNOTSUPP;
-
-       error = strict_strtoul(buf, 0, &claim_tmp);
-       if (error)
-               return error;
-       claim = !!claim_tmp;
-
-       /*
-        * Take the global lock to make sure the kernel is not in
-        * the middle of rfkill_switch_all
-        */
-       error = mutex_lock_killable(&rfkill_global_mutex);
-       if (error)
-               return error;
-
-       if (rfkill->user_claim != claim) {
-               if (!claim && !rfkill_epo_lock_active) {
-                       mutex_lock(&rfkill->mutex);
-                       rfkill_toggle_radio(rfkill,
-                                       rfkill_global_states[rfkill->type].current_state,
-                                       0);
-                       mutex_unlock(&rfkill->mutex);
-               }
-               rfkill->user_claim = claim;
-       }
-
-       mutex_unlock(&rfkill_global_mutex);
-
-       return error ? error : count;
+       return -EOPNOTSUPP;
 }
 
 static struct device_attribute rfkill_dev_attrs[] = {
 
        rfkill->state = RFKILL_STATE_UNBLOCKED;
        rfkill->data = wimax_dev;
        rfkill->toggle_radio = wimax_rfkill_toggle_radio;
-       rfkill->user_claim_unsupported = 1;
 
        /* Initialize the input device for the hw key */
        input_dev = input_allocate_device();