Changeset 38255


Ignore:
Timestamp:
2013-09-29T14:53:21+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@…>

Location:
trunk/package/kernel/mac80211/patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/mac80211/patches/300-pending_work.patch

    r38249 r38255  
    78237823        (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9485)) 
    78247824  
     7825--- a/net/mac80211/main.c 
     7826+++ b/net/mac80211/main.c 
     7827@@ -101,7 +101,7 @@ static u32 ieee80211_hw_conf_chan(struct 
     7828        struct ieee80211_sub_if_data *sdata; 
     7829        struct cfg80211_chan_def chandef = {}; 
     7830        u32 changed = 0; 
     7831-       int power; 
     7832+       int power = 0; 
     7833        u32 offchannel_flag; 
     7834  
     7835        offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; 
     7836@@ -155,16 +155,16 @@ static u32 ieee80211_hw_conf_chan(struct 
     7837                changed |= IEEE80211_CONF_CHANGE_SMPS; 
     7838        } 
     7839  
     7840-       power = chandef.chan->max_power; 
     7841- 
     7842        rcu_read_lock(); 
     7843        list_for_each_entry_rcu(sdata, &local->interfaces, list) { 
     7844                if (!rcu_access_pointer(sdata->vif.chanctx_conf)) 
     7845                        continue; 
     7846-               power = min(power, sdata->vif.bss_conf.txpower); 
     7847+               power = max(power, sdata->vif.bss_conf.txpower); 
     7848        } 
     7849        rcu_read_unlock(); 
     7850  
     7851+       power = min(power, chandef.chan->max_power); 
     7852+ 
     7853        if (local->hw.conf.power_level != power) { 
     7854                changed |= IEEE80211_CONF_CHANGE_POWER; 
     7855                local->hw.conf.power_level = power; 
  • trunk/package/kernel/mac80211/patches/523-mac80211_configure_antenna_gain.patch

    r37919 r38255  
    131131--- a/net/mac80211/main.c 
    132132+++ b/net/mac80211/main.c 
    133 @@ -101,7 +101,7 @@ static u32 ieee80211_hw_conf_chan(struct 
    134         struct ieee80211_sub_if_data *sdata; 
     133@@ -102,6 +102,7 @@ static u32 ieee80211_hw_conf_chan(struct 
    135134        struct cfg80211_chan_def chandef = {}; 
    136135        u32 changed = 0; 
    137 -       int power; 
    138 +       int power, ant_gain, max_power; 
     136        int power = 0; 
     137+       int ant_gain, max_power; 
    139138        u32 offchannel_flag; 
    140139  
    141140        offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; 
    142 @@ -165,8 +165,21 @@ static u32 ieee80211_hw_conf_chan(struct 
    143         } 
    144         rcu_read_unlock(); 
     141@@ -165,8 +166,21 @@ static u32 ieee80211_hw_conf_chan(struct 
     142  
     143        power = min(power, chandef.chan->max_power); 
    145144  
    146145-       if (local->hw.conf.power_level != power) { 
     
    163162                local->hw.conf.power_level = power; 
    164163        } 
    165 @@ -597,6 +610,7 @@ struct ieee80211_hw *ieee80211_alloc_hw( 
     164@@ -597,6 +611,7 @@ struct ieee80211_hw *ieee80211_alloc_hw( 
    166165                                         IEEE80211_RADIOTAP_MCS_HAVE_BW; 
    167166        local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI | 
Note: See TracChangeset for help on using the changeset viewer.