Revert openwrt patch which caused too high tx powers

Since the reverted patch, device specific antenna gain is not set for some reason.
Reverting the patch in question fixes this issue.

THIS SHOULD BE ONLY CONSIDERD AS A TEMPORARY FIX UNTIL THE ISSUE IS FIXED PROPERLY!

Fixes: #85

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Tested-by: Fabian Bläse <fabian@blaese.de>
Tested-by: Christian Dresel <fff@chrisi01.de>
Reviewed-by: Tim Niemeyer <tim@tn-x.org>
This commit is contained in:
Fabian Bläse 2018-01-20 15:50:45 +01:00 committed by Tim Niemeyer
parent c7ffb50d3d
commit 748c8aec2a
1 changed files with 173 additions and 0 deletions

View File

@ -0,0 +1,173 @@
From e1fb372bc2466a04fdf57d2f806e362931a43daf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= <fabian@blaese.de>
Date: Sat, 20 Jan 2018 02:33:59 +0100
Subject: [PATCH] Revert "ath: do not apply broken power limits with
ATH_USER_REGD"
This reverts commit a9728799bc41e68de4d50995bb4ad689784ef55e.
This is a workaround to fix txpower calculation
---
.../mac80211/patches/402-ath_regd_optional.patch | 44 +++-------------------
.../mac80211/patches/403-world_regd_fixup.patch | 4 +-
.../patches/406-ath_relax_default_regd.patch | 8 ++--
3 files changed, 12 insertions(+), 44 deletions(-)
diff --git a/package/kernel/mac80211/patches/402-ath_regd_optional.patch b/package/kernel/mac80211/patches/402-ath_regd_optional.patch
index c8ede7f583..0d6d3dbdbd 100644
--- a/package/kernel/mac80211/patches/402-ath_regd_optional.patch
+++ b/package/kernel/mac80211/patches/402-ath_regd_optional.patch
@@ -1,14 +1,6 @@
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
-@@ -24,6 +24,7 @@
- #include "regd_common.h"
-
- static int __ath_regd_init(struct ath_regulatory *reg);
-+static struct reg_dmn_pair_mapping *ath_get_regpair(int regdmn);
-
- /*
- * This is a set of common rules used by our world regulatory domains.
-@@ -116,6 +117,9 @@ static const struct ieee80211_regdomain
+@@ -116,6 +116,9 @@ static const struct ieee80211_regdomain
static bool dynamic_country_user_possible(struct ath_regulatory *reg)
{
@@ -18,7 +10,7 @@
if (IS_ENABLED(CPTCFG_ATH_REG_DYNAMIC_USER_CERT_TESTING))
return true;
-@@ -188,6 +192,8 @@ static bool dynamic_country_user_possibl
+@@ -188,6 +191,8 @@ static bool dynamic_country_user_possibl
static bool ath_reg_dyn_country_user_allow(struct ath_regulatory *reg)
{
@@ -27,7 +19,7 @@
if (!IS_ENABLED(CPTCFG_ATH_REG_DYNAMIC_USER_REG_HINTS))
return false;
if (!dynamic_country_user_possible(reg))
-@@ -341,6 +347,9 @@ ath_reg_apply_beaconing_flags(struct wip
+@@ -341,6 +346,9 @@ ath_reg_apply_beaconing_flags(struct wip
struct ieee80211_channel *ch;
unsigned int i;
@@ -37,7 +29,7 @@
for (band = 0; band < NUM_NL80211_BANDS; band++) {
if (!wiphy->bands[band])
continue;
-@@ -374,6 +383,9 @@ ath_reg_apply_ir_flags(struct wiphy *wip
+@@ -374,6 +382,9 @@ ath_reg_apply_ir_flags(struct wiphy *wip
{
struct ieee80211_supported_band *sband;
@@ -47,7 +39,7 @@
sband = wiphy->bands[NL80211_BAND_2GHZ];
if (!sband)
return;
-@@ -402,6 +414,9 @@ static void ath_reg_apply_radar_flags(st
+@@ -402,6 +413,9 @@ static void ath_reg_apply_radar_flags(st
struct ieee80211_channel *ch;
unsigned int i;
@@ -57,19 +49,7 @@
if (!wiphy->bands[NL80211_BAND_5GHZ])
return;
-@@ -539,6 +554,11 @@ void ath_reg_notifier_apply(struct wiphy
- ath_reg_dyn_country(wiphy, reg, request);
- break;
- }
-+
-+ /* Prevent broken CTLs from being applied */
-+ if (IS_ENABLED(CPTCFG_ATH_USER_REGD) &&
-+ reg->regpair != common->reg_world_copy.regpair)
-+ reg->regpair = ath_get_regpair(WOR0_WORLD);
- }
- EXPORT_SYMBOL(ath_reg_notifier_apply);
-
-@@ -634,6 +654,10 @@ ath_regd_init_wiphy(struct ath_regulator
+@@ -634,6 +648,10 @@ ath_regd_init_wiphy(struct ath_regulator
const struct ieee80211_regdomain *regd;
wiphy->reg_notifier = reg_notifier;
@@ -80,18 +60,6 @@
wiphy->regulatory_flags |= REGULATORY_STRICT_REG |
REGULATORY_CUSTOM_REG;
-@@ -762,10 +786,7 @@ ath_regd_init(struct ath_regulatory *reg
- if (r)
- return r;
-
-- if (ath_is_world_regd(reg))
-- memcpy(&common->reg_world_copy, reg,
-- sizeof(struct ath_regulatory));
--
-+ memcpy(&common->reg_world_copy, reg, sizeof(struct ath_regulatory));
- ath_regd_init_wiphy(reg, wiphy, reg_notifier);
-
- return 0;
--- a/drivers/net/wireless/ath/Kconfig
+++ b/drivers/net/wireless/ath/Kconfig
@@ -23,6 +23,9 @@ config WLAN_VENDOR_ATH
diff --git a/package/kernel/mac80211/patches/403-world_regd_fixup.patch b/package/kernel/mac80211/patches/403-world_regd_fixup.patch
index 2043083158..2b04309ce5 100644
--- a/package/kernel/mac80211/patches/403-world_regd_fixup.patch
+++ b/package/kernel/mac80211/patches/403-world_regd_fixup.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
-@@ -44,7 +44,8 @@ static struct reg_dmn_pair_mapping *ath_
+@@ -43,7 +43,8 @@ static int __ath_regd_init(struct ath_re
NL80211_RRF_NO_OFDM)
/* We allow IBSS on these on a case by case basis by regulatory domain */
@@ -10,7 +10,7 @@
NL80211_RRF_NO_IR)
#define ATH9K_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30,\
NL80211_RRF_NO_IR)
-@@ -62,57 +63,56 @@ static struct reg_dmn_pair_mapping *ath_
+@@ -61,57 +62,56 @@ static int __ath_regd_init(struct ath_re
#define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \
ATH9K_5GHZ_5725_5850
diff --git a/package/kernel/mac80211/patches/406-ath_relax_default_regd.patch b/package/kernel/mac80211/patches/406-ath_relax_default_regd.patch
index 35b0f2b76e..b6190b9363 100644
--- a/package/kernel/mac80211/patches/406-ath_relax_default_regd.patch
+++ b/package/kernel/mac80211/patches/406-ath_relax_default_regd.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
-@@ -115,6 +115,16 @@ static const struct ieee80211_regdomain
+@@ -114,6 +114,16 @@ static const struct ieee80211_regdomain
)
};
@@ -17,7 +17,7 @@
static bool dynamic_country_user_possible(struct ath_regulatory *reg)
{
if (IS_ENABLED(CPTCFG_ATH_USER_REGD))
-@@ -123,6 +133,9 @@ static bool dynamic_country_user_possibl
+@@ -122,6 +132,9 @@ static bool dynamic_country_user_possibl
if (IS_ENABLED(CPTCFG_ATH_REG_DYNAMIC_USER_CERT_TESTING))
return true;
@@ -27,7 +27,7 @@
switch (reg->country_code) {
case CTRY_UNITED_STATES:
case CTRY_JAPAN1:
-@@ -208,11 +221,6 @@ static inline bool is_wwr_sku(u16 regd)
+@@ -207,11 +220,6 @@ static inline bool is_wwr_sku(u16 regd)
(regd == WORLD));
}
@@ -39,7 +39,7 @@
bool ath_is_world_regd(struct ath_regulatory *reg)
{
return is_wwr_sku(ath_regd_get_eepromRD(reg));
-@@ -658,6 +666,9 @@ ath_regd_init_wiphy(struct ath_regulator
+@@ -652,6 +660,9 @@ ath_regd_init_wiphy(struct ath_regulator
if (IS_ENABLED(CPTCFG_ATH_USER_REGD))
return 0;
--
2.11.0