ead2bb64a38c471ad0a769f61921f330f062dd50 |
|
08-Sep-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Add WCID to HT TX descriptor When sending an unencrypted frame to a STA the driver might want to pass a suitable WCID since we don't have a key index to allow tx status reports to get properly assigned to the correct STA. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
5dada06cf156b1b70dcb76de5a63349aa33b135c |
|
07-Sep-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Update some TX descriptor 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>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
77a861c405da75d81e9e6e32c50eb7f9777777e8 |
|
06-Jul-2011 |
Gertjan van Wingerde <gwingerde@gmail.com> |
rt2x00: Serialize TX operations on a queue. The rt2x00 driver gets frequent occurrences of the following error message when operating under load: phy0 -> rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 2. This is caused by simultaneous attempts from mac80211 to send a frame via rt2x00, which are not properly serialized inside rt2x00queue_write_tx_frame, causing the second frame to fail sending with the above mentioned error message. Fix this by introducing a per-queue spinlock to serialize the TX operations on that queue. Reported-by: Andreas Hartmann <andihartmann@01019freenet.de> Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
1d616b14cf3266684af46db614b7de03c7a8a538 |
|
24-Jun-2011 |
Joe Perches <joe@perches.com> |
rt2x00: Fix unspeficied typo Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
cfef6047c4027a8448ec8dafeaf2bb362cc882e4 |
|
25-Apr-2011 |
John W. Linville <linville@tuxdriver.com> |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem Conflicts: drivers/net/wireless/iwlwifi/iwl-core.c drivers/net/wireless/rt2x00/rt2x00queue.c drivers/net/wireless/rt2x00/rt2x00queue.h
|
75256f0348d38f414b7ac50ac78d4a4532bb6762 |
|
18-Apr-2011 |
Johannes Stezenbach <js@sig21.net> |
rt2x00: fix queue timeout checks Add a timestamp to each queue entry which is updated whenever the status of the entry changes, and remove the per-queue timestamps. The previous check was incorrect and caused both false positives and false negatives. With the corrected check it comes apparent that the TX status usually times out on rt2800usb unless there is sufficient traffic (i.e. the next TX will complete the previous TX status). Signed-off-by: Johannes Stezenbach <js@sig21.net> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
10e11568ca8b8a15f7478f6a4ceebabcbdba1018 |
|
18-Apr-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Make rt2x00_queue_entry_for_each more flexible Allow passing a void pointer to rt2x00_queue_entry_for_each which in turn in provided to the callback function. Furthermore, allow the callback function to stop processing by returning true. And also notify the caller of rt2x00_queue_entry_for_each if the loop was canceled by the callback. No functional changes, just preparation for an upcoming patch. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
252f4bf400df1712408fe83ba199a66a1b57ab1d |
|
12-Apr-2011 |
John W. Linville <linville@tuxdriver.com> |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem Conflicts: drivers/net/wireless/ath/ar9170/main.c drivers/net/wireless/ath/ar9170/phy.c drivers/net/wireless/zd1211rw/zd_rf_rf2959.c
|
f16d2db704b873d34cec54f992637f3579e10e08 |
|
28-Mar-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Fix tx aggregation problems with some clients Some clients seem to rely upon the reception of BlockAckReqs to flush their rx reorder buffer. In order to fix aggregation for these clients rt2x00 should send a BlockAckReq if the transmission of an AMPDU subframe fails. Introduce a new flag TXDONE_AMPDU to indicate that this is an AMPDU subframe and pass IEEE80211_TX_STAT_AMPDU_NO_BACK to mac80211 if an AMPDU subframe failed during transmission. This fixes aggregation problems with Intel 5100 Windows STAs (and maybe others as well). Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
25985edcedea6396277003854657b5f3cb31a628 |
|
31-Mar-2011 |
Lucas De Marchi <lucas.demarchi@profusion.mobi> |
Fix common misspellings Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
4df10c8c1353e5db781a9a781cc585698b24f30d |
|
03-Mar-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Use an enum instead of u16 for the rate_mode TX descriptor field This makes the code less error-prone. Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
2517794b702cf62bb049e57c0825fc4573f8a6a3 |
|
03-Mar-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
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>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
fe107a5234de1f1576df466b2ea8d01868f6ee77 |
|
03-Mar-2011 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Optimize TX descriptor memory layout Some fields only need to be u8 and for ifs and txop we can use the already available enums. Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
26a1d07f4176099a7b6f45009dad054e6ad5b7e4 |
|
03-Mar-2011 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Optimize TX descriptor handling HT and no-HT rt2x00 devices use a partly different TX descriptor. Optimize the tx desciptor memory layout by putting the PLCP and HT substructs into a union and introduce a new driver flag to decide which TX desciptor format is used by the device. This saves us the expensive PLCP calculation fOr HT devices and the HT descriptor setup on no-HT devices. Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
f615e9a38a8e6239d35891a05f2ac1159088780a |
|
13-Dec-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Fix WMM Queue naming The Queue names were incorrectly copied from the legacy drivers, as a result the queue names were inversed to what was expected. This renames the queues using this mapping: QID_AC_BK -> QID_AC_VO (priority 0) QID_AC_BE -> QID_AC_VI (priority 1) QID_AC_VI -> QID_AC_BE (priority 2) QID_AC_VO -> QID_AC_BK (priority 3) Note that this was a naming problem only, which didn't affect the assignment of frames to their respective queues. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
dba5dc1ae9764902f46d5225c9ff40e4f7b614c7 |
|
13-Dec-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Introduce extra queue entry sanity flag Add a queue entry flag ENTRY_DATA_STATUS_PENDING, which can be used to indicate a queue entry has returned from the hardware and is waiting for status processing. Using this flag we can add some extra sanity checks to prevent queue corruption. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
0b7fde54f94979edc67bbf86b5adba702ebfefe8 |
|
13-Dec-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Protect queue control with mutex Add wrapper functions in rt2x00queue.c to start & stop queues. This control must be protected using a mutex. Queues can also be paused which will halt the flow of packets between the driver and mac80211. This doesn't require a mutex protection. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
813f0339dd739c48607f12dac79ec26c61874226 |
|
06-Nov-2010 |
Ivo van Doorn <IvDoorn@gmail.com> |
rt2x00: Rename queue->lock to queue->index_lock The queue->lock is only used to protect the index numbers. Rename the lock accordingly. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
7225ce1ea93d24c0914eea0410dcfc426281f996 |
|
04-Nov-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Rename rt2x00queue_timeout Rename rt2x00queue_timeout to rt2x00queue_status_timeout to better describe what is actually timing out (note that we already have a rt2x00queue_dma_timeout). Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
2b23cdaa3b0e9567597563e5a7a5103ecda447f0 |
|
04-Nov-2010 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Reduce tx descriptor size The tx descriptor values qid, cw_min, cw_max and aifs are directly accessible through the tx entry struct. So there's no need to copy them into the tx descriptor and passing them to the indiviual drivers. Instead we can just get the correct value from the tx entry. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
efd2f271e44c7ea011cdb0363d38f40338ab80d2 |
|
04-Nov-2010 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Sync Tx and RX ring sizes with legacy drivers All rt2x00 devices used the same Tx and Rx ring size (24 entries) till now. Newer devices (like rt2800) can however make use of a larger TX and RX ring due to 11n capabilities (AMPDUs of size 64 for example). Hence, bring rt2x00 in sync with the legacy drivers and use the same TX and RX ring sizes. Also remove the global defines RX_ENTRIES, TX_ENTRIES, BEACON_ENTRIES and ATIM_ENTRIES and use per driver values. That is 24 entries for rt2400pci, 32 entries for rt2500pci, rt2500usb, rt61pci and rt73usb and 128 (RX) and 64 (TX) for rt2800pci and rt2800usb. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
652a9dd2a0c07251e328519cc23f1316ab13ed51 |
|
30-Aug-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Split watchdog check into a DMA and STATUS timeout The watchdog for rt2800usb triggers frequently causing all URB's to be canceled often enough to interrupt the normal TX flow. More research indicated that not the URB upload to the USB host were hanging, but instead the TX status reports. To correctly detect what is going on, we introduce Q_INDEX_DMA_DONE which is an index counter between Q_INDEX_DONE and Q_INDEX and indicates if the frame has been transfered to the device. This also requires the rt2x00queue timeout functions to be updated to differentiate between a DMA timeout (time between Q_INDEX and Q_INDEX_DMA_DONE timeout) and a STATUS timeout (time between Q_INDEX_DMA_DONE and Q_INDEX_DONE timeout) All Q_INDEX_DMA_DONE code was taken from the RFC from Helmut Schaa <helmut.schaa@googlemail.com> for the implementation for watchdog for rt2800pci. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
a908a743822d2eed2d8394bb607bb9db5934dcfc |
|
30-Aug-2010 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: Rename txentry_desc.queue -> txentry_desc.qid Variables containing queue ids are called qid everywhere else, hence rename the queue field in txentry_desc to qid as well. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
54e34fbb6fae67b3dba4c2600d3c65aca81635ae |
|
23-Aug-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Remove Q_INDEX_CRYPTO and ENTRY_OWNER_DEVICE_CRYPTO Q_INDEX_CRYPTO and ENTRY_OWNER_DEVICE_CRYPTO where initially added with the plan to implement hardware encryption for rt2500pci. However there are no plans to do so anymore as the crypto mechanism in rt2500pci is very different then any other Ralink device. So we can now safely remove the definitions, and don't think about this feature anymore. :) Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
5eb7efe8a4807d98a277280e1317e5094eedfb6b |
|
23-Aug-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Move direct access to queue->entries to rt2x00queue.c All access to queue->entries through the Q_INDEX/Q_INDEX_DONE variables must be done using spinlock protection. It is best to manage this completely from rt2x00queue.c. For safely looping through all entries in the queue, the function rt2x00queue_for_each_entry is added which will walk from from a index range in a safe manner. This also fixes rt2x00usb which walked the entries list from 0 to length to kill each entry (killing entries must be done from Q_INDEX_DONE to Q_INDEX to enforce TX status reporting to occur in the correct order. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
84804cdca043e2315bf5eae60807ac105929073f |
|
06-Aug-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Set MIMO PS flag in tx descriptor for STAs in dynamic SMPS mode Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
7e613e1666d59b5364f7918b3427bf328ac5f9ca |
|
06-Aug-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Move USB tx/rx done handling to workqueue Move all TX and RX completion handling into a work structure, which is handeled on the mac80211 workqueue. This simplifies the code in rt2x00lib since it no longer needs to check if the device is USB or PCI to decide which mac80211 function should be used. In the watchdog some changes are needed since it can no longer rely on the TX completion function to be run while looping through the entries. (Both functions now work on the same workqueue, so this would deadlock). So the watchdog now waits for the URB to return, and handle the TX status report directly. As a side-effect, the debugfs entry for the RX queue now correctly displays the positions of the INDEX and INDEX_DONE counters. This also implies that it is not possible to perform checks like queue_empty() and queue_full() on the RX queue. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
c965c74bbc650e5466d2f3e32bd28112ebcdd00c |
|
11-Jul-2010 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Implement watchdog monitoring Implement watchdog monitoring for USB devices (PCI support can be added later). This will determine if URBs being uploaded to the hardware are actually returning. Both rt2500usb and rt2800usb have shown that URBs being uploaded can remain hanging without being released by the hardware. By using this watchdog, a queue can be reset when this occurs. For rt2800usb it has been tested that the connection is preserved even though this interruption. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
46678b197a4a61f9c3701fb346b93acbf2ea9c61 |
|
14-Jun-2010 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: clarify meaning of txdone flags Update the documentation of the available txdone flags to better express how they should be used. 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>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
fd76f148ebc67d662f71f00128c8ddb0538168c0 |
|
11-May-2010 |
Gertjan van Wingerde <gwingerde@gmail.com> |
rt2x00: In debugfs frame dumping allow the TX descriptor to be part of the skb. Preparation for futher cleanups in the area of properly maintaining the skb data without fiddling with the skb->data pointer. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
1affa091975e47d50ce6a88e9b1abfe717c2fe27 |
|
07-May-2010 |
Helmut Schaa <helmut.schaa@googlemail.com> |
rt2x00: rt2800: use correct txop value in tx descriptor rt2800 devices use a different enumeration to specify what IFS values should be used on frame transmission compared to the other rt2x00 devices. Hence, create a new enum called txop that contains the valid values. Furthermore use the appropriate txop values as found in the ralink drivers: - TXOP_BACKOFF for management frames - TXOP_SIFS for subsequent fragments in a burst - TXOP_HTTXOP for all data frames Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
df624ca5413d84b3082246de384823fbe8fed6e4 |
|
03-May-2010 |
Gertjan van Wingerde <gwingerde@gmail.com> |
rt2x00: Register frame length in TX entry descriptor instead of L2PAD. And use it consistently in the chipset drivers. Preparation for further clean ups. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
91639c76bfd9d27ac54a3c521a2559d02f409ebe |
|
28-Apr-2010 |
John W. Linville <linville@tuxdriver.com> |
rt2x00: remove now unused noise field from struct rxdone_entry_desc Signed-off-by: John W. Linville <linville@tuxdriver.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
354e39dbb19f29ef28a9c2db9e55ff2a7435b35a |
|
04-Dec-2009 |
Gertjan van Wingerde <gwingerde@gmail.com> |
rt2x00: Remove SKBDESC_L2_PADDED flag. With the improved L2 padding code, this flag is no longer necessary, as the rt2x00queue_remove_l2pad is capable of detecting by itself if L2 padding is applied. For received frames the RX descriptor flag is still being checked. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Ivo van Doorn <ivdoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
7351c6bd482712e5e3ec9dffc547de0e0863efb0 |
|
19-Nov-2009 |
Johannes Berg <johannes@sipsolutions.net> |
mac80211: request TX status where needed Right now all frames mac80211 hands to the driver have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to request TX status. This isn't really necessary, only the injected frames need TX status (the latter for hostapd) so move setting this flag. The rate control algorithms also need TX status, but they don't require it. Also, rt2x00 uses that bit for its own purposes and seems to require it being set for all frames, but that can be fixed in rt2x00. This doesn't really change anything for any drivers but in the future drivers using hw-rate control may opt to not report TX status for frames that don't have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> [rt2x00 bits] Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
9c9a0d145fee73b5e821bb460732ac2a66c680b3 |
|
08-Nov-2009 |
Gertjan van Wingerde <gwingerde@gmail.com> |
rt2x00: Update copyright statements. As mentioned on the linux-wireless mailing list, the current copyright statements in the rt2x00 are meaningless, as the rt2x00 project is not even a formal legal entity. Therefore it is better to replace the existing copyright statements with copyright statements for the people that actually wrote the code. Note: Updated to the best of my knowledge with respect to who contributed considerable amounts of code. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> CC: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
92ed48e5230e8f5906dda0cc31715b3b7e3fe303 |
|
17-Aug-2009 |
Benoit PAPILLAULT <benoit.papillault@free.fr> |
rt2x00: Add support for retry rates rt2800pci can handle different retry rates, it will always step 1 rate down after a failed transmission so creating the retry rate list for mac80211 is quite simple. Signed-off-by: Benoit PAPILLAULT <benoit.papillault@free.fr> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
4951348109c334f2b839816bd161522d089cb782 |
|
17-Jul-2009 |
Luis Correia <luis.f.correia@gmail.com> |
rt2x00: Comment spellchecking Fix a bunch of spelling errors in the rt2x00 drivers Signed-off-by: Luis Correia <luis.f.correia@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
35f00cfcc06bb85e0659f9847400518008d78145 |
|
26-Apr-2009 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Implement support for 802.11n Extend rt2x00lib capabilities to support 802.11n, it still lacks aggregation support, but that can be added in the future. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
9f1661718c7fcf82e25c6aed20b729ee372d9d65 |
|
26-Apr-2009 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Add support for L2 padding during TX/RX Some hardware require L2 padding between header and payload because both must be aligned to a 4-byte boundary. This hardware also is easier during the RX path since we no longer need to move the entire payload but rather only the header to remove the padding (mac80211 only wants the payload to be 4-byte aligned). Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
9eb4e21e289beba9cfe34f24920eee83c144e62f |
|
26-Apr-2009 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Move iv_len into tx descriptor data By placing the iv_len into the tx descriptor data and by passing this data to the crypto IV handlers we can save multiple calls to ieee80211_get_hdrlen_from_skb() and some if-statements when copying/removing the IV data from the outgoing frame. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
4e54c711b42c3cc8da8a3fdcde3407b86d67ebcc |
|
17-Jan-2009 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Update copyright year to 2009 Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
b30dd5c043eda4b3d23659ef550c16ce4f6ecb47 |
|
20-Dec-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Introduce RXDONE_SIGNAL_MASK mask Improve error message reporting when a frame was received with unknown rate. Instead of using the boolean check if the frame is supposed to be a PLCP value or not, we should add a new mask (RXDONE_SIGNAL_MASK) which returns the type identification for a signal value (i.e. PLCP). At the moment we only have 2 different types, but more will arrive when support for 11n is added. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
2bdb35c7ffb61f4b9d963dd447a2c54add5f02c5 |
|
20-Dec-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Allow drivers to pass the noise value during rxdone Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
076f9582a6b82e54339ee815130315744b730787 |
|
20-Dec-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Remove ENTRY_TXD_OFDM_RATE The flag ENTRY_TXD_OFDM_RATE isn't flexible enough to indicate which rate modulation should be used for a frame. This will become a problem when 11n support is added. Remove the flag and replace it with an enum value which can better indicate the exact rate modulation. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
74415edb042ef9f3b1291f978763687f35aadbb3 |
|
02-Dec-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Add RXDONE_CRYPTO_IV/ICV flags Drivers should notify rt2x00lib when they provide the IV/ICV data. This adds some flexibility to drivers which can't provide all information. * rt2500usb provides ICV inside the frame * rt2800pci doesn't provide IV/ICV * rt2800usb doesn't provide IV/ICV Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
1ce9cdac482f0dfbbd22ba4b3e5c016a05543a42 |
|
02-Dec-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Optimize IV/EIV handling IV and EIV belong to eachother and don't require 2 seperate fields. Instead they can logically be merged into a single array with size 2. With this approach we can simplify the code in rt2x00crypto.c by using a single memcpy() when copying the iv/eiv data. Additionally we can move some code out of if-statements because the if-statement would always be true. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
f1ca2167d89d991eed519c789d3902f9682c06b8 |
|
13-Nov-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Detect USB BULK in/out endpoints Instead of hardcoding the used in/out endpoints we should detect them by walking through all available endpoints. rt2800usb will gain the most out of this, because the legacy drivers indicate that there are multiple endpoints available. However this code might benefit at least rt73usb as well for the MIMO queues, and if we are really lucky rt2500usb will benefit because for the TX and PRIO queues. Even if rt2500usb and rt73usb do not get better performance after this patch, the endpoint detection still belongs to rt2x00usb, and it shouldn't hurt to always try to detect the available endpoints. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
e6a9854b05c1a6af1308fe2b8c68f35abf28a3ee |
|
21-Oct-2008 |
Johannes Berg <johannes@sipsolutions.net> |
mac80211/drivers: rewrite the rate control API So after the previous changes we were still unhappy with how convoluted the API is and decided to make things simpler for everybody. This completely changes the rate control API, now taking into account 802.11n with MCS rates and more control, most drivers don't support that though. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
6c6aa3c004e702532cb0f549a96eb2f75636bd3b |
|
29-Aug-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Add Signal type flag Instead of using the PLCP flag to indicate if the signal value is plcp or the bitrate we should add a new flag to mark the bitrate type explicitely. This is usefull when new types are added later for rt2800. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
2af0a570b45ec315f364ea2c8a6d072cfcaa9d32 |
|
29-Aug-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Initialize txop during conf_tx() callback The txop parameter is supported by rt61pci and rt73usb, and thus should be written to the register instead of using the fixed value set during initialization. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
2bb057d07a0bc17475a7bf897fc41667ab08b73f |
|
04-Aug-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Implement HW encryption Various rt2x00 devices support hardware encryption. Most of them require the IV/EIV to be generated by mac80211, but require it to be provided seperately instead of within the frame itself. This means that rt2x00lib should extract the data from the frame and place it in the frame descriptor. During RX the IV/EIV is provided in the descriptor by the hardware which means that it should be inserted into the frame by rt2x00lib. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
f126cba427170eac9e37311b2ab7afc0e2261906 |
|
15-Aug-2008 |
Jochen Friedrich <jochen@scram.de> |
rt2x00: Fix txdone_entry_desc_flags txdone_entry_desc_flags is used with __set_bit and test_bit which bit-shift the values, so don't bit-shift the flags in the enum. Also make sure flags are initialized before being used. Signed-off-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
5adf6d63c1697ce1835daf2b5393488a71ee0dca |
|
20-Jul-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Fix QOS sequence counting When IEEE80211_TX_CTL_ASSIGN_SEQ is not set, the driver should disable hardware sequence counting to make sure the mac80211 provided counter is used. This fixes QOS sequence counting, since that is one of the cases where mac80211 provides a seperate sequence counter. By moving the sequence counting code to rt2x00queue we make sure that _all_ frames get the sequence counter, including RTS/CTS and Beacon frames. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
ae73e58ea64f121b26437a10937330e77ff48f33 |
|
04-Jul-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Report RX end time for rt2400pci rt2400 is the only currently available rt2x00 driver which supports reporting of the RX end time for frames. Since mac80211 uses this information for IBSS syncing, it is important that it is being reported. v2: Complement 32 bits of RX timestamp with upper 32bits from TSF Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
f529932ce27e809e8c9bab5d744df5aef8a89157 |
|
16-Jun-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Increase queue size Without the preallocated DMA we can now safely increase the queue size withotu negative impact on the memory requirements of rt2x00. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
d74f5ba473b915e5d4ea1ed391984bb62d9de8b1 |
|
16-Jun-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Cleanup symbol exports With a bit of code moving to rt2x00lib within the TX and RX paths we can now remove a lot of EXPORT_SYMBOL_GPL() statements. This cleans up the interface between rt2x00lib and the drivers and has the additional benefit that rt2x00pci and rt2x00usb are trimmed down in size as well since they have less to do. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
c4da004857056e6ee034c4110ccdcba659077b7e |
|
16-Jun-2008 |
Gertjan van Wingerde <gwingerde@kpnplanet.nl> |
rt2x00: Replace statically allocated DMA buffers with mapped skb's. The current PCI drivers require a lot of pre-allocated DMA buffers. Reduce this by using dynamically mapped skb's (using pci_map_single) instead of the pre- allocated DMA buffers that are allocated at device start-up time. At the same time move common RX path code into rt2x00lib from rt2x00pci and rt2x00usb, as the RX paths now are now almost the same. Signed-off-by: Gertjan van Wingerde <gwingerde@kpnplanet.nl> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
d56d453a1dd85aff08fe6965f395049725fdb04e |
|
06-Jun-2008 |
Gertjan van Wingerde <gwingerde@wingerd.gvw.nl> |
rt2x00: Cleanup struct skb_frame_desc. The data and data_len fields aren't really necessary in struct skb_frame_desc, as they can be deduced from the skb itself. Signed-off-by: Gertjan van Wingerde <gwingerde@kpnplanet.nl> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
b869767b6f5049f1d1ede2bb3e48832e0722ca5a |
|
06-Jun-2008 |
Ivo van Doorn <IvDoorn@gmail.com> |
rt2x00: Don't kick TX queue after each frame TX queues shouldn't be kicked after each frame that is put into the queue. This could cause problems during RTS and CTS-to-self as well as with fragmentation. In all those cases you want all frames to be send out in a single burst. Off course we shouldn't let the queue fill up entirely, thus we introduce a 10% threshold which, when reached, will force the frames to be send out regardless of the frame. In addition we should prevent queues to become full in such a way that the tx() handler can fail. Instead of stopping the queue when it is full, we should stop it when it is below the threshold. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
f019d51410a9b61278eeff811a1ca11d2a905241 |
|
06-Jun-2008 |
Ivo van Doorn <IvDoorn@gmail.com> |
rt2x00: Implement rt2x00usb_kick_tx_queue() rt2x00usb_kick_tx_queue() will loop over all entries within the INDEX_DONE->INDEX range and kick each entry which is pending to be kicked. This makes the kick_tx_queue approach work the same as with the PCI drivers which will allow for more code generalisation into rt2x00lib. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
e2530083609148a7835b54c431f6b8956407c1f6 |
|
17-May-2008 |
Johannes Berg <johannes@sipsolutions.net> |
mac80211: use multi-queue master netdevice This patch updates mac80211 and drivers to be multi-queue aware and use that instead of the internal queue mapping. Also does a number of cleanups in various pieces of the code that fall out and reduces internal mac80211 state size. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
e039fa4a4195ac4ee895e6f3d1334beed63256fe |
|
15-May-2008 |
Johannes Berg <johannes@sipsolutions.net> |
mac80211: move TX info into skb->cb This patch converts mac80211 and all drivers to have transmit information and status in skb->cb rather than allocating extra memory for it and copying all the data around. To make it fit, a union is used where only data that is necessary for all steps is kept outside of the union. A number of fixes were done by Ivo, as well as the rt2x00 part of this patch. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
7050ec821c52826b63835dde54ee3d71c7db4262 |
|
10-May-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Split rt2x00lib_write_tx_desc() Split rt2x00lib_write_tx_desc() up into a TX descriptor initializor and TX descriptor writer. This split is required to properly allow mac80211 to move its tx_control structure into the skb->cb array. The rt2x00queue_create_tx_descriptor() function will read all tx control information and convert it into a rt2x00 TX descriptor information structure. After that function is complete, we have all information we needed from the tx control structure and are free to start writing into the skb->cb array for our own purposes. rt2x00queue_write_tx_descriptor() will be in charge of really sending the TX descriptor to the hardware and kicking the TX queue. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
61448f88078e813bbaaa58eb775d650c85e7d407 |
|
10-May-2008 |
Gertjan van Wingerde <gwingerde@kpnplanet.nl> |
rt2x00: Fix queue related oops in case of deselected mac80211 multi-queue feature. With the integration of the mac80211 multiqueue patches it has become possible that the mac80211 layer modifies the number of TX queues that is stored inside the ieee80211_hw structure, especially when multi-queue is not selected. The rt2x00 drivers are not well suited to handle that situation, as they allocate the queue structures before mac80211 has modified the number of queues it is going to use, and also expect the number of allocated queues to match the hardware implementation. Hence, ensure that rt2x00 maintains by itself the number of queues that the hardware supports, and, at the same time, making is not dependent on the preservation of contents inside a mac80211 structure. Signed-off-by: Gertjan van Wingerde <gwingerde@kpnplanet.nl> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
61486e0f68d1f8966c09b734566a187d42d65c54 |
|
10-May-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Remove ieee80211_tx_control argument from write_tx_desc() Move the last remaining information details read from ieee80211_tx_control in the drivers to the txentry_desc structure. After this we can remove ieee80211_tx_control from the argument list for the callback function, which makes it easier when the control information is moved into skb->cb Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
fb55f4d1fa252ba1e479284b79da1049d658c371 |
|
10-May-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Fix TX status reporting The tx_status enumeration was broken since the introduction of rt61pci. That driver uses different values to report the status of the tx action. This would lead to frames that were reported as success but actually failed to be send out, or frames that were neither successfull or failure which were reported as failure. Fix this by change the TX status reporting and more explicitely check for failure or success. Note that a third possibility is added "unknown". Not all hardware (USB) can report the actual TX status, for rt61pci some frames will receive this status because the TXdone handler is never called for those frames. This unknown will now be handled as neither success or failure, so we no longer increment the failure counter while this conclusion could not be determined from the real status of the frame. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
5a6e59991b82580c3ca00115603b85762ec76104 |
|
10-May-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: trim skb_frame_desc to 32 bytes Remove frame_type from skb_frame_desc and pass it as argument to rt2x00debug_dump_frame(). Change data_len and desc_len to unsigned short to save another 4 bytes in skb_frame_desc. Note that this was the only location where the data_len and desc_len was not yet treated as unsigned short. This trim is required to help mac80211 with adding the TX control and TX status informtation into the skb->cb structure. When that happens, drivers will have approximately 40 bytes left to use freely. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
e100bb64bf7cdeae7f742a65ee1985649a7fd1b4 |
|
30-Apr-2008 |
Johannes Berg <johannes@sipsolutions.net> |
mac80211: QoS related cleanups This * makes the queue number passed to drivers a u16 (as it will be with skb_get_queue_mapping) * removes the useless queue number defines * splits hw->queues into hw->queues/ampdu_queues * removes the debugfs files for per-queue counters * removes some dead QoS code * removes the beacon queue configuration for IBSS so that the drivers now never get a queue number bigger than (hw->queues + hw->ampdu_queues - 1) for tx and only in the range 0..hw->queues-1 for conf_tx. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
e58c6aca99357d7f85f18e0b661d8c5a87f926a9 |
|
21-Apr-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Use rt2x00 queue numbering Use the rt2x00 queue enumeration as much as possible, removing the usage of the mac80211 queue numbering wherever it is possible. This makes it easier for mac80211 to change it queue identification scheme without having to deal with big changes in the rt2x00 code. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
19d30e02998ef1eb9f82a7d3ce9b4a97dba5aa13 |
|
15-Mar-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Add dev_flags to rx descriptor The rxdone_entry_desc structure contains 3 fields which are always 1 or 0. We can safe 8 bytes by replacing them with a single dev_flags fields which contain the flags for those settings. Additionally we can remove the OFDM flag since it is no longer used since the introduction of the SIGNAL_PLCP flag. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
89993890aeb8fe58b2d49b2661965524802ab73c |
|
09-Mar-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Fix rt2400pci signal After sampling hundreds of RX frame descriptors, the results were conclusive: - The Ralink documentation regarding the SIGNAL and RSSI are wrong. It turns out that of the 5 BBR registers, we should not use BBR0 and BBR1 for SIGNAL and RSSI respectively, but actually BBR1 and BBR2. BBR0 does show values, but the exact meaning remains unclear, but they cannot be translated into a SIGNAL or RSSI field. BBR3, BBR4 and BBR5 are always 0, so their meaning is unknown. As it turns out, the reported SIGNAL is the PLCP value, this in contradiction to what was expected looking at rt2500pci which only reported the PLCP values for OFDM rates and bitrate values for CCK rates. This means we should let the driver raise the flag about the contents of the SIGNAL field so rt2x00lib can always do the right thing based on what the driver reports. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
baf26a7eae3b05d25dd967b92eb2e09406ed9cf4 |
|
17-Feb-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Don't report driver generated frames to tx_status() This adds a new flag for the skb_frame_desc structure which is used to tag rts/cts frames that are generated by the driver. Through the tag we can recognize frames we have generated ourselves, so we don't report their tx status to mac80211. This patch is based on the original patch by Mattias Nissler <mattias.nissler@gmx.de>. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
5957da4c6e67a5447e75c2ad65252fdd5e22f9d0 |
|
03-Feb-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Move beacon and atim queue defines into rt2x00 As Johannes Berg indicated the BEACON and AFTER_BEACON queue indeces in mac80211 should be removed because they are too hardware specific. This patch adds the queue index defines into rt2x00queue.h and removes the dependency of the defines inside mac80211.h. Also move rt2x00pci_beacon_update() into rt2400pci and rt2500pci individually since it is no longer a generic function since rt61 and rt2800 no longer use that. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
6bb40dd13b458beb55f5c60dba1cb28e814bd640 |
|
03-Feb-2008 |
Ivo van Doorn <ivdoorn@gmail.com> |
rt2x00: Add per-interface structure Rework the interface handling. Delete the interface structure and replace it with a per-interface structure. This changes the way rt2x00 handles the active interface drastically. Copy ieee80211_bss_conf to the this rt2x00_intf structure during the bss_info_changed() callback function. This will allow us to reference it later, and removes the requirement for the device flag SHORT_PREAMBLE flag which is interface specific. Drivers receive the option to give the maximum number of virtual interfaces the device can handle. Virtual interface support: rt2400pci: 1 sta or 1 ap, * monitor interfaces rt2500pci: 1 sta or 1 ap, * monitor interfaces rt2500usb: 1 sta or 1 ap, * monitor interfaces rt61pci: 1 sta or 4 ap, * monitor interfaces rt73usb: 1 sta or 4 ap, * monitor interfaces At the moment none of the drivers support AP and STA interfaces simultaneously, this is a hardware limitation so future support will be very unlikely. Each interface structure receives its dedicated beacon entry, with this we can easily work with beaconing while multiple master mode interfaces are currently active. The configuration handlers for the MAC, BSSID and type are often called together since they all belong to the interface configuration. Merge the 3 configuration calls and cleanup the API between rt2x00lib and the drivers. While we are cleaning up the interface configuration anyway, we might as well clean up the configuration handler as well. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|
181d6902b6bad978d157e69479c95cc0ff213a76 |
|
05-Feb-2008 |
Ivo van Doorn <IvDoorn@gmail.com> |
rt2x00: Queue handling overhaul This introduces a big queue handling overhaul, this also renames "ring" to "queues". Move queue handling into rt2x00queue.c and the matching header, use Kerneldoc to improve rt2x00 library documentation. Access to the queues is now protected under a spinlock, this to prevent race conditions which could corrupt the indexing system of the queue. Each queue entry allocates x bytes for driver/device specific data, this cleans up the queue structure significantly and improves code readability. rt2500usb no longer needs 2 entries in the beacon queue to correctly send out the guardian byte. This is now handled in the entry specific structure. rt61 and rt73 now use the correct descriptor size for beacon frames, since this data is written into the registers not the entire TXD descriptor was used but instead of a subset of it named TXINFO. Finally this also fixes numerous other bugs related to incorrect beacon handling or beacon related code. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/rt2x00/rt2x00queue.h
|