From e1e79650e5d05971ba6f36ec06c14a02ef595f0c Mon Sep 17 00:00:00 2001 From: Alexandros Couloumbis Date: Tue, 8 Sep 2020 19:17:21 +0300 Subject: [PATCH] fine-tune mac80211 & hostapd ozonet works --- package/kernel/mac80211/Makefile | 15 +--- package/kernel/mac80211/ath.mk | 7 +- .../ath/999-zkernel_4-4_ar71xx.patch | 63 ++++++++++++++++ .../patches/ath/999-ath5k_channels.patch | 46 +++++------- .../patches/ath/999-ath9k_channels.patch | 74 +++++++++++++------ .../network/services/hostapd/files/hostapd.sh | 6 +- 6 files changed, 139 insertions(+), 72 deletions(-) create mode 100644 package/kernel/mac80211/patches-4.4-ar71xx/ath/999-zkernel_4-4_ar71xx.patch diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 6844d15eef..e5f720d8b8 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -63,21 +63,8 @@ config-y:= \ MAC80211_RC_MINSTREL_HT \ MAC80211_RC_MINSTREL_VHT \ MAC80211_RC_DEFAULT_MINSTREL \ - WLAN_VENDOR_ADMTEK \ WLAN_VENDOR_ATH \ - WLAN_VENDOR_ATMEL \ - WLAN_VENDOR_BROADCOM \ - WLAN_VENDOR_CISCO \ - WLAN_VENDOR_INTEL \ WLAN_VENDOR_INTERSIL \ - WLAN_VENDOR_MARVELL \ - WLAN_VENDOR_MEDIATEK \ - WLAN_VENDOR_RALINK \ - WLAN_VENDOR_REALTEK \ - WLAN_VENDOR_RSI \ - WLAN_VENDOR_ST \ - WLAN_VENDOR_TI \ - WLAN_VENDOR_ZYDAS \ config-$(call config_package,cfg80211) += CFG80211 config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE @@ -157,7 +144,7 @@ define KernelPackage/mac80211/config config PACKAGE_MAC80211_MESH bool "Enable 802.11s mesh support" - default y + default n endif endef diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index 60ed8ad005..c0d828f920 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -17,11 +17,8 @@ PKG_CONFIG_DEPENDS += \ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS config-y += \ ATH9K_DEBUGFS \ - ATH9K_HTC_DEBUGFS \ ATH10K_DEBUGFS \ - CARL9170_DEBUGFS \ - ATH5K_DEBUG \ - ATH6KL_DEBUG + ATH5K_DEBUG endif ifdef CONFIG_PACKAGE_MAC80211_TRACING @@ -40,7 +37,7 @@ config-$(CONFIG_PACKAGE_ATH_DYNACK) += ATH9K_DYNACK config-$(call config_package,ath9k) += ATH9K config-$(call config_package,ath9k-common) += ATH9K_COMMON config-$(call config_package,owl-loader) += ATH9K_PCI_NO_EEPROM -config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB +config-$(CONFIG_TARGET_ar71xx) += config-$(CONFIG_TARGET_ath79) += ATH9K_AHB config-$(CONFIG_TARGET_ipq40xx) += ATH10K_AHB config-$(CONFIG_PCI) += ATH9K_PCI diff --git a/package/kernel/mac80211/patches-4.4-ar71xx/ath/999-zkernel_4-4_ar71xx.patch b/package/kernel/mac80211/patches-4.4-ar71xx/ath/999-zkernel_4-4_ar71xx.patch new file mode 100644 index 0000000000..9a1e66c23c --- /dev/null +++ b/package/kernel/mac80211/patches-4.4-ar71xx/ath/999-zkernel_4-4_ar71xx.patch @@ -0,0 +1,63 @@ +diff --git a/drivers/net/wireless/ath/ath9k/ahb.c b/drivers/net/wireless/ath/ath9k/ahb.c +index 259dce2..d6e0bed 100644 +--- a/drivers/net/wireless/ath/ath9k/ahb.c ++++ b/drivers/net/wireless/ath/ath9k/ahb.c +@@ -163,6 +163,7 @@ static int qca955x_wmac_reset(void) + int i; + + /* Try to wait for WMAC DDR activity to stop */ ++/* + for (i = 0; i < 10; i++) { + if (!(__raw_readl(ath79_ddr_base + QCA955X_DDR_CTL_CONFIG) & + QCA955X_DDR_CTL_CONFIG_ACT_WMAC)) +@@ -170,7 +171,7 @@ static int qca955x_wmac_reset(void) + + udelay(10); + } +- ++*/ + ath79_device_reset_set(QCA955X_RESET_RTC); + udelay(10); + ath79_device_reset_clear(QCA955X_RESET_RTC); +@@ -230,7 +231,7 @@ static const struct of_ath_ahb_data { + [QCA953X_WMAC] = { + .dev_id = AR9300_DEVID_AR953X, + .bootstrap_reg = QCA953X_RESET_REG_BOOTSTRAP, +- .bootstrap_ref = QCA953X_BOOTSTRAP_REF_CLK_40, ++// .bootstrap_ref = QCA953X_BOOTSTRAP_REF_CLK_40, + .soc_revision = ath79_get_soc_revision, + }, + [QCA955X_WMAC] = { +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +index 38c9706..0cfe4ca 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +@@ -20,6 +20,7 @@ + #include "ar9003_phy.h" + #include "ar9003_eeprom.h" + #include "ar9003_mci.h" ++#include + + #define COMP_HDR_LEN 4 + #define COMP_CKSUM_LEN 2 +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h +index e8fda54..731fc4f 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h ++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h +@@ -82,16 +82,10 @@ + /* AR5416_EEPMISC_BIG_ENDIAN not set indicates little endian */ + #define AR9300_EEPMISC_LITTLE_ENDIAN 0 + +-#define AR9300_OTP_BASE \ +- ((AR_SREV_9340(ah) || AR_SREV_9550(ah)) ? 0x30000 : 0x14000) +-#define AR9300_OTP_STATUS \ +- ((AR_SREV_9340(ah) || AR_SREV_9550(ah)) ? 0x31018 : 0x15f18) + #define AR9300_OTP_STATUS_TYPE 0x7 + #define AR9300_OTP_STATUS_VALID 0x4 + #define AR9300_OTP_STATUS_ACCESS_BUSY 0x2 + #define AR9300_OTP_STATUS_SM_BUSY 0x1 +-#define AR9300_OTP_READ_DATA \ +- ((AR_SREV_9340(ah) || AR_SREV_9550(ah)) ? 0x3101c : 0x15f1c) + + enum targetPowerHTRates { + HT_TARGET_RATE_0_8_16, diff --git a/package/kernel/mac80211/patches/ath/999-ath5k_channels.patch b/package/kernel/mac80211/patches/ath/999-ath5k_channels.patch index 28f3966e3c..8f8c3c0da3 100644 --- a/package/kernel/mac80211/patches/ath/999-ath5k_channels.patch +++ b/package/kernel/mac80211/patches/ath/999-ath5k_channels.patch @@ -1,3 +1,5 @@ +diff --git a/drivers/net/wireless/ath/ath5k/ath5k.h b/drivers/net/wireless/ath/ath5k/ath5k.h +index f1a2f6c..03e6996 100644 --- a/drivers/net/wireless/ath/ath5k/ath5k.h +++ b/drivers/net/wireless/ath/ath5k/ath5k.h @@ -187,7 +187,7 @@ do { \ @@ -18,13 +20,15 @@ -#else -#define ATH_CHAN_MAX (14 + 14 + 14 + 252 + 20) -#endif -+#define ATH_CHAN_MAX (70 + 70 + 70 + 240 + 240) // b+g+gT+a+aT XXX: This is probably excessive ++#define ATH_CHAN_MAX (26 + 26 + 26 + 200 + 200) // b+g+gT+a+aT XXX: This is probably excessive #define ATH_RXBUF 40 /* number of RX buffers */ #define ATH_TXBUF 200 /* number of TX buffers */ +diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c +index 22f039b..70d8869 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c -@@ -267,31 +267,11 @@ static void ath5k_reg_notifier(struct wi +@@ -267,31 +267,11 @@ static void ath5k_reg_notifier(struct wiphy *wiphy, /* * Returns true for the channel numbers used. */ @@ -56,30 +60,16 @@ static unsigned int ath5k_setup_channels(struct ath5k_hw *ah, struct ieee80211_channel *channels, unsigned int mode, unsigned int max) -@@ -302,12 +282,16 @@ ath5k_setup_channels(struct ath5k_hw *ah - switch (mode) { - case AR5K_MODE_11A: - /* 1..220, but 2GHz frequencies are filtered by check_channel */ -- size = 220; -+// size = 220; -+ /* -16..220 */ -+ size = 241 ; - band = NL80211_BAND_5GHZ; - break; - case AR5K_MODE_11B: - case AR5K_MODE_11G: -- size = 26; -+// size = 26; -+ /* -19..26 */ -+ size = 70; - band = NL80211_BAND_2GHZ; - break; - default: -@@ -415,6 +399,7 @@ ath5k_setup_bands(struct ieee80211_hw *h +diff --git a/drivers/net/wireless/ath/ath5k/caps.c b/drivers/net/wireless/ath/ath5k/caps.c +index 994169a..c0f448e 100644 +--- a/drivers/net/wireless/ath/ath5k/caps.c ++++ b/drivers/net/wireless/ath/ath5k/caps.c +@@ -70,7 +70,7 @@ int ath5k_hw_set_capabilities(struct ath5k_hw *ah) + caps->cap_range.range_5ghz_min = 4920; + else + caps->cap_range.range_5ghz_min = 5005; +- caps->cap_range.range_5ghz_max = 6100; ++ caps->cap_range.range_5ghz_max = 5940; - /* 5GHz band, A mode */ - if (test_bit(AR5K_MODE_11A, ah->ah_capabilities.cap_mode)) { -+ max_c = -43; - sband = &ah->sbands[NL80211_BAND_5GHZ]; - sband->band = NL80211_BAND_5GHZ; - sband->bitrates = &ah->rates[NL80211_BAND_5GHZ][0]; + /* Set supported modes */ + __set_bit(AR5K_MODE_11A, caps->cap_mode); diff --git a/package/kernel/mac80211/patches/ath/999-ath9k_channels.patch b/package/kernel/mac80211/patches/ath/999-ath9k_channels.patch index c6bd0f8d3d..3665a2b17f 100644 --- a/package/kernel/mac80211/patches/ath/999-ath9k_channels.patch +++ b/package/kernel/mac80211/patches/ath/999-ath9k_channels.patch @@ -1,34 +1,62 @@ +diff --git a/drivers/net/wireless/ath/ath9k/common-init.c b/drivers/net/wireless/ath/ath9k/common-init.c +index bee2845..24afb99 100644 --- a/drivers/net/wireless/ath/ath9k/common-init.c +++ b/drivers/net/wireless/ath/ath9k/common-init.c -@@ -61,6 +61,19 @@ static const struct ieee80211_channel at +@@ -61,16 +61,44 @@ static const struct ieee80211_channel ath9k_2ghz_chantable[] = { * this static */ static const struct ieee80211_channel ath9k_5ghz_chantable[] = { /* _We_ call this UNII 1 */ -+ CHAN5G(5020, 1), /* Channel 20 */ -+ CHAN5G(5030, 2), /* Channel 21 */ -+ CHAN5G(5040, 3), /* Channel 22 */ -+ CHAN5G(5050, 4), /* Channel 23 */ -+ CHAN5G(5060, 5), /* Channel 24 */ -+ CHAN5G(5070, 6), /* Channel 25 */ -+ CHAN5G(5080, 7), /* Channel 26 */ -+ CHAN5G(5090, 8), /* Channel 27 */ -+ CHAN5G(5100, 9), /* Channel 28 */ -+ CHAN5G(5120, 10), /* Channel 30 */ -+ CHAN5G(5140, 11), /* Channel 32 */ -+ CHAN5G(5150, 12), /* Channel 33 */ -+ CHAN5G(5160, 13), /* Channel 34 */ - CHAN5G(5180, 14), /* Channel 36 */ - CHAN5G(5200, 15), /* Channel 40 */ - CHAN5G(5220, 16), /* Channel 44 */ -@@ -71,6 +84,8 @@ static const struct ieee80211_channel at - CHAN5G(5300, 20), /* Channel 60 */ - CHAN5G(5320, 21), /* Channel 64 */ +- CHAN5G(5180, 14), /* Channel 36 */ +- CHAN5G(5200, 15), /* Channel 40 */ +- CHAN5G(5220, 16), /* Channel 44 */ +- CHAN5G(5240, 17), /* Channel 48 */ ++ CHAN5G(5010, 1), /* Channel 2 */ ++ CHAN5G(5020, 2), /* Channel 4 */ ++ CHAN5G(5030, 3), /* Channel 6 */ ++ CHAN5G(5040, 4), /* Channel 8 */ ++ CHAN5G(5050, 5), /* Channel 10 */ ++ CHAN5G(5060, 6), /* Channel 12 */ ++ CHAN5G(5070, 7), /* Channel 14 */ ++ CHAN5G(5080, 8), /* Channel 16 */ ++ CHAN5G(5090, 9), /* Channel 17 */ ++ CHAN5G(5100, 10), /* Channel 20 */ ++ CHAN5G(5110, 11), /* Channel 22 */ ++ CHAN5G(5120, 12), /* Channel 24 */ ++ CHAN5G(5130, 13), /* Channel 26 */ ++ CHAN5G(5140, 14), /* Channel 28 */ ++ CHAN5G(5150, 15), /* Channel 30 */ ++ CHAN5G(5160, 16), /* Channel 32 */ ++ CHAN5G(5170, 17), /* Channel 34 */ ++ CHAN5G(5180, 18), /* Channel 36 */ ++ CHAN5G(5190, 19), /* Channel 38 */ ++ CHAN5G(5200, 20), /* Channel 40 */ ++ CHAN5G(5210, 21), /* Channel 42 */ ++ CHAN5G(5220, 22), /* Channel 44 */ ++ CHAN5G(5230, 23), /* Channel 46 */ ++ CHAN5G(5240, 24), /* Channel 48 */ + /* _We_ call this UNII 2 */ +- CHAN5G(5260, 18), /* Channel 52 */ +- CHAN5G(5280, 19), /* Channel 56 */ +- CHAN5G(5300, 20), /* Channel 60 */ +- CHAN5G(5320, 21), /* Channel 64 */ ++ CHAN5G(5250, 25), /* Channel 50 */ ++ CHAN5G(5260, 26), /* Channel 52 */ ++ CHAN5G(5270, 27), /* Channel 54 */ ++ CHAN5G(5280, 28), /* Channel 56 */ ++ CHAN5G(5290, 29), /* Channel 58 */ ++ CHAN5G(5300, 30), /* Channel 60 */ ++ CHAN5G(5310, 31), /* Channel 62 */ ++ CHAN5G(5320, 32), /* Channel 64 */ ++ CHAN5G(5330, 33), /* Channel 66 */ ++ CHAN5G(5340, 34), /* Channel 68 */ /* _We_ claim this "For the HAMS" */ + CHAN5G(5350, 38), /* Channel 70 */ + CHAN5G(5360, 39), /* Channel 72 */ CHAN5G(5370, 40), /* Channel 74 */ CHAN5G(5375, 41), /* Channel 75 */ CHAN5G(5380, 42), /* Channel 76 */ +diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h +index 97c80b7..39a4ec0 100644 --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h @@ -74,7 +74,7 @@ @@ -36,13 +64,15 @@ #define ATH9K_RSSI_BAD -128 -#define ATH9K_NUM_CHANNELS 111 -+#define ATH9K_NUM_CHANNELS 126 ++#define ATH9K_NUM_CHANNELS 139 /* Register read/write primitives */ #define REG_WRITE(_ah, _reg, _val) \ +diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c +index 249c8a5..e290e1c 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c -@@ -45,6 +45,10 @@ static struct reg_dmn_pair_mapping *ath_ +@@ -45,6 +45,10 @@ static struct reg_dmn_pair_mapping *ath_get_regpair(int regdmn); NL80211_RRF_NO_OFDM) /* We allow IBSS on these on a case by case basis by regulatory domain */ diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh index fe5b407bc1..8aef19516e 100644 --- a/package/network/services/hostapd/files/hostapd.sh +++ b/package/network/services/hostapd/files/hostapd.sh @@ -116,7 +116,7 @@ hostapd_prepare_device_config() { set_default country_ie 1 set_default spectrum_mgmt_required 0 - set_default doth 1 + set_default doth 0 set_default legacy_rates 1 [ "$hwmode" = "b" ] && legacy_rates=1 @@ -125,11 +125,11 @@ hostapd_prepare_device_config() { append base_cfg "country_code=$country" "$N" [ "$country_ie" -gt 0 ] && { - append base_cfg "ieee80211d=1" "$N" + append base_cfg "ieee80211d=0" "$N" [ -n "$local_pwr_constraint" ] && append base_cfg "local_pwr_constraint=$local_pwr_constraint" "$N" [ "$spectrum_mgmt_required" -gt 0 ] && append base_cfg "spectrum_mgmt_required=$spectrum_mgmt_required" "$N" } - [ "$hwmode" = "a" -a "$doth" -gt 0 ] && append base_cfg "ieee80211h=1" "$N" + [ "$hwmode" = "a" -a "$doth" -gt 0 ] && append base_cfg "ieee80211h=0" "$N" } [ -n "$acs_chan_bias" ] && append base_cfg "acs_chan_bias=$acs_chan_bias" "$N" -- 2.35.1