ath9k: make the regulatory override less intrusive - allow it to parse CTLs

SVN-Revision: 23539
master
Felix Fietkau 14 years ago
parent cb0e742bab
commit edb7be2e2b
  1. 90
      package/mac80211/patches/404-ath_regd_optional.patch

@ -1,68 +1,46 @@
--- a/drivers/net/wireless/ath/regd.c --- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c
@@ -18,6 +18,9 @@ @@ -185,6 +185,10 @@ ath_reg_apply_beaconing_flags(struct wip
#include <net/cfg80211.h> u32 bandwidth = 0;
#include <net/mac80211.h> int r;
#include "regd.h"
+#ifdef ATH_USER_REGD
+ return;
+#endif
+ +
+#ifndef ATH_USER_REGD for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
if (!wiphy->bands[band])
@@ -244,6 +248,10 @@ ath_reg_apply_active_scan_flags(struct w
u32 bandwidth = 0;
int r;
+#ifdef ATH_USER_REGD
+ return;
+#endif
+ +
#include "regd_common.h" sband = wiphy->bands[IEEE80211_BAND_2GHZ];
/* /*
@@ -587,3 +590,5 @@ u32 ath_regd_get_band_ctl(struct ath_reg @@ -291,6 +299,10 @@ static void ath_reg_apply_radar_flags(st
} struct ieee80211_channel *ch;
} unsigned int i;
EXPORT_SYMBOL(ath_regd_get_band_ctl);
+
+#endif
--- a/drivers/net/wireless/ath/regd.h
+++ b/drivers/net/wireless/ath/regd.h
@@ -249,6 +249,41 @@ enum CountryCode {
CTRY_BELGIUM2 = 5002
};
+#ifdef ATH_USER_REGD +#ifdef ATH_USER_REGD
+ return;
+#endif
+ +
+static inline bool if (!wiphy->bands[IEEE80211_BAND_5GHZ])
+ath_is_world_regd(struct ath_regulatory *reg) return;
+{
+ return true; @@ -449,6 +461,10 @@ ath_regd_init_wiphy(struct ath_regulator
+} {
+ const struct ieee80211_regdomain *regd;
+static inline int
+ath_regd_init(struct ath_regulatory *reg, struct wiphy *wiphy, +#ifdef ATH_USER_REGD
+ int (*reg_notifier)(struct wiphy *wiphy,
+ struct regulatory_request *request))
+{
+ return 0;
+}
+
+
+static inline u32
+ath_regd_get_band_ctl(struct ath_regulatory *reg,
+ enum ieee80211_band band)
+{
+ return SD_NO_CTL;
+}
+
+static inline int
+ath_reg_notifier_apply(struct wiphy *wiphy,
+ struct regulatory_request *request,
+ struct ath_regulatory *reg)
+{
+ return 0; + return 0;
+} +#endif
+
+
+#else
+ +
bool ath_is_world_regd(struct ath_regulatory *reg); wiphy->reg_notifier = reg_notifier;
int ath_regd_init(struct ath_regulatory *reg, struct wiphy *wiphy, wiphy->flags |= WIPHY_FLAG_STRICT_REGULATORY;
int (*reg_notifier)(struct wiphy *wiphy,
@@ -260,3 +295,5 @@ int ath_reg_notifier_apply(struct wiphy
struct ath_regulatory *reg);
#endif
+
+#endif

Loading…
Cancel
Save