mac80211: update driver when MU EDCA params change
Similar to WMM IE, if MU_EDCA IE parameters changed (or ceased to exist) tell the Driver about it. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
daa5b83513
commit
2e249fc320
@@ -1869,7 +1869,7 @@ ieee80211_sta_wmm_params(struct ieee80211_local *local,
|
||||
struct ieee80211_tx_queue_params params[IEEE80211_NUM_ACS];
|
||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
size_t left;
|
||||
int count, ac;
|
||||
int count, mu_edca_count, ac;
|
||||
const u8 *pos;
|
||||
u8 uapsd_queues = 0;
|
||||
|
||||
@@ -1889,9 +1889,16 @@ ieee80211_sta_wmm_params(struct ieee80211_local *local,
|
||||
uapsd_queues = ifmgd->uapsd_queues;
|
||||
|
||||
count = wmm_param[6] & 0x0f;
|
||||
if (count == ifmgd->wmm_last_param_set)
|
||||
/* -1 is the initial value of ifmgd->mu_edca_last_param_set.
|
||||
* if mu_edca was preset before and now it disappeared tell
|
||||
* the driver about it.
|
||||
*/
|
||||
mu_edca_count = mu_edca ? mu_edca->mu_qos_info & 0x0f : -1;
|
||||
if (count == ifmgd->wmm_last_param_set &&
|
||||
mu_edca_count == ifmgd->mu_edca_last_param_set)
|
||||
return false;
|
||||
ifmgd->wmm_last_param_set = count;
|
||||
ifmgd->mu_edca_last_param_set = mu_edca_count;
|
||||
|
||||
pos = wmm_param + 8;
|
||||
left = wmm_param_len - 8;
|
||||
@@ -3349,6 +3356,7 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
|
||||
* 4-bit value.
|
||||
*/
|
||||
ifmgd->wmm_last_param_set = -1;
|
||||
ifmgd->mu_edca_last_param_set = -1;
|
||||
|
||||
if (ifmgd->flags & IEEE80211_STA_DISABLE_WMM) {
|
||||
ieee80211_set_wmm_default(sdata, false, false);
|
||||
|
Reference in New Issue
Block a user