From 134c036fc927d0a9d8a4c718daea459b85ba873a Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 10 Apr 2014 08:52:33 +0000 Subject: [PATCH] mac80211: add back missing tx power handling fix (#12750) Signed-off-by: Felix Fietkau SVN-Revision: 40440 --- .../mac80211/patches/300-pending_work.patch | 24 ++++++++++++++++++- .../patches/520-mac80211_cur_txpower.patch | 2 +- .../522-mac80211_configure_antenna_gain.patch | 4 ++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/package/kernel/mac80211/patches/300-pending_work.patch b/package/kernel/mac80211/patches/300-pending_work.patch index 234006355b..71f2af379b 100644 --- a/package/kernel/mac80211/patches/300-pending_work.patch +++ b/package/kernel/mac80211/patches/300-pending_work.patch @@ -1,3 +1,16 @@ +commit 7cbb4c021bfd1e656f5b9953a947ab3c64e4e3b0 +Author: Felix Fietkau +Date: Thu Apr 10 10:49:01 2014 +0200 + + mac80211: exclude AP_VLAN interfaces from tx power calculation + + Their power value is initialized to zero. This patch fixes an issue + where the configured power drops to the minimum value when AP_VLAN + interfaces are created/removed. + + Cc: stable@vger.kernel.org + Signed-off-by: Felix Fietkau + commit 0ca13e26341733bf9577287fb04a3bef0d2f5cc9 Author: Felix Fietkau Date: Wed Apr 9 00:07:01 2014 +0200 @@ -67,7 +80,16 @@ Date: Sun Apr 6 23:35:28 2014 +0200 void ath9k_beacon_tasklet(unsigned long data) --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -203,7 +203,7 @@ void ieee80211_bss_info_change_notify(st +@@ -152,6 +152,8 @@ static u32 ieee80211_hw_conf_chan(struct + list_for_each_entry_rcu(sdata, &local->interfaces, list) { + if (!rcu_access_pointer(sdata->vif.chanctx_conf)) + continue; ++ if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ++ continue; + power = min(power, sdata->vif.bss_conf.txpower); + } + rcu_read_unlock(); +@@ -203,7 +205,7 @@ void ieee80211_bss_info_change_notify(st { struct ieee80211_local *local = sdata->local; diff --git a/package/kernel/mac80211/patches/520-mac80211_cur_txpower.patch b/package/kernel/mac80211/patches/520-mac80211_cur_txpower.patch index aa460a81c4..cb3f852498 100644 --- a/package/kernel/mac80211/patches/520-mac80211_cur_txpower.patch +++ b/package/kernel/mac80211/patches/520-mac80211_cur_txpower.patch @@ -23,7 +23,7 @@ *dbm = sdata->vif.bss_conf.txpower; --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -158,6 +158,7 @@ static u32 ieee80211_hw_conf_chan(struct +@@ -160,6 +160,7 @@ static u32 ieee80211_hw_conf_chan(struct if (local->hw.conf.power_level != power) { changed |= IEEE80211_CONF_CHANGE_POWER; diff --git a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch index c94c1e1114..611f76326d 100644 --- a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch @@ -106,7 +106,7 @@ u32 offchannel_flag; offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; -@@ -156,6 +156,12 @@ static u32 ieee80211_hw_conf_chan(struct +@@ -158,6 +158,12 @@ static u32 ieee80211_hw_conf_chan(struct } rcu_read_unlock(); @@ -119,7 +119,7 @@ if (local->hw.conf.power_level != power) { changed |= IEEE80211_CONF_CHANGE_POWER; local->hw.cur_power_level = power; -@@ -584,6 +590,7 @@ struct ieee80211_hw *ieee80211_alloc_hw( +@@ -586,6 +592,7 @@ struct ieee80211_hw *ieee80211_alloc_hw( IEEE80211_RADIOTAP_MCS_HAVE_BW; local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI | IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH;