mac80211: save tx params per sdata

save and configure tx param per sdata, rather than
per hardware.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Eliad Peller
2011-09-25 20:06:54 +03:00
committed by John W. Linville
parent f70f01c2eb
commit f6f3def323
6 changed files with 31 additions and 15 deletions

View File

@@ -632,8 +632,8 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
qparam.uapsd = false;
local->tx_conf[queue] = qparam;
drv_conf_tx(local, queue, &qparam);
sdata->tx_conf[queue] = qparam;
drv_conf_tx(local, sdata, queue, &qparam);
}
/* after reinitialize QoS TX queues setting to default,
@@ -1044,8 +1044,15 @@ int ieee80211_reconfig(struct ieee80211_local *local)
mutex_unlock(&local->sta_mtx);
/* reconfigure tx conf */
for (i = 0; i < hw->queues; i++)
drv_conf_tx(local, i, &local->tx_conf[i]);
list_for_each_entry(sdata, &local->interfaces, list) {
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
sdata->vif.type == NL80211_IFTYPE_MONITOR ||
!ieee80211_sdata_running(sdata))
continue;
for (i = 0; i < hw->queues; i++)
drv_conf_tx(local, sdata, i, &sdata->tx_conf[i]);
}
/* reconfigure hardware */
ieee80211_hw_config(local, ~0);