From b55e7ea676fa7ba74fc260785baec58bb7f2a58b Mon Sep 17 00:00:00 2001
From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sun, 15 Nov 2009 21:21:47 +0000
Subject: [PATCH] mac80211: sync with changes to patches submitted upstream

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18427 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 .../mac80211/patches/520-driver_flags.patch   | 24 +++++++++++++++----
 .../mac80211/patches/530-ath9k_cleanup.patch  | 12 +++++-----
 2 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/package/mac80211/patches/520-driver_flags.patch b/package/mac80211/patches/520-driver_flags.patch
index 2dc2092b1..d27c502ec 100644
--- a/package/mac80211/patches/520-driver_flags.patch
+++ b/package/mac80211/patches/520-driver_flags.patch
@@ -1,6 +1,6 @@
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -386,11 +386,12 @@ struct ieee80211_tx_rate {
+@@ -386,14 +386,17 @@ struct ieee80211_tx_rate {
   * @flags: transmit info flags, defined above
   * @band: the band to transmit on (use for checking for races)
   * @antenna_sel_tx: antenna to use, 0 for automatic diversity
@@ -10,18 +10,34 @@
   * @status: union for status data
   * @driver_data: array of driver_data pointers
 - * @ampdu_ack_len: number of aggregated frames.
+- * 	relevant only if IEEE80211_TX_STATUS_AMPDU was set.
 + * @ampdu_ack_len: number of acked aggregated frames.
-  * 	relevant only if IEEE80211_TX_STATUS_AMPDU was set.
++ * 	relevant only if ieee80211_tx_status_ampdu was set.
   * @ampdu_ack_map: block ack bit map for the aggregation.
   * 	relevant only if IEEE80211_TX_STATUS_AMPDU was set.
-@@ -403,8 +404,8 @@ struct ieee80211_tx_info {
++ * @ampdu_len: number of aggregated frames.
++ * 	relevant only if ieee80211_tx_status_ampdu was set.
+  * @ack_signal: signal strength of the ACK frame
+  */
+ struct ieee80211_tx_info {
+@@ -403,8 +406,8 @@ struct ieee80211_tx_info {
  
  	u8 antenna_sel_tx;
  
 -	/* 2 byte hole */
 -	u8 pad[2];
 +	u8 driver_flags;
-+	u8 ampdu_len;
++	u8 pad;
  
  	union {
  		struct {
+@@ -428,7 +431,8 @@ struct ieee80211_tx_info {
+ 			u8 ampdu_ack_len;
+ 			u64 ampdu_ack_map;
+ 			int ack_signal;
+-			/* 8 bytes free */
++			u8 ampdu_len;
++			/* 7 bytes free */
+ 		} status;
+ 		struct {
+ 			struct ieee80211_tx_rate driver_rates[
diff --git a/package/mac80211/patches/530-ath9k_cleanup.patch b/package/mac80211/patches/530-ath9k_cleanup.patch
index 49a1143ab..e16ccf1e2 100644
--- a/package/mac80211/patches/530-ath9k_cleanup.patch
+++ b/package/mac80211/patches/530-ath9k_cleanup.patch
@@ -243,7 +243,7 @@
 +			if ((ds->ds_txstat.ts_status & ATH9K_TXERR_XRETRY) ||
 +			    (ds->ds_txstat.ts_status & ATH9K_TXERR_FIFO))
 +				tx_info->driver_flags |= ATH_TX_INFO_XRETRY;
-+			tx_info->ampdu_len = bf->bf_nframes;
++			tx_info->status.ampdu_len = bf->bf_nframes;
 +			tx_info->status.ampdu_ack_len = bf->bf_nframes - nbad;
  		}
  	}
@@ -293,7 +293,7 @@
  	};
  
  	last_per = ath_rc_priv->per[tx_rate];
-+	n_bad_frames = tx_info->ampdu_len - tx_info->status.ampdu_ack_len;
++	n_bad_frames = tx_info->status.ampdu_len - tx_info->status.ampdu_ack_len;
  
  	if (xretries) {
  		if (xretries == 1) {
@@ -312,7 +312,7 @@
  			 */
 -			if (tx_info_priv->n_frames > 0) {
 -				int n_frames, n_bad_frames;
-+			if (tx_info->ampdu_len > 0) {
++			if (tx_info->status.ampdu_len > 0) {
 +				int n_frames, n_bad_tries;
  				u8 cur_per, new_per;
  
@@ -320,9 +320,9 @@
 -					tx_info_priv->n_bad_frames;
 -				n_frames = tx_info_priv->n_frames * (retries + 1);
 -				cur_per = (100 * n_bad_frames / n_frames) >> 3;
-+				n_bad_tries = retries * tx_info->ampdu_len +
++				n_bad_tries = retries * tx_info->status.ampdu_len +
 +					n_bad_frames;
-+				n_frames = tx_info->ampdu_len * (retries + 1);
++				n_frames = tx_info->status.ampdu_len * (retries + 1);
 +				cur_per = (100 * n_bad_tries / n_frames) >> 3;
  				new_per = (u8)(last_per - (last_per >> 3) + cur_per);
  				ath_rc_priv->per[tx_rate] = new_per;
@@ -333,7 +333,7 @@
  		if (ath_rc_priv->probe_rate && ath_rc_priv->probe_rate == tx_rate) {
 -			if (retries > 0 || 2 * tx_info_priv->n_bad_frames >
 -				tx_info_priv->n_frames) {
-+			if (retries > 0 || 2 * n_bad_frames > tx_info->ampdu_len) {
++			if (retries > 0 || 2 * n_bad_frames > tx_info->status.ampdu_len) {
  				/*
  				 * Since we probed with just a single attempt,
  				 * any retries means the probe failed.  Also,
-- 
2.20.1