diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-11-15 21:21:47 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-11-15 21:21:47 +0000 | 
| commit | b55e7ea676fa7ba74fc260785baec58bb7f2a58b (patch) | |
| tree | d1305f9461c14f578bb456c8811bf8bc67469853 | |
| parent | 1300afab4c665f486b1a6e296f3290c2c25ca7c8 (diff) | |
mac80211: sync with changes to patches submitted upstream
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18427 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rw-r--r-- | package/mac80211/patches/520-driver_flags.patch | 24 | ||||
| -rw-r--r-- | package/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,  | 
