summaryrefslogtreecommitdiff
path: root/package/kernel
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2018-09-16 19:55:45 +0200
committerLudovic Pouzenc <ludovic@pouzenc.fr>2018-09-16 19:55:45 +0200
commitc0ce88c586a467665b35d93c2f6962cac8e8dc27 (patch)
treedf24b1ae76338fa83f45c14f8518720f0266705d /package/kernel
parentffb3f790a5075e5c294420e8348dfe6c429ac921 (diff)
downloadmtk-20170518-c0ce88c586a467665b35d93c2f6962cac8e8dc27.zip
mtk-20170518-c0ce88c586a467665b35d93c2f6962cac8e8dc27.tar.gz
mtk-20170518-c0ce88c586a467665b35d93c2f6962cac8e8dc27.tar.bz2
mt7xxx proprietary Wifi drivers integration + mac80211 weird changes
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh35
-rw-r--r--package/kernel/mac80211/files/regdb.txt2
2 files changed, 33 insertions, 4 deletions
diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index e6241de..a464cc9 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -88,7 +88,7 @@ mac80211_hostapd_setup_base() {
[ "$auto_channel" -gt 0 ] && channel=acs_survey
- json_get_vars noscan htmode
+ json_get_vars noscan
json_get_values ht_capab_list ht_capab
ieee80211n=1
@@ -505,7 +505,36 @@ mac80211_setup_adhoc() {
mcval=
[ -n "$mcast_rate" ] && hostapd_add_rate mcval "$mcast_rate"
- iw dev "$ifname" ibss join "$ssid" $freq $htmode fixed-freq $bssid \
+ case "$htmode" in
+ VHT20|HT20) ibss_htmode=HT20;;
+ HT40*|VHT40|VHT80|VHT160)
+ case "$hwmode" in
+ a)
+ case "$(( ($channel / 4) % 2 ))" in
+ 1) ibss_htmode="HT40+" ;;
+ 0) ibss_htmode="HT40-";;
+ esac
+ ;;
+ *)
+ case "$htmode" in
+ HT40+) ibss_htmode="HT40+";;
+ HT40-) ibss_htmode="HT40-";;
+ *)
+ if [ "$channel" -lt 7 ]; then
+ ibss_htmode="HT40+"
+ else
+ ibss_htmode="HT40-"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ [ "$auto_channel" -gt 0 ] && ibss_htmode="HT40+"
+ ;;
+ *) ibss_htmode="" ;;
+ esac
+
+ iw dev "$ifname" ibss join "$ssid" $freq $ibss_htmode fixed-freq $bssid \
${beacon_int:+beacon-interval $beacon_int} \
${brstr:+basic-rates $brstr} \
${mcval:+mcast-rate $mcval} \
@@ -596,7 +625,7 @@ drv_mac80211_setup() {
country chanbw distance \
txpower antenna_gain \
rxantenna txantenna \
- frag rts beacon_int
+ frag rts beacon_int htmode
json_get_values basic_rate_list basic_rate
json_select ..
diff --git a/package/kernel/mac80211/files/regdb.txt b/package/kernel/mac80211/files/regdb.txt
index 3d15930..c9d9abc 100644
--- a/package/kernel/mac80211/files/regdb.txt
+++ b/package/kernel/mac80211/files/regdb.txt
@@ -6,7 +6,7 @@ country 00:
# Channel 14. Only JP enables this and for 802.11b only
(2474 - 2494 @ 20), (20), NO-IR, NO-OFDM
# Channel 36 - 48
- (5170 - 5250 @ 160), (20), NO-IR
+ (5170 - 5250 @ 160), (20)
# Channel 52 - 64
(5250 - 5330 @ 160), (20), NO-IR, DFS
# Channel 100 - 144