rt2x00: Fix RFKILL polling
authorIvo van Doorn <ivdoorn@gmail.com>
Mon, 17 Aug 2009 16:53:24 +0000 (18:53 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 20 Aug 2009 15:36:00 +0000 (11:36 -0400)
The rfkill_poll callback function in the drivers check a bit
to see if the RFKILL key has been pressed. However when the
bit is set it means the radio is active and the device can be
used.

The wiphy_rfkill_set_hw_state() function expects the inversed,
so '1' must be send when the radio must be disabled.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00mac.c

index 602f126..3011aea 100644 (file)
@@ -704,8 +704,8 @@ EXPORT_SYMBOL_GPL(rt2x00mac_conf_tx);
 void rt2x00mac_rfkill_poll(struct ieee80211_hw *hw)
 {
        struct rt2x00_dev *rt2x00dev = hw->priv;
-       bool blocked = !!rt2x00dev->ops->lib->rfkill_poll(rt2x00dev);
+       bool active = !!rt2x00dev->ops->lib->rfkill_poll(rt2x00dev);
 
-       wiphy_rfkill_set_hw_state(hw->wiphy, blocked);
+       wiphy_rfkill_set_hw_state(hw->wiphy, !active);
 }
 EXPORT_SYMBOL_GPL(rt2x00mac_rfkill_poll);