aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-03-28 05:04:23 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-10 14:54:09 -0400
commitd748b4642a53cd1ead303f9e2b008295391466b7 (patch)
treea557d45efb433b2022125fc5c4665ded20e27e1c /drivers
parent8f727ef3c4859f2c397a7609beb845dcd66729f5 (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.c2
-rw-r--r--drivers/net/wireless/b43legacy/xmit.c14
-rw-r--r--drivers/net/wireless/iwlegacy/4965-mac.c4
-rw-r--r--drivers/net/wireless/iwlegacy/4965-rs.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-tx.c4
-rw-r--r--drivers/net/wireless/p54/txrx.c3
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
2850il4965_hwrate_to_tx_control(struct il_priv *il, u32 rate_n_flags, 2850il4965_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,
779static void iwlagn_hwrate_to_tx_control(struct iwl_priv *priv, u32 rate_n_flags, 779static 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);