diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-03-28 05:04:23 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-04-10 14:54:09 -0400 |
commit | d748b4642a53cd1ead303f9e2b008295391466b7 (patch) | |
tree | a557d45efb433b2022125fc5c4665ded20e27e1c /drivers | |
parent | 8f727ef3c4859f2c397a7609beb845dcd66729f5 (diff) |
mac80211: remove antenna_sel_tx TX info field
This field is never set to anything non-zero in
mac80211, so we should be able to remove it.
Unfortunately though, the iwlwifi and iwlegacy
drivers use it for their internal TX status
processing (which shouldn't be using the rate
control API to start with), so add a new field
"status.antenna" for them, at least for now.
In the future, I plan to use the new field to
hold the hardware queue, while the SKB's queue
mapping holds the AC.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/b43/xmit.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/b43legacy/xmit.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/iwlegacy/4965-mac.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlegacy/4965-rs.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/p54/txrx.c | 3 |
7 files changed, 9 insertions, 22 deletions
diff --git a/drivers/net/wireless/b43/xmit.c b/drivers/net/wireless/b43/xmit.c index 2c5367884b3f..cba413536270 100644 --- a/drivers/net/wireless/b43/xmit.c +++ b/drivers/net/wireless/b43/xmit.c | |||
@@ -378,7 +378,7 @@ int b43_generate_txhdr(struct b43_wldev *dev, | |||
378 | if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) | 378 | if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) |
379 | phy_ctl |= B43_TXH_PHY_SHORTPRMBL; | 379 | phy_ctl |= B43_TXH_PHY_SHORTPRMBL; |
380 | 380 | ||
381 | switch (b43_ieee80211_antenna_sanitize(dev, info->antenna_sel_tx)) { | 381 | switch (b43_ieee80211_antenna_sanitize(dev, 0)) { |
382 | case 0: /* Default */ | 382 | case 0: /* Default */ |
383 | phy_ctl |= B43_TXH_PHY_ANT01AUTO; | 383 | phy_ctl |= B43_TXH_PHY_ANT01AUTO; |
384 | break; | 384 | break; |
diff --git a/drivers/net/wireless/b43legacy/xmit.c b/drivers/net/wireless/b43legacy/xmit.c index 5188fab0b377..e6c573af494d 100644 --- a/drivers/net/wireless/b43legacy/xmit.c +++ b/drivers/net/wireless/b43legacy/xmit.c | |||
@@ -277,19 +277,7 @@ static int generate_txhdr_fw3(struct b43legacy_wldev *dev, | |||
277 | phy_ctl |= B43legacy_TX4_PHY_ENC_OFDM; | 277 | phy_ctl |= B43legacy_TX4_PHY_ENC_OFDM; |
278 | if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) | 278 | if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) |
279 | phy_ctl |= B43legacy_TX4_PHY_SHORTPRMBL; | 279 | phy_ctl |= B43legacy_TX4_PHY_SHORTPRMBL; |
280 | switch (info->antenna_sel_tx) { | 280 | phy_ctl |= B43legacy_TX4_PHY_ANTLAST; |
281 | case 0: | ||
282 | phy_ctl |= B43legacy_TX4_PHY_ANTLAST; | ||
283 | break; | ||
284 | case 1: | ||
285 | phy_ctl |= B43legacy_TX4_PHY_ANT0; | ||
286 | break; | ||
287 | case 2: | ||
288 | phy_ctl |= B43legacy_TX4_PHY_ANT1; | ||
289 | break; | ||
290 | default: | ||
291 | B43legacy_BUG_ON(1); | ||
292 | } | ||
293 | 281 | ||
294 | /* MAC control */ | 282 | /* MAC control */ |
295 | rates = info->control.rates; | 283 | rates = info->control.rates; |
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c index c46275a92565..f2baf94f069c 100644 --- a/drivers/net/wireless/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/iwlegacy/4965-mac.c | |||
@@ -2850,9 +2850,9 @@ void | |||
2850 | il4965_hwrate_to_tx_control(struct il_priv *il, u32 rate_n_flags, | 2850 | il4965_hwrate_to_tx_control(struct il_priv *il, u32 rate_n_flags, |
2851 | struct ieee80211_tx_info *info) | 2851 | struct ieee80211_tx_info *info) |
2852 | { | 2852 | { |
2853 | struct ieee80211_tx_rate *r = &info->control.rates[0]; | 2853 | struct ieee80211_tx_rate *r = &info->status.rates[0]; |
2854 | 2854 | ||
2855 | info->antenna_sel_tx = | 2855 | info->status.antenna = |
2856 | ((rate_n_flags & RATE_MCS_ANT_ABC_MSK) >> RATE_MCS_ANT_POS); | 2856 | ((rate_n_flags & RATE_MCS_ANT_ABC_MSK) >> RATE_MCS_ANT_POS); |
2857 | if (rate_n_flags & RATE_MCS_HT_MSK) | 2857 | if (rate_n_flags & RATE_MCS_HT_MSK) |
2858 | r->flags |= IEEE80211_TX_RC_MCS; | 2858 | r->flags |= IEEE80211_TX_RC_MCS; |
diff --git a/drivers/net/wireless/iwlegacy/4965-rs.c b/drivers/net/wireless/iwlegacy/4965-rs.c index d7e2856e41d3..ac4d31b30e46 100644 --- a/drivers/net/wireless/iwlegacy/4965-rs.c +++ b/drivers/net/wireless/iwlegacy/4965-rs.c | |||
@@ -873,7 +873,7 @@ il4965_rs_tx_status(void *il_r, struct ieee80211_supported_band *sband, | |||
873 | tbl_type.is_SGI != !!(mac_flags & IEEE80211_TX_RC_SHORT_GI) || | 873 | tbl_type.is_SGI != !!(mac_flags & IEEE80211_TX_RC_SHORT_GI) || |
874 | tbl_type.is_ht40 != !!(mac_flags & IEEE80211_TX_RC_40_MHZ_WIDTH) || | 874 | tbl_type.is_ht40 != !!(mac_flags & IEEE80211_TX_RC_40_MHZ_WIDTH) || |
875 | tbl_type.is_dup != !!(mac_flags & IEEE80211_TX_RC_DUP_DATA) || | 875 | tbl_type.is_dup != !!(mac_flags & IEEE80211_TX_RC_DUP_DATA) || |
876 | tbl_type.ant_type != info->antenna_sel_tx || | 876 | tbl_type.ant_type != info->status.antenna || |
877 | !!(tx_rate & RATE_MCS_HT_MSK) != !!(mac_flags & IEEE80211_TX_RC_MCS) | 877 | !!(tx_rate & RATE_MCS_HT_MSK) != !!(mac_flags & IEEE80211_TX_RC_MCS) |
878 | || !!(tx_rate & RATE_MCS_GF_MSK) != | 878 | || !!(tx_rate & RATE_MCS_GF_MSK) != |
879 | !!(mac_flags & IEEE80211_TX_RC_GREEN_FIELD) || rs_idx != mac_idx) { | 879 | !!(mac_flags & IEEE80211_TX_RC_GREEN_FIELD) || rs_idx != mac_idx) { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c index 23434122419f..f3db23e3efc9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c | |||
@@ -969,7 +969,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband, | |||
969 | (tbl_type.is_SGI != !!(mac_flags & IEEE80211_TX_RC_SHORT_GI)) || | 969 | (tbl_type.is_SGI != !!(mac_flags & IEEE80211_TX_RC_SHORT_GI)) || |
970 | (tbl_type.is_ht40 != !!(mac_flags & IEEE80211_TX_RC_40_MHZ_WIDTH)) || | 970 | (tbl_type.is_ht40 != !!(mac_flags & IEEE80211_TX_RC_40_MHZ_WIDTH)) || |
971 | (tbl_type.is_dup != !!(mac_flags & IEEE80211_TX_RC_DUP_DATA)) || | 971 | (tbl_type.is_dup != !!(mac_flags & IEEE80211_TX_RC_DUP_DATA)) || |
972 | (tbl_type.ant_type != info->antenna_sel_tx) || | 972 | (tbl_type.ant_type != info->status.antenna) || |
973 | (!!(tx_rate & RATE_MCS_HT_MSK) != !!(mac_flags & IEEE80211_TX_RC_MCS)) || | 973 | (!!(tx_rate & RATE_MCS_HT_MSK) != !!(mac_flags & IEEE80211_TX_RC_MCS)) || |
974 | (!!(tx_rate & RATE_MCS_GF_MSK) != !!(mac_flags & IEEE80211_TX_RC_GREEN_FIELD)) || | 974 | (!!(tx_rate & RATE_MCS_GF_MSK) != !!(mac_flags & IEEE80211_TX_RC_GREEN_FIELD)) || |
975 | (rs_index != mac_index)) { | 975 | (rs_index != mac_index)) { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index 07563a68d32a..697f2032bfd6 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |||
@@ -779,9 +779,9 @@ static void iwlagn_non_agg_tx_status(struct iwl_priv *priv, | |||
779 | static void iwlagn_hwrate_to_tx_control(struct iwl_priv *priv, u32 rate_n_flags, | 779 | static void iwlagn_hwrate_to_tx_control(struct iwl_priv *priv, u32 rate_n_flags, |
780 | struct ieee80211_tx_info *info) | 780 | struct ieee80211_tx_info *info) |
781 | { | 781 | { |
782 | struct ieee80211_tx_rate *r = &info->control.rates[0]; | 782 | struct ieee80211_tx_rate *r = &info->status.rates[0]; |
783 | 783 | ||
784 | info->antenna_sel_tx = | 784 | info->status.antenna = |
785 | ((rate_n_flags & RATE_MCS_ANT_ABC_MSK) >> RATE_MCS_ANT_POS); | 785 | ((rate_n_flags & RATE_MCS_ANT_ABC_MSK) >> RATE_MCS_ANT_POS); |
786 | if (rate_n_flags & RATE_MCS_HT_MSK) | 786 | if (rate_n_flags & RATE_MCS_HT_MSK) |
787 | r->flags |= IEEE80211_TX_RC_MCS; | 787 | r->flags |= IEEE80211_TX_RC_MCS; |
diff --git a/drivers/net/wireless/p54/txrx.c b/drivers/net/wireless/p54/txrx.c index a08a6f0e4dd1..7c8f118c2b09 100644 --- a/drivers/net/wireless/p54/txrx.c +++ b/drivers/net/wireless/p54/txrx.c | |||
@@ -914,8 +914,7 @@ void p54_tx_80211(struct ieee80211_hw *dev, struct sk_buff *skb) | |||
914 | txhdr->hw_queue = queue; | 914 | txhdr->hw_queue = queue; |
915 | txhdr->backlog = priv->tx_stats[queue].len - 1; | 915 | txhdr->backlog = priv->tx_stats[queue].len - 1; |
916 | memset(txhdr->durations, 0, sizeof(txhdr->durations)); | 916 | memset(txhdr->durations, 0, sizeof(txhdr->durations)); |
917 | txhdr->tx_antenna = ((info->antenna_sel_tx == 0) ? | 917 | txhdr->tx_antenna = 2 & priv->tx_diversity_mask; |
918 | 2 : info->antenna_sel_tx - 1) & priv->tx_diversity_mask; | ||
919 | if (priv->rxhw == 5) { | 918 | if (priv->rxhw == 5) { |
920 | txhdr->longbow.cts_rate = cts_rate; | 919 | txhdr->longbow.cts_rate = cts_rate; |
921 | txhdr->longbow.output_power = cpu_to_le16(priv->output_power); | 920 | txhdr->longbow.output_power = cpu_to_le16(priv->output_power); |