aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/ieee80211.h2
-rw-r--r--net/ieee80211/ieee80211_geo.c16
2 files changed, 18 insertions, 0 deletions
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h
index d56b2923d61a..bbd85cd61ed5 100644
--- a/include/net/ieee80211.h
+++ b/include/net/ieee80211.h
@@ -1291,6 +1291,8 @@ extern u8 ieee80211_get_channel_flags(struct ieee80211_device *ieee,
1291extern const struct ieee80211_channel *ieee80211_get_channel(struct 1291extern const struct ieee80211_channel *ieee80211_get_channel(struct
1292 ieee80211_device 1292 ieee80211_device
1293 *ieee, u8 channel); 1293 *ieee, u8 channel);
1294extern u32 ieee80211_channel_to_freq(struct ieee80211_device * ieee,
1295 u8 channel);
1294 1296
1295/* ieee80211_wx.c */ 1297/* ieee80211_wx.c */
1296extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee, 1298extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
diff --git a/net/ieee80211/ieee80211_geo.c b/net/ieee80211/ieee80211_geo.c
index 305a09de85a5..960ad13f5e9f 100644
--- a/net/ieee80211/ieee80211_geo.c
+++ b/net/ieee80211/ieee80211_geo.c
@@ -94,6 +94,21 @@ int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel)
94 return -1; 94 return -1;
95} 95}
96 96
97u32 ieee80211_channel_to_freq(struct ieee80211_device * ieee, u8 channel)
98{
99 const struct ieee80211_channel * ch;
100
101 /* Driver needs to initialize the geography map before using
102 * these helper functions */
103 if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0)
104 return 0;
105
106 ch = ieee80211_get_channel(ieee, channel);
107 if (!ch->channel)
108 return 0;
109 return ch->freq;
110}
111
97u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq) 112u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq)
98{ 113{
99 int i; 114 int i;
@@ -174,6 +189,7 @@ EXPORT_SYMBOL(ieee80211_get_channel);
174EXPORT_SYMBOL(ieee80211_get_channel_flags); 189EXPORT_SYMBOL(ieee80211_get_channel_flags);
175EXPORT_SYMBOL(ieee80211_is_valid_channel); 190EXPORT_SYMBOL(ieee80211_is_valid_channel);
176EXPORT_SYMBOL(ieee80211_freq_to_channel); 191EXPORT_SYMBOL(ieee80211_freq_to_channel);
192EXPORT_SYMBOL(ieee80211_channel_to_freq);
177EXPORT_SYMBOL(ieee80211_channel_to_index); 193EXPORT_SYMBOL(ieee80211_channel_to_index);
178EXPORT_SYMBOL(ieee80211_set_geo); 194EXPORT_SYMBOL(ieee80211_set_geo);
179EXPORT_SYMBOL(ieee80211_get_geo); 195EXPORT_SYMBOL(ieee80211_get_geo);