linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/06] rt2x00: Shortcut link state updates when not operating as STA
@ 2010-10-09 11:33 Ivo van Doorn
  2010-10-09 11:33 ` [PATCH 02/06] rt2x00: Optimize unmapping of skbs Ivo van Doorn
  0 siblings, 1 reply; 6+ messages in thread
From: Ivo van Doorn @ 2010-10-09 11:33 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Helmut Schaa <helmut.schaa@googlemail.com>

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00link.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00link.c b/drivers/net/wireless/rt2x00/rt2x00link.c
index 4d534e9..46836f8 100644
--- a/drivers/net/wireless/rt2x00/rt2x00link.c
+++ b/drivers/net/wireless/rt2x00/rt2x00link.c
@@ -236,6 +236,12 @@ void rt2x00link_update_stats(struct rt2x00_dev *rt2x00dev,
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 
 	/*
+	 * No need to update the stats for !=STA interfaces
+	 */
+	if (!rt2x00dev->intf_sta_count)
+		return;
+
+	/*
 	 * Frame was received successfully since non-succesfull
 	 * frames would have been dropped by the hardware.
 	 */
-- 
1.7.2.3


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

* [PATCH 02/06] rt2x00: Optimize unmapping of skbs
  2010-10-09 11:33 [PATCH 01/06] rt2x00: Shortcut link state updates when not operating as STA Ivo van Doorn
@ 2010-10-09 11:33 ` Ivo van Doorn
  2010-10-09 11:34   ` [PATCH 03/06] rt2x00: Use proper type for rxwi_w2 in rt2800_agc_to_rssi Ivo van Doorn
  0 siblings, 1 reply; 6+ messages in thread
From: Ivo van Doorn @ 2010-10-09 11:33 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Helmut Schaa <helmut.schaa@googlemail.com>

Since no skb will be mapped for RX and TX at the same time we can
simply shortcut the check for SKBDESC_DMA_MAPPED_TX.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00queue.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index 6d41599..4436ff7 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -115,9 +115,7 @@ void rt2x00queue_unmap_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
 		dma_unmap_single(rt2x00dev->dev, skbdesc->skb_dma, skb->len,
 				 DMA_FROM_DEVICE);
 		skbdesc->flags &= ~SKBDESC_DMA_MAPPED_RX;
-	}
-
-	if (skbdesc->flags & SKBDESC_DMA_MAPPED_TX) {
+	} else if (skbdesc->flags & SKBDESC_DMA_MAPPED_TX) {
 		dma_unmap_single(rt2x00dev->dev, skbdesc->skb_dma, skb->len,
 				 DMA_TO_DEVICE);
 		skbdesc->flags &= ~SKBDESC_DMA_MAPPED_TX;
-- 
1.7.2.3


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

* [PATCH 03/06] rt2x00: Use proper type for rxwi_w2 in rt2800_agc_to_rssi
  2010-10-09 11:33 ` [PATCH 02/06] rt2x00: Optimize unmapping of skbs Ivo van Doorn
@ 2010-10-09 11:34   ` Ivo van Doorn
  2010-10-09 11:34     ` [PATCH 04/06] rt2x00: Use unlikely for error case in rt2x00queue_write_tx_frame Ivo van Doorn
  0 siblings, 1 reply; 6+ messages in thread
From: Ivo van Doorn @ 2010-10-09 11:34 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Helmut Schaa <helmut.schaa@googlemail.com>

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2800lib.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 7f040b0..b9433fe 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -499,7 +499,7 @@ void rt2800_write_tx_data(struct queue_entry *entry,
 }
 EXPORT_SYMBOL_GPL(rt2800_write_tx_data);
 
-static int rt2800_agc_to_rssi(struct rt2x00_dev *rt2x00dev, int rxwi_w2)
+static int rt2800_agc_to_rssi(struct rt2x00_dev *rt2x00dev, u32 rxwi_w2)
 {
 	int rssi0 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI0);
 	int rssi1 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI1);
-- 
1.7.2.3


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

* [PATCH 04/06] rt2x00: Use unlikely for error case in rt2x00queue_write_tx_frame
  2010-10-09 11:34   ` [PATCH 03/06] rt2x00: Use proper type for rxwi_w2 in rt2800_agc_to_rssi Ivo van Doorn
@ 2010-10-09 11:34     ` Ivo van Doorn
  2010-10-09 11:35       ` [PATCH 05/06] rt2x00: Remove superfluous initialization of qidx Ivo van Doorn
  0 siblings, 1 reply; 6+ messages in thread
From: Ivo van Doorn @ 2010-10-09 11:34 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Helmut Schaa <helmut.schaa@googlemail.com>

This is an error condition that is not supposed to happen. Hence, it is
safe to add unlikely to this check.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00queue.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index 4436ff7..83630f1 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -489,7 +489,8 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
 	if (unlikely(rt2x00queue_full(queue)))
 		return -ENOBUFS;
 
-	if (test_and_set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags)) {
+	if (unlikely(test_and_set_bit(ENTRY_OWNER_DEVICE_DATA,
+				      &entry->flags))) {
 		ERROR(queue->rt2x00dev,
 		      "Arrived at non-free entry in the non-full queue %d.\n"
 		      "Please file bug report to %s.\n",
-- 
1.7.2.3


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

* [PATCH 05/06] rt2x00: Remove superfluous initialization of qidx
  2010-10-09 11:34     ` [PATCH 04/06] rt2x00: Use unlikely for error case in rt2x00queue_write_tx_frame Ivo van Doorn
@ 2010-10-09 11:35       ` Ivo van Doorn
  2010-10-09 11:35         ` [PATCH 06/06] rt2x00: Fix tx status handling in rt2800pci Ivo van Doorn
  0 siblings, 1 reply; 6+ messages in thread
From: Ivo van Doorn @ 2010-10-09 11:35 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Helmut Schaa <helmut.schaa@googlemail.com>

There is no need to initialize qidx to zero as it will ever be
overwritten by the correct value.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2800pci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index 85a134c..cc4e17c 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -573,7 +573,7 @@ static void rt2800pci_kick_tx_queue(struct data_queue *queue)
 {
 	struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
 	struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX);
-	unsigned int qidx = 0;
+	unsigned int qidx;
 
 	if (queue->qid == QID_MGMT)
 		qidx = 5;
-- 
1.7.2.3


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

* [PATCH 06/06] rt2x00: Fix tx status handling in rt2800pci
  2010-10-09 11:35       ` [PATCH 05/06] rt2x00: Remove superfluous initialization of qidx Ivo van Doorn
@ 2010-10-09 11:35         ` Ivo van Doorn
  0 siblings, 0 replies; 6+ messages in thread
From: Ivo van Doorn @ 2010-10-09 11:35 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Helmut Schaa <helmut.schaa@googlemail.com>

The patches "rt2x00: Improve TX status entry validation" and "rt2x00: rework tx
status handling in rt2800pci" together were causing problems with tx status
processing in rt2800pci:

phy1 -> rt2800pci_txdone: Warning - Got TX status for an empty queue 3, dropping
phy1 -> rt2800pci_txdone: Warning - Got TX status for an unavailable queue 7, dropping

Fix this by using the correct field definition for getting the QID out of the
tx status report.

Reported-by: Luis Correia <luis.f.correia@gmail.com>
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Tested-by: Luis Correia <luis.f.correia@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2800pci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index cc4e17c..b267395 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -676,7 +676,7 @@ static void rt2800pci_txdone(struct rt2x00_dev *rt2x00dev)
 			break;
 		}
 
-		qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_TYPE) - 1;
+		qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_QUEUE);
 		if (qid >= QID_RX) {
 			/*
 			 * Unknown queue, this shouldn't happen. Just drop
-- 
1.7.2.3


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

end of thread, other threads:[~2010-10-09 11:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-09 11:33 [PATCH 01/06] rt2x00: Shortcut link state updates when not operating as STA Ivo van Doorn
2010-10-09 11:33 ` [PATCH 02/06] rt2x00: Optimize unmapping of skbs Ivo van Doorn
2010-10-09 11:34   ` [PATCH 03/06] rt2x00: Use proper type for rxwi_w2 in rt2800_agc_to_rssi Ivo van Doorn
2010-10-09 11:34     ` [PATCH 04/06] rt2x00: Use unlikely for error case in rt2x00queue_write_tx_frame Ivo van Doorn
2010-10-09 11:35       ` [PATCH 05/06] rt2x00: Remove superfluous initialization of qidx Ivo van Doorn
2010-10-09 11:35         ` [PATCH 06/06] rt2x00: Fix tx status handling in rt2800pci Ivo van Doorn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).