diff options
| author | Helmut Schaa <helmut.schaa@googlemail.com> | 2011-03-03 19:43:25 +0100 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2011-03-04 14:06:47 -0500 | 
| commit | 2517794b702cf62bb049e57c0825fc4573f8a6a3 (patch) | |
| tree | 5ebca999bdba2bd5467e7bb7c93ff696c2218d53 /drivers/net/wireless/rt2x00/rt2x00queue.c | |
| parent | fe107a5234de1f1576df466b2ea8d01868f6ee77 (diff) | |
| download | olio-linux-3.10-2517794b702cf62bb049e57c0825fc4573f8a6a3.tar.xz olio-linux-3.10-2517794b702cf62bb049e57c0825fc4573f8a6a3.zip  | |
rt2x00: Move TX descriptor field "ifs" into plcp substruct
"ifs" is only used by no-HT devices. Move it into the plcp substruct and
fill in the value only for no-HT devices.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00queue.c')
| -rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00queue.c | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 7816c1c39d6..6300cf30987 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -262,6 +262,16 @@ static void rt2x00queue_create_tx_descriptor_plcp(struct queue_entry *entry,  	unsigned int duration;  	unsigned int residual; +	/* +	 * Determine with what IFS priority this frame should be send. +	 * Set ifs to IFS_SIFS when the this is not the first fragment, +	 * or this fragment came after RTS/CTS. +	 */ +	if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) +		txdesc->u.plcp.ifs = IFS_BACKOFF; +	else +		txdesc->u.plcp.ifs = IFS_SIFS; +  	/* Data length + CRC + Crypto overhead (IV/EIV/ICV/MIC) */  	data_length = entry->skb->len + 4;  	data_length += rt2x00crypto_tx_overhead(rt2x00dev, entry->skb); @@ -373,17 +383,9 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,  	    ieee80211_is_probe_resp(hdr->frame_control))  		__set_bit(ENTRY_TXD_REQ_TIMESTAMP, &txdesc->flags); -	/* -	 * Determine with what IFS priority this frame should be send. -	 * Set ifs to IFS_SIFS when the this is not the first fragment, -	 * or this fragment came after RTS/CTS. -	 */  	if ((tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT) && -	    !test_bit(ENTRY_TXD_RTS_FRAME, &txdesc->flags)) { +	    !test_bit(ENTRY_TXD_RTS_FRAME, &txdesc->flags))  		__set_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags); -		txdesc->ifs = IFS_BACKOFF; -	} else -		txdesc->ifs = IFS_SIFS;  	/*  	 * Determine rate modulation.  |