aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2016-01-22 00:54:34 +0000
committerFelix Fietkau <nbd@openwrt.org>2016-01-22 00:54:34 +0000
commitbaa618790ad359e99396a233d85e9ef1e5c917ca (patch)
tree4e443e160815cd49e90f6766ddf8ee4869384f10 /package/kernel/mac80211
parent4c4709e5b1117255bd8360f565d82ddf87ffc5e8 (diff)
downloadupstream-baa618790ad359e99396a233d85e9ef1e5c917ca.tar.gz
upstream-baa618790ad359e99396a233d85e9ef1e5c917ca.tar.bz2
upstream-baa618790ad359e99396a233d85e9ef1e5c917ca.zip
ath9k: allow multiple virtual interfaces on DFS channels
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48448
Diffstat (limited to 'package/kernel/mac80211')
-rw-r--r--package/kernel/mac80211/patches/311-ath9k-do-not-limit-the-number-of-DFS-interfaces-to-1.patch55
-rw-r--r--package/kernel/mac80211/patches/501-ath9k_ahb_init.patch2
-rw-r--r--package/kernel/mac80211/patches/530-ath9k_extra_leds.patch2
-rw-r--r--package/kernel/mac80211/patches/543-ath9k_entropy_from_adc.patch4
4 files changed, 59 insertions, 4 deletions
diff --git a/package/kernel/mac80211/patches/311-ath9k-do-not-limit-the-number-of-DFS-interfaces-to-1.patch b/package/kernel/mac80211/patches/311-ath9k-do-not-limit-the-number-of-DFS-interfaces-to-1.patch
new file mode 100644
index 0000000000..070efa98e8
--- /dev/null
+++ b/package/kernel/mac80211/patches/311-ath9k-do-not-limit-the-number-of-DFS-interfaces-to-1.patch
@@ -0,0 +1,55 @@
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Fri, 22 Jan 2016 01:05:56 +0100
+Subject: [PATCH] ath9k: do not limit the number of DFS interfaces to 1
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+---
+
+--- a/drivers/net/wireless/ath/ath9k/init.c
++++ b/drivers/net/wireless/ath/ath9k/init.c
+@@ -751,14 +751,6 @@ static const struct ieee80211_iface_comb
+
+ #endif /* CPTCFG_ATH9K_CHANNEL_CONTEXT */
+
+-static const struct ieee80211_iface_limit if_dfs_limits[] = {
+- { .max = 1, .types = BIT(NL80211_IFTYPE_AP) |
+-#ifdef CPTCFG_MAC80211_MESH
+- BIT(NL80211_IFTYPE_MESH_POINT) |
+-#endif
+- BIT(NL80211_IFTYPE_ADHOC) },
+-};
+-
+ static const struct ieee80211_iface_combination if_comb[] = {
+ {
+ .limits = if_limits,
+@@ -766,6 +758,11 @@ static const struct ieee80211_iface_comb
+ .max_interfaces = 2048,
+ .num_different_channels = 1,
+ .beacon_int_infra_match = true,
++#ifdef CPTCFG_ATH9K_DFS_CERTIFIED
++ .radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
++ BIT(NL80211_CHAN_WIDTH_20) |
++ BIT(NL80211_CHAN_WIDTH_40),
++#endif
+ },
+ {
+ .limits = wds_limits,
+@@ -774,18 +771,6 @@ static const struct ieee80211_iface_comb
+ .num_different_channels = 1,
+ .beacon_int_infra_match = true,
+ },
+-#ifdef CPTCFG_ATH9K_DFS_CERTIFIED
+- {
+- .limits = if_dfs_limits,
+- .n_limits = ARRAY_SIZE(if_dfs_limits),
+- .max_interfaces = 1,
+- .num_different_channels = 1,
+- .beacon_int_infra_match = true,
+- .radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
+- BIT(NL80211_CHAN_WIDTH_20) |
+- BIT(NL80211_CHAN_WIDTH_40),
+- }
+-#endif
+ };
+
+ #ifdef CPTCFG_ATH9K_CHANNEL_CONTEXT
diff --git a/package/kernel/mac80211/patches/501-ath9k_ahb_init.patch b/package/kernel/mac80211/patches/501-ath9k_ahb_init.patch
index 4950648b4c..5892c3e17a 100644
--- a/package/kernel/mac80211/patches/501-ath9k_ahb_init.patch
+++ b/package/kernel/mac80211/patches/501-ath9k_ahb_init.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -1039,23 +1039,23 @@ static int __init ath9k_init(void)
+@@ -1024,23 +1024,23 @@ static int __init ath9k_init(void)
{
int error;
diff --git a/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch b/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch
index 66662f4c5a..50ddd0b9d9 100644
--- a/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch
+++ b/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch
@@ -165,7 +165,7 @@
void ath_fill_led_pin(struct ath_softc *sc)
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -951,7 +951,7 @@ int ath9k_init_device(u16 devid, struct
+@@ -936,7 +936,7 @@ int ath9k_init_device(u16 devid, struct
#ifdef CPTCFG_MAC80211_LEDS
/* must be initialized before ieee80211_register_hw */
diff --git a/package/kernel/mac80211/patches/543-ath9k_entropy_from_adc.patch b/package/kernel/mac80211/patches/543-ath9k_entropy_from_adc.patch
index 81878c8ca9..d7bb5a12ce 100644
--- a/package/kernel/mac80211/patches/543-ath9k_entropy_from_adc.patch
+++ b/package/kernel/mac80211/patches/543-ath9k_entropy_from_adc.patch
@@ -65,7 +65,7 @@
}
static const struct ieee80211_iface_limit if_limits[] = {
-@@ -912,6 +913,18 @@ static void ath9k_set_hw_capab(struct at
+@@ -897,6 +898,18 @@ static void ath9k_set_hw_capab(struct at
SET_IEEE80211_PERM_ADDR(hw, common->macaddr);
}
@@ -84,7 +84,7 @@
int ath9k_init_device(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{
-@@ -957,6 +970,8 @@ int ath9k_init_device(u16 devid, struct
+@@ -942,6 +955,8 @@ int ath9k_init_device(u16 devid, struct
ARRAY_SIZE(ath9k_tpt_blink));
#endif