diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-06-02 07:01:41 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-06-03 14:06:14 -0400 |
commit | 1f87f7d3a3b42b20f34cb03f0fd1a41c3d0e27f3 (patch) | |
tree | 642882153a48e910a415e6bb23bcfb79fadef6dd /include/net/cfg80211.h | |
parent | 6081162e2ed78dfcf149b076b047078ab1445cc2 (diff) |
cfg80211: add rfkill support
To be easier on drivers and users, have cfg80211 register an
rfkill structure that drivers can access. When soft-killed,
simply take down all interfaces; when hard-killed the driver
needs to notify us and we will take down the interfaces
after the fact. While rfkilled, interfaces cannot be set UP.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 8b8e4b893625..1a21895b732b 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -757,13 +757,11 @@ enum wiphy_params_flags { | |||
757 | * @TX_POWER_AUTOMATIC: the dbm parameter is ignored | 757 | * @TX_POWER_AUTOMATIC: the dbm parameter is ignored |
758 | * @TX_POWER_LIMITED: limit TX power by the dbm parameter | 758 | * @TX_POWER_LIMITED: limit TX power by the dbm parameter |
759 | * @TX_POWER_FIXED: fix TX power to the dbm parameter | 759 | * @TX_POWER_FIXED: fix TX power to the dbm parameter |
760 | * @TX_POWER_OFF: turn off completely (will go away) | ||
761 | */ | 760 | */ |
762 | enum tx_power_setting { | 761 | enum tx_power_setting { |
763 | TX_POWER_AUTOMATIC, | 762 | TX_POWER_AUTOMATIC, |
764 | TX_POWER_LIMITED, | 763 | TX_POWER_LIMITED, |
765 | TX_POWER_FIXED, | 764 | TX_POWER_FIXED, |
766 | TX_POWER_OFF, | ||
767 | }; | 765 | }; |
768 | 766 | ||
769 | /** | 767 | /** |
@@ -855,8 +853,10 @@ enum tx_power_setting { | |||
855 | * | 853 | * |
856 | * @set_tx_power: set the transmit power according to the parameters | 854 | * @set_tx_power: set the transmit power according to the parameters |
857 | * @get_tx_power: store the current TX power into the dbm variable; | 855 | * @get_tx_power: store the current TX power into the dbm variable; |
858 | * return 0 if successful; or -ENETDOWN if successful but power | 856 | * return 0 if successful |
859 | * is disabled (this will go away) | 857 | * |
858 | * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting | ||
859 | * functions to adjust rfkill hw state | ||
860 | */ | 860 | */ |
861 | struct cfg80211_ops { | 861 | struct cfg80211_ops { |
862 | int (*suspend)(struct wiphy *wiphy); | 862 | int (*suspend)(struct wiphy *wiphy); |
@@ -952,6 +952,8 @@ struct cfg80211_ops { | |||
952 | int (*set_tx_power)(struct wiphy *wiphy, | 952 | int (*set_tx_power)(struct wiphy *wiphy, |
953 | enum tx_power_setting type, int dbm); | 953 | enum tx_power_setting type, int dbm); |
954 | int (*get_tx_power)(struct wiphy *wiphy, int *dbm); | 954 | int (*get_tx_power)(struct wiphy *wiphy, int *dbm); |
955 | |||
956 | void (*rfkill_poll)(struct wiphy *wiphy); | ||
955 | }; | 957 | }; |
956 | 958 | ||
957 | /* | 959 | /* |
@@ -1666,4 +1668,23 @@ void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr, | |||
1666 | */ | 1668 | */ |
1667 | void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp); | 1669 | void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp); |
1668 | 1670 | ||
1671 | /** | ||
1672 | * wiphy_rfkill_set_hw_state - notify cfg80211 about hw block state | ||
1673 | * @wiphy: the wiphy | ||
1674 | * @blocked: block status | ||
1675 | */ | ||
1676 | void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked); | ||
1677 | |||
1678 | /** | ||
1679 | * wiphy_rfkill_start_polling - start polling rfkill | ||
1680 | * @wiphy: the wiphy | ||
1681 | */ | ||
1682 | void wiphy_rfkill_start_polling(struct wiphy *wiphy); | ||
1683 | |||
1684 | /** | ||
1685 | * wiphy_rfkill_stop_polling - stop polling rfkill | ||
1686 | * @wiphy: the wiphy | ||
1687 | */ | ||
1688 | void wiphy_rfkill_stop_polling(struct wiphy *wiphy); | ||
1689 | |||
1669 | #endif /* __NET_CFG80211_H */ | 1690 | #endif /* __NET_CFG80211_H */ |