Linux wireless drivers development
 help / color / mirror / Atom feed
* [RFC] rtl8187: Do not wait for an ACK when IEEE80211_TX_CTL_NO_ACK is set
@ 2008-11-26 22:31 Stefanik Gábor
  2008-11-27 17:43 ` Herton Ronaldo Krzesinski
  2008-11-27 23:45 ` Hin-Tak Leung
  0 siblings, 2 replies; 9+ messages in thread
From: Stefanik Gábor @ 2008-11-26 22:31 UTC (permalink / raw)
  To: linux-wireless
  Cc: Hin-Tak Leung, Herton Ronaldo Krzesinski, Larry Finger,
	Johannes Berg, John W. Linville

[-- Attachment #1: Type: text/plain, Size: 1662 bytes --]

(Patch also available as an attachment in case Gmail decides to linewrap it.)

Currently we always wait for an ACK even if IEEE80211_TX_CTL_NO_ACK is set.
This is just the opposite of what other drivers do.
Change both RTL8187L and RTL8187B to skip waiting for an ACK when no
ACK was requested.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
 drivers/net/wireless/rtl818x/rtl8187_dev.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/rtl818x/rtl8187_dev.c
b/drivers/net/wireless/rtl818x/rtl8187_dev.c
index 9fd23b5..7f12d9f 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_dev.c
@@ -230,7 +230,10 @@ static int rtl8187_tx(struct ieee80211_hw *dev,
struct sk_buff *skb)
 		hdr->flags = cpu_to_le32(flags);
 		hdr->len = 0;
 		hdr->rts_duration = rts_dur;
-		hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
+			hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		else
+			hdr->retry = 0;
 		buf = hdr;

 		ep = 2;
@@ -248,7 +251,10 @@ static int rtl8187_tx(struct ieee80211_hw *dev,
struct sk_buff *skb)
 		memset(hdr, 0, sizeof(*hdr));
 		hdr->flags = cpu_to_le32(flags);
 		hdr->rts_duration = rts_dur;
-		hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
+			hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		else
+			hdr->retry = 0;
 		hdr->tx_duration =
 			ieee80211_generic_frame_duration(dev, priv->vif,
 							 skb->len, txrate);
-- 
1.5.4.5

[-- Attachment #2: 0001-rtl8187-Do-not-wait-for-an-ACK-when-IEEE80211_TX_CT.patch --]
[-- Type: application/octet-stream, Size: 1856 bytes --]

From c8d48306a486c226e2aa0d62fb4316387b2b0a7f Mon Sep 17 00:00:00 2001
From: root <root@NR3DMain.NR3D>
Date: Wed, 26 Nov 2008 23:17:00 +0100
Subject: [RFC] rtl8187: Do not wait for an ACK when IEEE80211_TX_CTL_NO_ACK is set
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Currently we always wait for an ACK even if IEEE80211_TX_CTL_NO_ACK is set.
This is just the opposite of what other drivers do.
Change both RTL8187L and RTL8187B to skip waiting for an ACK when no ACK was requested.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
 drivers/net/wireless/rtl818x/rtl8187_dev.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/rtl818x/rtl8187_dev.c b/drivers/net/wireless/rtl818x/rtl8187_dev.c
index 9fd23b5..7f12d9f 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_dev.c
@@ -230,7 +230,10 @@ static int rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
 		hdr->flags = cpu_to_le32(flags);
 		hdr->len = 0;
 		hdr->rts_duration = rts_dur;
-		hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
+			hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		else
+			hdr->retry = 0;
 		buf = hdr;
 
 		ep = 2;
@@ -248,7 +251,10 @@ static int rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
 		memset(hdr, 0, sizeof(*hdr));
 		hdr->flags = cpu_to_le32(flags);
 		hdr->rts_duration = rts_dur;
-		hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
+			hdr->retry = cpu_to_le32(info->control.rates[0].count << 8);
+		else
+			hdr->retry = 0;
 		hdr->tx_duration =
 			ieee80211_generic_frame_duration(dev, priv->vif,
 							 skb->len, txrate);
-- 
1.5.4.5


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-11-28  0:33 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-26 22:31 [RFC] rtl8187: Do not wait for an ACK when IEEE80211_TX_CTL_NO_ACK is set Stefanik Gábor
2008-11-27 17:43 ` Herton Ronaldo Krzesinski
2008-11-27 20:02   ` Stefanik Gábor
2008-11-27 21:52     ` Herton Ronaldo Krzesinski
2008-11-27 21:59       ` Johannes Berg
2008-11-27 22:39         ` Stefanik Gábor
2008-11-28  0:33           ` herton
2008-11-27 23:10       ` Hin-Tak Leung
2008-11-27 23:45 ` Hin-Tak Leung

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox