aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-06-02 07:01:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-06-03 14:06:14 -0400
commit1f87f7d3a3b42b20f34cb03f0fd1a41c3d0e27f3 (patch)
tree642882153a48e910a415e6bb23bcfb79fadef6dd /include/net/cfg80211.h
parent6081162e2ed78dfcf149b076b047078ab1445cc2 (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.h29
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 */
762enum tx_power_setting { 761enum 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 */
861struct cfg80211_ops { 861struct 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 */
1667void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp); 1669void 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 */
1676void 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 */
1682void wiphy_rfkill_start_polling(struct wiphy *wiphy);
1683
1684/**
1685 * wiphy_rfkill_stop_polling - stop polling rfkill
1686 * @wiphy: the wiphy
1687 */
1688void wiphy_rfkill_stop_polling(struct wiphy *wiphy);
1689
1669#endif /* __NET_CFG80211_H */ 1690#endif /* __NET_CFG80211_H */