History

cfg80211: Add support for 60GHz band channels 5 and 6

The current support in the 60GHz band is for channels 1-4. Add support for channels 5 and 6. This requires enlarging ieee80211_channel.center_freq from u16 to u32.

Alexei Avshalom Lazar committed 8 years ago

Commit 9cf0a0b1 parent 21a5d4c6 files · +8 −8Browse files

Unified · Split

6 files
  1. drivers/net/wireless/ath/wil6210/debugfs.c +1 −1
  2. include/net/cfg80211.h +1 −1
  3. include/uapi/linux/nl80211.h +1 −1
  4. net/wireless/reg.c +1 −1
  5. net/wireless/trace.h +1 −1
  6. net/wireless/util.c +3 −3
drivers/net/wireless/ath/wil6210/debugfs.c+1−1
@@ -1436,7 +1436,7 @@ static int wil_freq_debugfs_show(struct seq_file *s, void *data) · 1435 unmodified lines
1436{1436{
1437 struct wil6210_priv *wil = s->private;1437 struct wil6210_priv *wil = s->private;
1438 struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr;1438 struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr;
1439 u16 freq = wdev->chandef.chan ? wdev->chandef.chan->center_freq : 0;1439 u32 freq = wdev->chandef.chan ? wdev->chandef.chan->center_freq : 0;
1440 1440
1441 seq_printf(s, "Freq = %d\n", freq);1441 seq_printf(s, "Freq = %d\n", freq);
1442 1442
include/net/cfg80211.h+1−1
@@ -149,7 +149,7 @@ enum ieee80211_channel_flags { · 148 unmodified lines
149 */149 */
150struct ieee80211_channel {150struct ieee80211_channel {
151 enum nl80211_band band;151 enum nl80211_band band;
152 u16 center_freq;152 u32 center_freq;
153 u16 hw_value;153 u16 hw_value;
154 u32 flags;154 u32 flags;
155 int max_antenna_gain;155 int max_antenna_gain;
include/uapi/linux/nl80211.h+1−1
@@ -4338,7 +4338,7 @@ enum nl80211_txrate_gi { · 4337 unmodified lines
4338 * enum nl80211_band - Frequency band4338 * enum nl80211_band - Frequency band
4339 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band4339 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
4340 * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)4340 * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
4341 * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz)4341 * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
4342 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace4342 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
4343 * since newer kernel versions may support more bands4343 * since newer kernel versions may support more bands
4344 */4344 */
net/wireless/reg.c+1−1
@@ -3301,7 +3301,7 @@ void regulatory_hint_disconnect(void) · 3300 unmodified lines
3301 restore_regulatory_settings(false);3301 restore_regulatory_settings(false);
3302}3302}
3303 3303
3304static bool freq_is_chan_12_13_14(u16 freq)3304static bool freq_is_chan_12_13_14(u32 freq)
3305{3305{
3306 if (freq == ieee80211_channel_to_frequency(12, NL80211_BAND_2GHZ) ||3306 if (freq == ieee80211_channel_to_frequency(12, NL80211_BAND_2GHZ) ||
3307 freq == ieee80211_channel_to_frequency(13, NL80211_BAND_2GHZ) ||3307 freq == ieee80211_channel_to_frequency(13, NL80211_BAND_2GHZ) ||
net/wireless/trace.h+1−1
@@ -112,7 +112,7 @@ · 111 unmodified lines
112 } while (0)112 } while (0)
113 113
114#define CHAN_ENTRY __field(enum nl80211_band, band) \114#define CHAN_ENTRY __field(enum nl80211_band, band) \
115 __field(u16, center_freq)115 __field(u32, center_freq)
116#define CHAN_ASSIGN(chan) \116#define CHAN_ASSIGN(chan) \
117 do { \117 do { \
118 if (chan) { \118 if (chan) { \
net/wireless/util.c+3−3
@@ -88,7 +88,7 @@ int ieee80211_channel_to_frequency(int chan, enum nl80211_band band) · 87 unmodified lines
88 return 5000 + chan * 5;88 return 5000 + chan * 5;
89 break;89 break;
90 case NL80211_BAND_60GHZ:90 case NL80211_BAND_60GHZ:
91 if (chan < 5)91 if (chan < 7)
92 return 56160 + chan * 2160;92 return 56160 + chan * 2160;
93 break;93 break;
94 default:94 default:
@@ -109,7 +109,7 @@ int ieee80211_frequency_to_channel(int freq) · 14 unmodified lines
109 return (freq - 4000) / 5;109 return (freq - 4000) / 5;
110 else if (freq <= 45000) /* DMG band lower limit */110 else if (freq <= 45000) /* DMG band lower limit */
111 return (freq - 5000) / 5;111 return (freq - 5000) / 5;
112 else if (freq >= 58320 && freq <= 64800)112 else if (freq >= 58320 && freq <= 70200)
113 return (freq - 56160) / 2160;113 return (freq - 56160) / 2160;
114 else114 else
115 return 0;115 return 0;
@@ -1568,7 +1568,7 @@ bool ieee80211_chandef_to_operating_class(struct cfg80211_chan_def *chandef, · 1452 unmodified lines
1568 }1568 }
1569 1569
1570 /* 56.16 GHz, channel 1..4 */1570 /* 56.16 GHz, channel 1..4 */
1571 if (freq >= 56160 + 2160 * 1 && freq <= 56160 + 2160 * 4) {1571 if (freq >= 56160 + 2160 * 1 && freq <= 56160 + 2160 * 6) {
1572 if (chandef->width >= NL80211_CHAN_WIDTH_40)1572 if (chandef->width >= NL80211_CHAN_WIDTH_40)
1573 return false;1573 return false;
1574 1574

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t