Changeset 38256


Ignore:
Timestamp:
2013-09-29T14:54:03+02:00 (4 years ago)
Author:
nbd
Message:

mac80211: really fix the long standing wds ap tx power regression (#14153)

Signed-off-by: Felix Fietkau <nbd@…>

Backport of r38255

Location:
branches/attitude_adjustment/package/mac80211/patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/attitude_adjustment/package/mac80211/patches/300-pending_work.patch

    r38014 r38256  
    10751075  
    10761076        rt2800_init_bbp(rt2x00dev); 
     1077--- a/net/mac80211/main.c 
     1078+++ b/net/mac80211/main.c 
     1079@@ -101,7 +101,7 @@ static u32 ieee80211_hw_conf_chan(struct 
     1080        struct ieee80211_sub_if_data *sdata; 
     1081        struct cfg80211_chan_def chandef = {}; 
     1082        u32 changed = 0; 
     1083-       int power; 
     1084+       int power = 0; 
     1085        u32 offchannel_flag; 
     1086  
     1087        offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; 
     1088@@ -155,16 +155,16 @@ static u32 ieee80211_hw_conf_chan(struct 
     1089                changed |= IEEE80211_CONF_CHANGE_SMPS; 
     1090        } 
     1091  
     1092-       power = chandef.chan->max_power; 
     1093- 
     1094        rcu_read_lock(); 
     1095        list_for_each_entry_rcu(sdata, &local->interfaces, list) { 
     1096                if (!rcu_access_pointer(sdata->vif.chanctx_conf)) 
     1097                        continue; 
     1098-               power = min(power, sdata->vif.bss_conf.txpower); 
     1099+               power = max(power, sdata->vif.bss_conf.txpower); 
     1100        } 
     1101        rcu_read_unlock(); 
     1102  
     1103+       power = min(power, chandef.chan->max_power); 
     1104+ 
     1105        if (local->hw.conf.power_level != power) { 
     1106                changed |= IEEE80211_CONF_CHANGE_POWER; 
     1107                local->hw.conf.power_level = power; 
  • branches/attitude_adjustment/package/mac80211/patches/523-mac80211_configure_antenna_gain.patch

    r37728 r38256  
    121121--- a/net/mac80211/main.c 
    122122+++ b/net/mac80211/main.c 
    123 @@ -101,7 +101,7 @@ static u32 ieee80211_hw_conf_chan(struct 
    124         struct ieee80211_sub_if_data *sdata; 
     123@@ -102,6 +102,7 @@ static u32 ieee80211_hw_conf_chan(struct 
    125124        struct cfg80211_chan_def chandef = {}; 
    126125        u32 changed = 0; 
    127 -       int power; 
    128 +       int power, ant_gain, max_power; 
     126        int power = 0; 
     127+       int ant_gain, max_power; 
    129128        u32 offchannel_flag; 
    130129  
    131130        offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; 
    132 @@ -165,8 +165,21 @@ static u32 ieee80211_hw_conf_chan(struct 
    133         } 
    134         rcu_read_unlock(); 
     131@@ -165,8 +166,21 @@ static u32 ieee80211_hw_conf_chan(struct 
     132  
     133        power = min(power, chandef.chan->max_power); 
    135134  
    136135-       if (local->hw.conf.power_level != power) { 
     
    153152                local->hw.conf.power_level = power; 
    154153        } 
    155 @@ -597,6 +610,7 @@ struct ieee80211_hw *ieee80211_alloc_hw( 
     154@@ -597,6 +611,7 @@ struct ieee80211_hw *ieee80211_alloc_hw( 
    156155                                         IEEE80211_RADIOTAP_MCS_HAVE_BW; 
    157156        local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI | 
Note: See TracChangeset for help on using the changeset viewer.