From: Ivo van Doorn <ivdoorn@gmail.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: netdev@vger.kernel.org
Subject: [PATCH 10/26] rt2x00: WMM ring priority
Date: Sun, 3 Dec 2006 19:19:02 +0100 [thread overview]
Message-ID: <200612031919.03080.IvDoorn@gmail.com> (raw)
rt61pci and rt73usb have the WMM ring priorities
backwards. RING_AC_VO is the most important ring
while RING_AC_BK the least important ring.
Lets reorder the ring handling.
(And fix some small typos in the comments regarding
the rings)
Signed-off-by Ivo van Doorn <IvDoorn@gmail.com>
---
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt2400pci.h wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt2400pci.h
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt2400pci.h 2006-12-03 12:49:55.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt2400pci.h 2006-12-03 13:04:38.000000000 +0100
@@ -870,7 +870,7 @@
#define RXD_W7_RESERVED FIELD32(0xffffffff)
/*
- * TX ring index number for rt2x00_pci structure.
+ * TX ring index number for rt2x00_dev structure.
*/
enum ring_index {
RING_PRIO = 0,
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt2500pci.h wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt2500pci.h
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt2500pci.h 2006-12-03 12:50:28.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt2500pci.h 2006-12-03 13:04:44.000000000 +0100
@@ -1145,7 +1145,7 @@
#define RXD_W10_DROP FIELD32(0x00000001)
/*
- * TX ring index number for rt2x00_pci structure.
+ * TX ring index number for rt2x00_dev structure.
*/
enum ring_index {
RING_PRIO = 0,
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt2500usb.h wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt2500usb.h
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt2500usb.h 2006-12-03 13:00:52.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt2500usb.h 2006-12-03 13:04:50.000000000 +0100
@@ -652,7 +652,7 @@
#define RXD_W3_EIV FIELD32(0xffffffff)
/*
- * TX ring index number for rt2x00_usb structure.
+ * TX ring index number for rt2x00_dev structure.
*/
enum ring_index {
RING_PRIO = 0,
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt61pci.c wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt61pci.c
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt61pci.c 2006-12-03 12:48:43.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt61pci.c 2006-12-03 13:08:21.000000000 +0100
@@ -1320,16 +1320,16 @@
if (rt61pci_alloc_dma_ring(rt2x00dev, RING_RX,
rt61pci_rxdone, RX_ENTRIES, DATA_FRAME_SIZE,
RXD_DESC_SIZE) ||
- rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_BK,
+ rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_VO,
rt61pci_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
- rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_BE,
+ rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_VI,
rt61pci_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
- rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_VI,
+ rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_BE,
rt61pci_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
- rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_VO,
+ rt61pci_alloc_dma_ring(rt2x00dev, RING_AC_BK,
rt61pci_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
rt61pci_alloc_dma_ring(rt2x00dev, RING_PRIO,
@@ -1347,10 +1347,10 @@
static void rt61pci_free_rings(struct rt2x00_dev *rt2x00dev)
{
rt61pci_free_ring(rt2x00dev, RING_RX);
- rt61pci_free_ring(rt2x00dev, RING_AC_BK);
- rt61pci_free_ring(rt2x00dev, RING_AC_BE);
- rt61pci_free_ring(rt2x00dev, RING_AC_VI);
rt61pci_free_ring(rt2x00dev, RING_AC_VO);
+ rt61pci_free_ring(rt2x00dev, RING_AC_VI);
+ rt61pci_free_ring(rt2x00dev, RING_AC_BE);
+ rt61pci_free_ring(rt2x00dev, RING_AC_BK);
rt61pci_free_ring(rt2x00dev, RING_PRIO);
rt61pci_free_ring(rt2x00dev, RING_BEACON);
}
@@ -1429,10 +1429,10 @@
* Initialize rings.
*/
rt61pci_init_rxring(rt2x00dev, RING_RX);
- rt61pci_init_txring(rt2x00dev, RING_AC_BK);
- rt61pci_init_txring(rt2x00dev, RING_AC_BE);
- rt61pci_init_txring(rt2x00dev, RING_AC_VI);
rt61pci_init_txring(rt2x00dev, RING_AC_VO);
+ rt61pci_init_txring(rt2x00dev, RING_AC_VI);
+ rt61pci_init_txring(rt2x00dev, RING_AC_BE);
+ rt61pci_init_txring(rt2x00dev, RING_AC_BK);
rt61pci_init_txring(rt2x00dev, RING_PRIO);
rt61pci_init_txring(rt2x00dev, RING_BEACON);
@@ -1441,40 +1441,40 @@
*/
reg = 0;
rt2x00_set_field32(®, TX_RING_CSR0_AC0_RING_SIZE,
- rt2x00dev->ring[RING_AC_BK].stats.limit);
+ rt2x00dev->ring[RING_AC_VO].stats.limit);
rt2x00_set_field32(®, TX_RING_CSR0_AC1_RING_SIZE,
- rt2x00dev->ring[RING_AC_BE].stats.limit);
- rt2x00_set_field32(®, TX_RING_CSR0_AC2_RING_SIZE,
rt2x00dev->ring[RING_AC_VI].stats.limit);
+ rt2x00_set_field32(®, TX_RING_CSR0_AC2_RING_SIZE,
+ rt2x00dev->ring[RING_AC_BE].stats.limit);
rt2x00_set_field32(®, TX_RING_CSR0_AC3_RING_SIZE,
- rt2x00dev->ring[RING_AC_VO].stats.limit);
+ rt2x00dev->ring[RING_AC_BK].stats.limit);
rt2x00_register_write(rt2x00dev, TX_RING_CSR0, reg);
reg = 0;
rt2x00_set_field32(®, TX_RING_CSR1_MGMT_RING_SIZE,
rt2x00dev->ring[RING_PRIO].stats.limit);
rt2x00_set_field32(®, TX_RING_CSR1_TXD_SIZE,
- rt2x00dev->ring[RING_AC_BK].desc_size / 4);
+ rt2x00dev->ring[RING_AC_VO].desc_size / 4);
rt2x00_register_write(rt2x00dev, TX_RING_CSR1, reg);
reg = 0;
rt2x00_set_field32(®, AC0_BASE_CSR_RING_REGISTER,
- rt2x00dev->ring[RING_AC_BK].data_dma);
+ rt2x00dev->ring[RING_AC_VO].data_dma);
rt2x00_register_write(rt2x00dev, AC0_BASE_CSR, reg);
reg = 0;
rt2x00_set_field32(®, AC1_BASE_CSR_RING_REGISTER,
- rt2x00dev->ring[RING_AC_BE].data_dma);
+ rt2x00dev->ring[RING_AC_VI].data_dma);
rt2x00_register_write(rt2x00dev, AC1_BASE_CSR, reg);
reg = 0;
rt2x00_set_field32(®, AC2_BASE_CSR_RING_REGISTER,
- rt2x00dev->ring[RING_AC_VI].data_dma);
+ rt2x00dev->ring[RING_AC_BE].data_dma);
rt2x00_register_write(rt2x00dev, AC2_BASE_CSR, reg);
reg = 0;
rt2x00_set_field32(®, AC3_BASE_CSR_RING_REGISTER,
- rt2x00dev->ring[RING_AC_VO].data_dma);
+ rt2x00dev->ring[RING_AC_BK].data_dma);
rt2x00_register_write(rt2x00dev, AC3_BASE_CSR, reg);
reg = 0;
@@ -2317,10 +2317,10 @@
* to start scanning.
*/
if (rt2x00dev->scan &&
- rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BK]) &&
- rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BE]) &&
- rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_VI]) &&
rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_VO]) &&
+ rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_VI]) &&
+ rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BE]) &&
+ rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BK]) &&
rt2x00_ring_empty(&rt2x00dev->ring[RING_PRIO]))
rt2x00_signal_scan(rt2x00dev->scan, SCANNING_READY);
}
@@ -2374,7 +2374,7 @@
*/
if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TXDONE))
queue_work(rt2x00dev->workqueue,
- &rt2x00dev->ring[RING_AC_BK].irq_work);
+ &rt2x00dev->ring[RING_AC_VO].irq_work);
return IRQ_HANDLED;
}
@@ -2827,17 +2827,17 @@
struct rt2x00_dev *rt2x00dev = hw->priv;
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA0],
- &rt2x00dev->ring[RING_AC_BK].stats,
- sizeof(rt2x00dev->ring[RING_AC_BK].stats));
+ &rt2x00dev->ring[RING_AC_VO].stats,
+ sizeof(rt2x00dev->ring[RING_AC_VO].stats));
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA1],
- &rt2x00dev->ring[RING_AC_BE].stats,
- sizeof(rt2x00dev->ring[RING_AC_BE].stats));
- memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA2],
&rt2x00dev->ring[RING_AC_VI].stats,
sizeof(rt2x00dev->ring[RING_AC_VI].stats));
+ memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA2],
+ &rt2x00dev->ring[RING_AC_BE].stats,
+ sizeof(rt2x00dev->ring[RING_AC_BE].stats));
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA3],
- &rt2x00dev->ring[RING_AC_VO].stats,
- sizeof(rt2x00dev->ring[RING_AC_VO].stats));
+ &rt2x00dev->ring[RING_AC_BK].stats,
+ sizeof(rt2x00dev->ring[RING_AC_BK].stats));
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA4],
&rt2x00dev->ring[RING_PRIO].stats,
sizeof(rt2x00dev->ring[RING_PRIO].stats));
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt61pci.h wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt61pci.h
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt61pci.h 2006-12-03 12:51:17.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt61pci.h 2006-12-03 13:04:29.000000000 +0100
@@ -1309,13 +1309,13 @@
#define RXD_W15_RESERVED FIELD32(0xffffffff)
/*
- * TX ring index number for rt2x00_pci structure.
+ * TX ring index number for rt2x00_dev structure.
*/
enum ring_index {
- RING_AC_BK = 0,
- RING_AC_BE = 1,
- RING_AC_VI = 2,
- RING_AC_VO = 3,
+ RING_AC_VO = 0,
+ RING_AC_VI = 1,
+ RING_AC_BE = 2,
+ RING_AC_BK = 3,
RING_PRIO = 4,
RING_BEACON = 5,
RING_RX = 6,
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt73usb.c wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt73usb.c
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt73usb.c 2006-12-03 12:48:57.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt73usb.c 2006-12-03 13:10:11.000000000 +0100
@@ -1186,16 +1186,16 @@
if (rt73usb_alloc_dma_ring(rt2x00dev, RING_RX,
rt73usb_rxdone, RX_ENTRIES, DATA_FRAME_SIZE,
RXD_DESC_SIZE) ||
- rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_BK,
+ rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_VO,
rt73usb_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
- rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_BE,
+ rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_VI,
rt73usb_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
- rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_VI,
+ rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_BE,
rt73usb_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
- rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_VO,
+ rt73usb_alloc_dma_ring(rt2x00dev, RING_AC_BK,
rt73usb_txdone, TX_ENTRIES, DATA_FRAME_SIZE,
TXD_DESC_SIZE) ||
rt73usb_alloc_dma_ring(rt2x00dev, RING_PRIO,
@@ -1213,10 +1213,10 @@
static void rt73usb_free_rings(struct rt2x00_dev *rt2x00dev)
{
rt73usb_free_ring(rt2x00dev, RING_RX);
- rt73usb_free_ring(rt2x00dev, RING_AC_BK);
- rt73usb_free_ring(rt2x00dev, RING_AC_BE);
- rt73usb_free_ring(rt2x00dev, RING_AC_VI);
rt73usb_free_ring(rt2x00dev, RING_AC_VO);
+ rt73usb_free_ring(rt2x00dev, RING_AC_VI);
+ rt73usb_free_ring(rt2x00dev, RING_AC_BE);
+ rt73usb_free_ring(rt2x00dev, RING_AC_BK);
rt73usb_free_ring(rt2x00dev, RING_PRIO);
rt73usb_free_ring(rt2x00dev, RING_BEACON);
}
@@ -1273,10 +1273,10 @@
static int rt73usb_init_rings(struct rt2x00_dev *rt2x00dev)
{
rt73usb_init_rxring(rt2x00dev, RING_RX);
- rt73usb_init_txring(rt2x00dev, RING_AC_BK);
- rt73usb_init_txring(rt2x00dev, RING_AC_BE);
- rt73usb_init_txring(rt2x00dev, RING_AC_VI);
rt73usb_init_txring(rt2x00dev, RING_AC_VO);
+ rt73usb_init_txring(rt2x00dev, RING_AC_VI);
+ rt73usb_init_txring(rt2x00dev, RING_AC_BE);
+ rt73usb_init_txring(rt2x00dev, RING_AC_BK);
rt73usb_init_txring(rt2x00dev, RING_PRIO);
rt73usb_init_txring(rt2x00dev, RING_BEACON);
@@ -1620,19 +1620,19 @@
for (i = 0; i < ring->stats.limit; i++)
usb_kill_urb(rt2x00_urb(&ring->entry[i]));
- ring = &rt2x00dev->ring[RING_AC_BK];
+ ring = &rt2x00dev->ring[RING_AC_VO];
for (i = 0; i < ring->stats.limit; i++)
usb_kill_urb(rt2x00_urb(&ring->entry[i]));
- ring = &rt2x00dev->ring[RING_AC_BE];
+ ring = &rt2x00dev->ring[RING_AC_VI];
for (i = 0; i < ring->stats.limit; i++)
usb_kill_urb(rt2x00_urb(&ring->entry[i]));
- ring = &rt2x00dev->ring[RING_AC_VI];
+ ring = &rt2x00dev->ring[RING_AC_BE];
for (i = 0; i < ring->stats.limit; i++)
usb_kill_urb(rt2x00_urb(&ring->entry[i]));
- ring = &rt2x00dev->ring[RING_AC_VO];
+ ring = &rt2x00dev->ring[RING_AC_BK];
for (i = 0; i < ring->stats.limit; i++)
usb_kill_urb(rt2x00_urb(&ring->entry[i]));
@@ -2035,10 +2035,10 @@
* to start scanning.
*/
if (rt2x00dev->scan &&
- rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BK]) &&
- rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BE]) &&
- rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_VI]) &&
rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_VO]) &&
+ rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_VI]) &&
+ rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BE]) &&
+ rt2x00_ring_empty(&rt2x00dev->ring[RING_AC_BK]) &&
rt2x00_ring_empty(&rt2x00dev->ring[RING_PRIO]))
rt2x00_signal_scan(rt2x00dev->scan, SCANNING_READY);
@@ -2524,17 +2524,17 @@
struct rt2x00_dev *rt2x00dev = hw->priv;
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA0],
- &rt2x00dev->ring[RING_AC_BK].stats,
- sizeof(rt2x00dev->ring[RING_AC_BK].stats));
+ &rt2x00dev->ring[RING_AC_VO].stats,
+ sizeof(rt2x00dev->ring[RING_AC_VO].stats));
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA1],
- &rt2x00dev->ring[RING_AC_BE].stats,
- sizeof(rt2x00dev->ring[RING_AC_BE].stats));
- memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA2],
&rt2x00dev->ring[RING_AC_VI].stats,
sizeof(rt2x00dev->ring[RING_AC_VI].stats));
+ memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA2],
+ &rt2x00dev->ring[RING_AC_BE].stats,
+ sizeof(rt2x00dev->ring[RING_AC_BE].stats));
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA3],
- &rt2x00dev->ring[RING_AC_VO].stats,
- sizeof(rt2x00dev->ring[RING_AC_VO].stats));
+ &rt2x00dev->ring[RING_AC_BK].stats,
+ sizeof(rt2x00dev->ring[RING_AC_BK].stats));
memcpy(&stats->data[IEEE80211_TX_QUEUE_DATA4],
&rt2x00dev->ring[RING_PRIO].stats,
sizeof(rt2x00dev->ring[RING_PRIO].stats));
diff -rU3 wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt73usb.h wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt73usb.h
--- wireless-dev-usbeeprom/drivers/net/wireless/d80211/rt2x00/rt73usb.h 2006-12-03 13:01:47.000000000 +0100
+++ wireless-dev-ringindex/drivers/net/wireless/d80211/rt2x00/rt73usb.h 2006-12-03 13:04:31.000000000 +0100
@@ -891,13 +891,13 @@
#define RXD_W5_RESERVED FIELD32(0xffffffff)
/*
- * TX ring index number for rt2x00_usb structure.
+ * TX ring index number for rt2x00_dev structure.
*/
enum ring_index {
- RING_AC_BK = 0,
- RING_AC_BE = 1,
- RING_AC_VI = 2,
- RING_AC_VO = 3,
+ RING_AC_VO = 0,
+ RING_AC_VI = 1,
+ RING_AC_BE = 2,
+ RING_AC_BK = 3,
RING_PRIO = 4,
RING_BEACON = 5,
RING_RX = 6,
reply other threads:[~2006-12-03 18:19 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200612031919.03080.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.