mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 05:02:12 +00:00
mac80211: pass vif param to conf_tx() callback
tx params should be configured per interface. add ieee80211_vif param to the conf_tx callback, and change all the drivers that use this callback. The following spatch was used: @rule1@ struct ieee80211_ops ops; identifier conf_tx_op; @@ ops.conf_tx = conf_tx_op; @rule2@ identifier rule1.conf_tx_op; identifier hw, queue, params; @@ conf_tx_op ( - struct ieee80211_hw *hw, + struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) {...} Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
3c607d27c8
commit
8a3a3c85e4
@ -563,7 +563,7 @@ ath5k_get_stats(struct ieee80211_hw *hw,
|
||||
|
||||
|
||||
static int
|
||||
ath5k_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
ath5k_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct ath5k_hw *ah = hw->priv;
|
||||
|
@ -1352,7 +1352,8 @@ static int ath9k_htc_sta_remove(struct ieee80211_hw *hw,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ath9k_htc_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int ath9k_htc_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct ath9k_htc_priv *priv = hw->priv;
|
||||
|
@ -1842,7 +1842,8 @@ static void ath9k_sta_notify(struct ieee80211_hw *hw,
|
||||
}
|
||||
}
|
||||
|
||||
static int ath9k_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int ath9k_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct ath_softc *sc = hw->priv;
|
||||
|
@ -1305,7 +1305,8 @@ static int carl9170_op_sta_remove(struct ieee80211_hw *hw,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int carl9170_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int carl9170_op_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *param)
|
||||
{
|
||||
struct ar9170 *ar = hw->priv;
|
||||
|
@ -3559,7 +3559,8 @@ static void b43_qos_init(struct b43_wldev *dev)
|
||||
b43dbg(dev->wl, "QoS enabled\n");
|
||||
}
|
||||
|
||||
static int b43_op_conf_tx(struct ieee80211_hw *hw, u16 _queue,
|
||||
static int b43_op_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 _queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct b43_wl *wl = hw_to_b43_wl(hw);
|
||||
|
@ -2466,7 +2466,8 @@ out:
|
||||
}
|
||||
}
|
||||
|
||||
static int b43legacy_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int b43legacy_op_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
return 0;
|
||||
|
@ -1250,7 +1250,8 @@ void iwl_legacy_clear_isr_stats(struct iwl_priv *priv)
|
||||
memset(&priv->isr_stats, 0, sizeof(priv->isr_stats));
|
||||
}
|
||||
|
||||
int iwl_legacy_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
int iwl_legacy_mac_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct iwl_priv *priv = hw->priv;
|
||||
|
@ -286,7 +286,8 @@ struct iwl_cfg {
|
||||
***************************/
|
||||
|
||||
struct ieee80211_hw *iwl_legacy_alloc_all(struct iwl_cfg *cfg);
|
||||
int iwl_legacy_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
int iwl_legacy_mac_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
int iwl_legacy_mac_tx_last_beacon(struct ieee80211_hw *hw);
|
||||
void iwl_legacy_set_rxon_hwcrypto(struct iwl_priv *priv,
|
||||
|
@ -1123,8 +1123,9 @@ int iwl_send_statistics_request(struct iwl_priv *priv, u8 flags, bool clear)
|
||||
&statistics_cmd);
|
||||
}
|
||||
|
||||
int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
int iwl_mac_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct iwl_priv *priv = hw->priv;
|
||||
struct iwl_rxon_context *ctx;
|
||||
|
@ -236,7 +236,8 @@ struct iwl_cfg {
|
||||
* L i b *
|
||||
***************************/
|
||||
|
||||
int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
int iwl_mac_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
int iwl_mac_tx_last_beacon(struct ieee80211_hw *hw);
|
||||
void iwl_set_rxon_hwcrypto(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
|
||||
|
@ -970,7 +970,8 @@ static int mac80211_hwsim_set_tim(struct ieee80211_hw *hw,
|
||||
}
|
||||
|
||||
static int mac80211_hwsim_conf_tx(
|
||||
struct ieee80211_hw *hw, u16 queue,
|
||||
struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
wiphy_debug(hw->wiphy,
|
||||
|
@ -4915,7 +4915,8 @@ static int mwl8k_sta_add(struct ieee80211_hw *hw,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int mwl8k_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int mwl8k_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct mwl8k_priv *priv = hw->priv;
|
||||
@ -5462,7 +5463,7 @@ static int mwl8k_reload_firmware(struct ieee80211_hw *hw, char *fw_image)
|
||||
goto fail;
|
||||
|
||||
for (i = 0; i < MWL8K_TX_WMM_QUEUES; i++) {
|
||||
rc = mwl8k_conf_tx(hw, i, &priv->wmm_params[i]);
|
||||
rc = mwl8k_conf_tx(hw, NULL, i, &priv->wmm_params[i]);
|
||||
if (rc)
|
||||
goto fail;
|
||||
}
|
||||
|
@ -404,7 +404,8 @@ static void p54_configure_filter(struct ieee80211_hw *dev,
|
||||
p54_set_groupfilter(priv);
|
||||
}
|
||||
|
||||
static int p54_conf_tx(struct ieee80211_hw *dev, u16 queue,
|
||||
static int p54_conf_tx(struct ieee80211_hw *dev,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct p54_common *priv = dev->priv;
|
||||
|
@ -1648,7 +1648,8 @@ static int rt2400pci_probe_hw(struct rt2x00_dev *rt2x00dev)
|
||||
/*
|
||||
* IEEE80211 stack callback functions.
|
||||
*/
|
||||
static int rt2400pci_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int rt2400pci_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct rt2x00_dev *rt2x00dev = hw->priv;
|
||||
@ -1661,7 +1662,7 @@ static int rt2400pci_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
if (queue != 0)
|
||||
return -EINVAL;
|
||||
|
||||
if (rt2x00mac_conf_tx(hw, queue, params))
|
||||
if (rt2x00mac_conf_tx(hw, vif, queue, params))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
|
@ -4398,7 +4398,8 @@ int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rt2800_set_rts_threshold);
|
||||
|
||||
int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
int rt2800_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue_idx,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct rt2x00_dev *rt2x00dev = hw->priv;
|
||||
@ -4414,7 +4415,7 @@ int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
* we are free to update the registers based on the value
|
||||
* in the queue parameter.
|
||||
*/
|
||||
retval = rt2x00mac_conf_tx(hw, queue_idx, params);
|
||||
retval = rt2x00mac_conf_tx(hw, vif, queue_idx, params);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
|
@ -197,7 +197,8 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev);
|
||||
void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx, u32 *iv32,
|
||||
u16 *iv16);
|
||||
int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value);
|
||||
int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
int rt2800_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue_idx,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
u64 rt2800_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
|
||||
int rt2800_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
|
@ -1299,7 +1299,8 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_bss_conf *bss_conf,
|
||||
u32 changes);
|
||||
int rt2x00mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
int rt2x00mac_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
void rt2x00mac_rfkill_poll(struct ieee80211_hw *hw);
|
||||
void rt2x00mac_flush(struct ieee80211_hw *hw, bool drop);
|
||||
|
@ -713,7 +713,8 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rt2x00mac_bss_info_changed);
|
||||
|
||||
int rt2x00mac_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
int rt2x00mac_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue_idx,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct rt2x00_dev *rt2x00dev = hw->priv;
|
||||
|
@ -2883,7 +2883,8 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev)
|
||||
/*
|
||||
* IEEE80211 stack callback functions.
|
||||
*/
|
||||
static int rt61pci_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
static int rt61pci_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue_idx,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct rt2x00_dev *rt2x00dev = hw->priv;
|
||||
@ -2899,7 +2900,7 @@ static int rt61pci_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
* we are free to update the registers based on the value
|
||||
* in the queue parameter.
|
||||
*/
|
||||
retval = rt2x00mac_conf_tx(hw, queue_idx, params);
|
||||
retval = rt2x00mac_conf_tx(hw, vif, queue_idx, params);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
|
@ -2222,7 +2222,8 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev)
|
||||
/*
|
||||
* IEEE80211 stack callback functions.
|
||||
*/
|
||||
static int rt73usb_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
static int rt73usb_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue_idx,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct rt2x00_dev *rt2x00dev = hw->priv;
|
||||
@ -2238,7 +2239,7 @@ static int rt73usb_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
|
||||
* we are free to update the registers based on the value
|
||||
* in the queue parameter.
|
||||
*/
|
||||
retval = rt2x00mac_conf_tx(hw, queue_idx, params);
|
||||
retval = rt2x00mac_conf_tx(hw, vif, queue_idx, params);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
|
@ -1241,7 +1241,8 @@ static void rtl8187_configure_filter(struct ieee80211_hw *dev,
|
||||
rtl818x_iowrite32_async(priv, &priv->map->RX_CONF, priv->rx_conf);
|
||||
}
|
||||
|
||||
static int rtl8187_conf_tx(struct ieee80211_hw *dev, u16 queue,
|
||||
static int rtl8187_conf_tx(struct ieee80211_hw *dev,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct rtl8187_priv *priv = dev->priv;
|
||||
|
@ -504,7 +504,8 @@ static int _rtl_get_hal_qnum(u16 queue)
|
||||
*for mac80211 VO=0, VI=1, BE=2, BK=3
|
||||
*for rtl819x BE=0, BK=1, VI=2, VO=3
|
||||
*/
|
||||
static int rtl_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int rtl_op_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *param)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
|
@ -1158,7 +1158,8 @@ static struct ieee80211_channel wl1251_channels[] = {
|
||||
{ .hw_value = 13, .center_freq = 2472},
|
||||
};
|
||||
|
||||
static int wl1251_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int wl1251_op_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
enum wl1251_acx_ps_scheme ps_scheme;
|
||||
|
@ -3744,7 +3744,8 @@ out:
|
||||
mutex_unlock(&wl->mutex);
|
||||
}
|
||||
|
||||
static int wl1271_op_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
static int wl1271_op_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct wl1271 *wl = hw->priv;
|
||||
|
@ -141,8 +141,9 @@ static void brcms_ops_sta_notify(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
enum sta_notify_cmd cmd,
|
||||
struct ieee80211_sta *sta);
|
||||
static int brcms_ops_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
static int brcms_ops_conf_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
static u64 brcms_ops_get_tsf(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif);
|
||||
static int brcms_ops_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
@ -556,7 +557,7 @@ brcms_ops_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
}
|
||||
|
||||
static int
|
||||
brcms_ops_conf_tx(struct ieee80211_hw *hw, u16 queue,
|
||||
brcms_ops_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params)
|
||||
{
|
||||
struct brcms_info *wl = hw->priv;
|
||||
|
@ -2152,7 +2152,8 @@ struct ieee80211_ops {
|
||||
struct ieee80211_sta *sta);
|
||||
void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
enum sta_notify_cmd, struct ieee80211_sta *sta);
|
||||
int (*conf_tx)(struct ieee80211_hw *hw, u16 queue,
|
||||
int (*conf_tx)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif, u16 queue,
|
||||
const struct ieee80211_tx_queue_params *params);
|
||||
u64 (*get_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
|
||||
void (*set_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
|
@ -423,7 +423,8 @@ static inline int drv_conf_tx(struct ieee80211_local *local,
|
||||
|
||||
trace_drv_conf_tx(local, sdata, queue, params);
|
||||
if (local->ops->conf_tx)
|
||||
ret = local->ops->conf_tx(&local->hw, queue, params);
|
||||
ret = local->ops->conf_tx(&local->hw, &sdata->vif,
|
||||
queue, params);
|
||||
trace_drv_return_int(local, ret);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user